onContinuing with our jaunt through last year: it's time to talk about music! Historically I've been a bit of a music aficionado, and I've written album reviews on this site in the past. However, I've been listening to much less new stuff than usual in the past like, uh, ummm, uh... six years? Which, I suppose, makes this musical drought the new normal.
When I say drought, I mean that I believe I only really listened to two albums in 2023. Two! Granted, they were η΅η Re:write by 150P and EPHEMERAL by Mr.Kitty, which are both long albums that are packed with bangers. Sort of. But still, I've been wanting for a while to get back into listening to music more often, and not just idly while I write code. I did listen to more music in 2024 than I did in 2023, although not as much as I'd have hoped. Still, progress is progress!
I've created a playlist of some of the songs I'll be talking about, in case you want to check them out or listen along with the post!
Read more...
onIt's day 2 of the new year! And you know what that means: well, actually, you probably don't, because I haven't done this in over a decade! I'll tell you what it means, though: it means I get to talk about the top quotes of the last year!
I started up the quotes database again in last 2023, and it's exploded quite a bit, with ~250 quotes submitted in the modern era! Most of them were from conversations between 2019 and 2023 that I submitted all at once when reopening the quotes database, but we've still had an average of 8 new quotes a month this year, which I think is pretty fun!
Read more...
onHey, it's me again! That guy from the other time! Yes indeed, I'm Hatkirby and I'm here to revive yet another old Four Island tradition: the annual predictions post! I first did this in 2008, because a decade-old Linux humor blog I liked to read had done it before. The start of a new year is one of my favorite events, and I love doing little things to ring in this changing of the season. And thus was born: this!
Now, I usually like to post these on New Year's Eve rather than New Year's Day, but I got a little carried away with this one and did not end up finishing it in time. But that's alright! Obviously, the purpose of this isn't to actually predict the future. It's fun to imagine, though! And if any of these predictions do come true, well, my lawyer will be contacting the spacetime continuum for violating my intellectual property. Let's get started!
Read more...
onThis is a post that I intended on writing yesterday, but I got distracted with providing context and the post got too long. So I'm going to talk about Godot today!
For some (quick) context, I work on a randomizer mod for a game called Lingo. Lingo was made in Godot 3.5, which makes it pretty easy for me to mod it. I can write scripts that just get arbitrarily executed within the game's context, and Godot has some nice features for modding including allowing me to inject my own code by subclassing the base game's scripts and then replacing them live with mine. It's pretty wild how it works. Here I am straight up disabling a feature on one of the game's object types:
extends "res://scripts/panelEnd.gd" func handle_correct(): # We don't call the base method because we want to suppress the original # behaviour. pass
I'm kind of abusing the game's custom map system to do this, but even without a built-in hook like that, Godot has ways to allow players to execute arbitrary code in the context of any game.
Now, one of the interesting things about working on this mod has been distribution. Lingo has Steam Workshop integration, where you can upload custom maps (which my mod technically is) and then subscribe to them in order to make them available right in your game. However, you can only upload a single file as your custom map... or, at least, that's what I thought for a very long time. This eventually turned out to not be true, but for now let's assume we have the restriction of only distributing a single map file.
Read more...
onThere's a game called Lingo that I am both an avid player and modder of. It's like a cross between The Witness, Antichamber, and word puzzles. You're trapped in a maze of non-euclidean hallways filled with word puzzles and you have to figure out the rules to those puzzles yourself. There's also way more base game content than you'd expect. You should play it! There's my spiel.
In fact, if you have any interest in playing this game, you may want to give at least the first level a good try before reading on in this post, because towards the end I spoil some of the puzzle mechanics.
Anyway, I said that I both play and mod this game. I've mentioned in a previous post that I'm involved in a randomizer project called Archipelago. It's an open source framework for randomizing multiple games together, and I maintain the randomizer for Lingo. It's been a lot of fun to work on over the past couple of years, and I've continued adding features to it long after release. One of the features that people have continually asked for since the very beginning is new puzzle generation.
Read more...
onI didn't grow up playing Legend of Zelda games. I was strictly about Mario and Pokemon games. I don't even think I knew Zelda was a Nintendo franchise, as a kid. It seemed so much darker and edgier than the games I was used to playing.
Because of this, it wasn't until 2018 that I actually played a Zelda game. I can't remember what I played first; it was either the original Legend of Zelda, or it was Breath of the Wild, which is funny because that's literally the widest possible range of Zelda games that existed at the time. I didn't really like either of them. The original Legend of Zelda is very obtuse and difficult. You basically have to look stuff up in order to know where to go, and the difficulty is very punishing. Breath of the Wild has a similar directionless feeling, and I really couldn't stand the fact that weapons would break on you. They're both excellent, critically acclaimed games; they're just not for me, per se.
The next Zelda games I tried playing are probably not ones most people would automatically think of: Oracle of Ages, and Oracle of Seasons. They're a paired set of games for the Gameboy Color, intended to be completed in either order, and playing one gives you a password for the other game that allows it to act as a sort of continuation of the other. Playing both games gives you access to the true final boss, and ties the story together. I'd read online that Ages focuses on puzzles while Seasons focuses on battles, so I decided to play Ages first, as I like puzzles more. And I loved it.
Read more...
onBack in 2009, I made a little game called Maze Of Life. In each level, you are placed into a randomly generated maze, and you have to make your way to the centre. The goal is to complete as many levels as possible without getting stuck.
The natural question here would be -- how do you get stuck in a maze? Therein lies the twist with this game. The mazes are generated using a cellular automata similar to Conway's Game of Life, and the rules of the automata continue to apply while you are playing the level. This means that the walls of the maze can shift around you when you walk by them. Every level begins in a completable state, but you can make it incompletable based on your actions. You can get pretty far using skill -- there are patterns to the shifts in the maze that you can pick up on -- but sometimes? Sometimes your luck just runs out.
To make a long story short, despite this game being written in C++, it is now available to play within your browser:
And now I'm going to talk about it, because I have a tooth infection and I'm too dizzy to play video games.
Read more...
onHey all, I'm here to talk about The Witness again. When it comes to speedrunning video games, it's uncommon for players to play the game just as the developers intended. Speedruns usually incorporate tricks that allow you to do things faster than you're supposed to or that allow you to entirely skip doing something ordinarily required. And very often, these tricks take advantage of glitches in the game, to achieve something that goes past the boundary of the laws of the game.
The Witness, for a very long time, was almost entirely glitchless. The only real exception was Windmill Cycle Skip, which was discovered within the first couple of weeks of the game's release, and saved some time in 100% and 99.8%. I'll talk about it more when I talk about Windmill. But other than that, we were really just playing the game as intended, as quickly as possible.
There were a few tricks we used that seemed like glitches, like Jungle Wall Skip and panel sniping. Even Latch Skip is arguably not a glitch, and rather just an exploit of the game's error correcting functionality, although people will argue you on this one. People had definitely discovered things that were glitches, some of which would become very important later on (e.g. the Theatre Pause Glitch), but at the time they just seemed like random bugs with no real use.
And then everything changed when we found out that walls aren't real.
Read more...
onIt keeps happening. The Four Island Quotes Database is back.
I'm always excited about memorializing stuff. The interactions I have with my friends are a treasure, and I want to remember them and get to enjoy them again and again. I don't really trust third-party services like Discord to stay up forever, or continue to allow me easy access to old conversations. I prefer to own my data whenever possible.
And that's why I semi-rewrote the Quotes DB again (well, I took the standalone Quotes DB I implemented in Rails for Four Island 3 and integrated it into my current website). That's why I made sure to preserve all of the old quotes, even if they involve people I no longer talk to -- my past self considered them important enough to memorialize, so I'll respect that. That's also why I spent hours going through Discord, finding conversations to archive. And when I say that, I mean that there are over a hundred new quotes in the Quotes DB.
It's actually kind of wild -- the last quote from the FI3 era was submitted in January of 2014. Then, almost ten full years pass, and 100 quotes get posted within the span of two days. The first new quote even mentions being raised from the dead. Classic.
Read more...
onHow many of you here have personally witnessed a total eclipse of the sun? To stand, one day, in the shadow of the moon is one of my humble goals in life.
(Spoiler warning for The Witness)
Most of the people reading this blog probably know that I am fond of a video game called The Witness. "Fond" may not be a strong enough word -- it's my favourite game I've ever played, and I've been speedrunning it for over three years at this point. If you don't know what it is, it's a puzzle game set in a 3D environment, where you solve grid puzzles on screens scattered across a deserted island. It's all about epiphany-driven gameplay; the game doesn't tell you anything about how the puzzles work. You have to figure it out yourself, and when you do it's usually a really satisfying moment.
Now, I've been playing this game for a long time, and I've memorised the solutions to every single puzzle. Most of the time, speedruns of this game are pretty straightforward. You have to solve certain sets of puzzles in order to get to a specific goal, be it the main end of the game, or the secret end, or the post-game level, etc. And in order to be fast at that, you have to 1) know the solutions to the puzzles, and 2) be skilled at inputting them. Both of these requirements allow for you to get gradual improvement the more you play, while allowing for a high skill ceiling. And that's it!
Well... Sort of. If we don't think about 100%.
Read more...