How to Kill an Amphisbaena
A post-mortem because I think my new game turned out pretty cool. You can play it right now here.Introduction
I rarely talk about my own games. I just don't think there's much to say about them: they're short, mechanically simple, and impersonal. I think out of all ten games I've published so far, I genuinely like three of them (I'll leave it as an exercise for the reader to guess which ones). It's not that I hate the others, but I'm just not as attached to them as I am to those three.The truth is, like many other developers, I make my games for the simple pleasure of seeing a little guy walk around on the screen. I don't think that's necessarily a bad thing, but I feel like I miss an opportunity to use this space to sharpen some dormant part of my creativity. In part, this post is an exercise in materializing that thought. I hope that by rationalizing where the game's idea came from, I can somehow justify the direction I took it. And also, that I can face the frustration of realizing that this direction didn't necessarily achieve the goals I had imagined (something I understand happens with every project). I find it important to train this muscle that deals with frustration because I believe the only way to evolve creatively is by exploring new ideas, which leads to more frustration (an Ouroboros!).
Inspirations
Around late 2022 and early 2023, I had a dream that stuck with me. I was in a room with a dragon that had kaleidoscope eyes, and I had to kill it. Its eyes would spin and the patterns of the gems would shift along with them, the light entering the room reflecting off them, illuminating us with the color of the shards.The dream didn't stick with me so much for its aesthetics, which, as esoteric as they were, aren't too different from what can happen in a dream, but much more for the feeling it stirred in me. It was an obsession without interest. I knew it was something I didn't usually do or even like doing, but it was the only thing on my mind, the only possible outcome. It felt natural and consequential.
The dream ended, and I didn't kill it. In fact, we just stared at each other the whole time, which is why the image was seared into my mind. I ended up doing nothing with the dream, just wrote it down in my journal, and there it stayed, in some corner of my mind.
Now, back to 2025. I was working on my latest game, A Palimpsest. I was still shaping the idea of what it would be, but I knew it had to involve writing in a journal and having some procedural art generated from what you wrote. Because of this, I ended up revisiting some of my journal entries and reread the one about the Dragon with Kaleidoscope Eyes, the dream had never really left my mind, it was always there, but this made me connect some dots. I wanted to add a story to Palimpsest (a weird kind of game to have a story in, right? That's exactly why it seemed interesting), and maybe using the dragon dream as a foundation could work!
It didn't work :(.
I'm not used to writing stories, and the format I was planning for the game already required way more skill than what I currently had. I still really like the idea of having a meta-story in a journal that you rewrite as you add your own entries, but I couldn't create anything that was even remotely pleasing to me. I tried switching the dream's foundation to something based on House of Leaves (the only book game devs read), swapping the dragon for a
And something else happened while I was finishing Palimpsest: I started playing UFO 50.
The truth is, I think I could have made that narrative work if I had fleshed it out more: if I had made a more structured outline instead of just loosely connected text blocks in Excalidraw, put them in the game, and saw how they felt in the world. In short, if I had pulled it more out of the world of ideas and into the real world, maybe something satisfying could have come out of it. But that would have taken time, and right now, I was much happier using that time to collect all the cherries in UFO 50.
I don't want to turn this post into a UFO 50 review, but I think it's amazing. And among its many bangers, three left a stronger mark on me: Barbuta, Mooncat, and Divers. All of them are games made by the fictional in-game dev Thorson Petter, which in the real world mostly translates to Eirik Suhrke (the guy who did the music for Spelunky and Downwell).
What really grabbed me about these games is how they encourage exploration and the search for secrets. There's a lot of friction when you interact with their worlds:
- In Barbuta, you walk incredibly slowly. Your jump is tiny and your sword's reach is minuscule.
- In Mooncat, the entire traditional platformer control scheme is defenestrated, and you have to relearn how to walk and jump.
- In Divers, none of the combat symbols are explained, much less what each item does. It's like being handed an RPG without the manual, and you have to figure out the rules yourself.
I don't think this idea is exclusive to these games, but it was in them (and especially in Barbuta) that I noticed a structure I could try to
So that's how I decided to start making Amphigeum, a game that uses my dream of the Dragon with Kaleidoscope Eyes as flavor and Barbuta as gameplay. In other words, I wanted to make my own Barbuta.
How did a dragon become a snake?
And why are there so many Ourobori???The short answer is: I just think they're neat ^^.
To elaborate a bit more, like all the themes in this game, they aren't very deep. Some symbols from my dream reflect situations in my life, but I think they're so generic they could apply to almost anything. So, they have a meaning to me, but I don't expect them to have the same meaning for you.
I really like the symbol of the Ouroboros. It's a cliché symbol, but I love all the analogies that can spring from it. This is a small spoiler, but one of the game's puzzles involves circular movements and another involves living and dying, so incorporating the Ouroboros symbolism into the game felt very natural. Turning the dragon into an Amphisbaena was a corollary of that. A dragon as a dungeon boss is pretty cliché, so turning it into a two-headed serpent not only makes the game a bit more interesting but also fits the theme better.
The existence of so many pseudo-Hilbert curves comes from the same reason. I liked how in Palimpsest I made a shader to run on the title screen, so pretty early in Amphigeum's development, I made a shader that looked like a snake's movement. The only algorithm I found that struck a good balance between being easy to implement and visually interesting was the Hilbert curve. And since I used it on the title screen, I decided to reuse it more throughout the game.
By the way: I tried to draw a parallel where an upward-facing curve represents the Amphisbaena and a downward-facing one represents the player's avatar, but I'm not sure how noticeable that is, haha.
Mechanics and Verbs
I believe the most fun part of Amphigeum is discovering its mechanics on your own, so I'll be very general here. Don't worry about spoilers, but reading this after playing might be a better choice.The experiences our brain decides to hold onto are funny. For me, one of those was a completely mundane session of Dark Souls II I had back in 2014. In short, there's a covenant you can join where you invade other players' worlds in a specific area (the Grave of Saints). This area is a catacomb, meaning it's very enclosed, with narrow corridors. In Dark Souls, I've always liked using light swords with fast, straight attacks, like rapiers (yeah, you can call me a casual).
During one invasion, I was up against another player with a greatsword, which primarily uses sweeping attacks with a large conical area of effect. In the middle of the fight, we ended up in one of the catacomb's tunnels, and because it was so narrow, all of his attacks would hit the wall and get canceled. Because of this, I gained an advantage with my rapier's straight thrusts and won pretty easily. I don't think this interaction is particularly complex or even innovative, but it stuck with me how the environment's design highlighted the characteristics of each weapon.
Ever since then, whenever one of my games has swords, I try to include this distinction between narrow and sweeping attacks, haha. It's a mechanic that was in the first game I published (Dungeon Lizard) and one I had also experimented with in the 3D Dungeon Crawler I gave up on last year.
Right at the start of Amphigeum, I decided this would be one of the puzzles: a fight in a narrow corridor that you can't win with a curved sword and need a rapier for. Although "fighting" was the first verb I thought of when designing the game, I think it quickly lost its prominence. At first, I even tried to create more situation where space is a major obstacle and the game becomes easier with the rapier, but I decided to push it to the background and focus on other verbs. I still like how the attack system turned out in the end: it requires you to commit to your attack and leaves you vulnerable for a good while. At the same time, it's a bit "clunky" and hard to master, but it follows a consistent logic, which allows you to understand it well enough after a bit of practice.
The other verbs I decided to work on ended up becoming the game's main characters: walking and waiting. As I explained in my inspirations, it was vital for creating that friction for the movement to be slow and clumsy. I also wanted it to have that feeling from Barbuta's jump, where when you perform an action, you're committed to it. That's why I opted for a system where pressing a directional button propels you in that direction, with little control during the movement. The final effect is a movement that feels like "little hops," and I think much of the game's charm lies in them. I also made sure that every step makes a sound. This, combined with the absence of music, makes you fully aware of every step, every second.
A consequence of this slowness, plus the small number of rooms (36), is what my dear friend Sol pointed out: the game invites you to draw a map. In my own playtests, I never did this because, well, I already had the entire map layout in the engine. Besides, I had already sketched it out when I was exploring the initial layout and how I would distribute the puzzles, NPCs, and items. And I was really happy they felt that, because, for me, drawing a map is the synthesis of what I was aiming for: transforming the act of playing from mere passive consumption into an active way of engaging with the work.
Another design inspiration I applied came from Tunic. (Spoilers for Tunic ahead.) I love how in Tunic the way you interact with the game's main puzzle (the Golden Path) evolves. At first, you're led to believe there's a secret code you can input to affect the world. Later, you discover you can input a specific code when a symbol appears. And finally, you realize the symbol itself dictates the code you must input, completely inverting the relationship, but in a way that's so consistent it makes perfect sense.
I think this consistency is the epitome of the "philosophy" that has infested indie games since the 2000s, that a game "should be able to teach all its mechanics without any text, just through gameplay" (in short, it's that Egoraptor video). I'll be the first to cast a stone. Yes, I actually like this "philosophy", in fact, I think all the games I've mentioned so far use it, but I believe it can be rephrased in a much more fruitful way: "maintain a level of consistency and clarity in your design such that, by interacting with the world, the player can discover more complex ideas on their own." And I believe this idea can be particularly useful in situations where mechanics are better explained through experimentation than through words. For example, I think it would be hard to explain Mooncat's movement rules with symbols and text, but after five minutes of fiddling with the controls on the first screen, you get the gist (well, more than that, discovering and mastering the controls is part of Mooncat's fun, so explaining them upfront would spoil it, but you get the point).
And, if I may say so myself, there is one puzzle (or a class of puzzles) where I think I managed to apply this idea of consistency well. I think it's the system whose result I'm most satisfied with. In fact, it's so consistent that you can even get one of the three endings without fully understanding it, just its first part!
Conclusion
Of course, as I moved forward with development, I started noticing things that could be improved or even completely replaced with better ideas. One of the endings, for example, seemed like a great idea back in late April/early May when I was starting the game. Later on, however, I felt it turned out so lackluster that it seemed cooler to add a new, super-secret ending to make it more satisfying.There were also several half-baked ideas that I decided were better left off. For a while, I genuinely considered doing a rotoscoped animation to see if I could improve the lackluster ending. I even considered creating an opening "cutscene" with static images that would build the myth of the Amphisbaena with Kaleidoscope Eyes, but that seemed like too much work too. Countless ideas for really cool puzzles, but too complex to adapt to the game's scope, also had to be shelved for an indefinite future.
Anyway, there were many "things that crossed my mind"™, but since I was already in my fourth month of developing a project that was supposed to be very simple, I decided not to push my work limit any further. I think I managed to push some of my own boundaries in art, design, and programming enough.
Finally, I also want to thank my dear friend Sol, who not only made three (3!) songs for my little game but also playtested it so intensively that we managed to fix several bugs I hadn't noticed and improve many of the hints given throughout the game! AND, AS IF THAT WASN'T ENOUGH, they also made an extra-semi-quasi-official GameFAQs-style walkthrough here, which is a delight to read. I think that's the best gift a friend can receive, and all this affection makes my heart feel so warm ^^. It was so much fun playing Riddler, giving you vague hints and reacting to your messages with a :thinking-emoji: when I didn't want to confirm or deny anything.
In the end, like with every game I make, the journey is what matters most to me, and I'm very satisfied with this one. So, I can finally say:
I killed the Amphisbaena.
Publicado em: 2025-09-09