One Room Dungeon is a mini-roguelite in which you push a room around while avoiding enemies.
In the game you have to step on a number of activable tiles before being able to throw your character hard on one of the walls, making the room move in that direction, onto new grounds (literally). Enemies appear and all you can do is avoid them until you can move the room, which will kill them. After clearing a sufficient amount of rooms, you get to the ice zone, with new enemies and then to the hell zone with still more enemies.
It’s my entry to Ludum Dare #37 compo and it was the first time I put so much content in a LD compo entry.
How did it get to this?
When the theme was announced, I had no idea what I was going to do. I was feeling pretty lazy then and I thought I would do something simple on the first day that I could spend the second day polishing. For me (in France) the theme was announced at 3 a.m. and I couldn’t find anything before going to bed at 6.
The next morning I had it. A game where you moved the room around and then the floor would change and spawn enemies and you had to unlock the room again after you moved it and the goal would always be to move the room one more time, every time.
Simple enough, I sketch a few situations on paper and I boot up Pico-8.
If you don’t know Pico-8, it’s a fantasy console by Lexaloffle in which you can both play and make games (and then export them to html) and also modify existing games.
It’s also a restrictive game-engine, giving you only 16 colors to draw with, a screen resolution of 128 x 128, limited cpu and memory. A code editor, a sprite editor, a map editor, a sfx editor and a music tracker are all included in Pico-8. The coding is done with a subset of the Lua language and the Pico-8 API.
Pico-8 is an incredible tool, amazing for prototyping in particular but can also be used for making more complete games. You should check it out, plus it’s really cheap for what it is.
~~ End of side-note
The first things I did was spriting a few place-holder tiles and coding the room display. I also made a quick algorithm to have a trippy background very early on. After something like 1 hour, I had that first gif there and one more hour later I had the second one.
The rest of the day was spent doing pixel art for the tiles and the animations for the player character and for the activable tiles and coding the game logic for activating those tiles and moving the room. At the end of the first day I had this.
But throughout the first day I was still feeling pretty lazy and I wasn’t going very fast. Still, I was very happy with everything I had done and felt that implementing the enemies, the sound, the UI and polishing would all fit very nicely within the next day. I thought I would do something like 4 enemies at this point and the UI would just be the number of room you’ve cleared and a lifebar.
However, on the next morning… I realized I had a pretty solid base for something more ambitious. And suddenly I wanted to do something more ambitious. I started imagining several worlds and a bunch of enemies which would be separated into the different worlds. I knew it was madness because I also wanted to submit the game to compo, not jam. It was madness. But I went for it.
I decided to keep the number of zones down to three: the ‘normal’ zone, the ‘ice’ zone and the ‘hell’ zone. Of all the enemies I had imagined, I kept 8, 6 of them being more specific to one or two of the zones.
The biggest task of that day was to make the sprites for all those enemies. I don’t do pixel art very often. I like to do it but I don’t have many occasions for it. So to achieve a good result, I had to spend a lot of time on it.
Then coding the behaviors for all the enemies. That took ~2 hours, only making rather simple behaviors, based off the animations I had made earlier.
Implementing the different zones, making tiles for them, making different algorithms for the background and making the enemies spawn in the right zones was pretty straight-forward.
But then I had only 1 hour left and I still had to do all the sound and UI. So I did them. Fast.
In the end I submitted to compo as late as was possible, but still did it. I knew the game would suffer from a small lack of polish but that was that.
What do we learn here?
Here are my thoughts on all that and then on the game, after getting a good amount of feedback from other people.
What went badly:
– I took it slow on the first day, effectively losing precious time.
– I changed scope right in the middle of the allowed development time, doubling (maybe tripling) the amount of work left to do.
– the wall at the bottom is not low enough and hides important game elements, such as enemies and activate tiles.
– the sfx are incomplete, with bombs that don’t make any sound for example.
– the one line of instructions of the whole game, which is supposed to explain the main mechanic of the game is badly formulated and confused most players about the controls.
– the progression display (the numbers in the up-left corner) confused pretty much everyone I think.
– visual cues would be welcome to make sure the player knows where their character is at all times.
– the game is not very well balanced.
All in all, the game lacks polish in various areas, which can make all of my notes go down for the final ranking. (oh no)
What went well:
– I did do a good job of the pixel art.
– the code is also very solid and as far as I know, no one encountered any bug.
– even after changing the scope, I managed to do everything in time somehow.
– if not for the really bad title screen (literally made in 5 minutes), the game is good-looking. The animations for the player are the best I ever made and all the other animations are also quite good and expressive.
– even when slightly confused with the controls, the player generally understands what’s happening and has fun.
– the game is challenging AND beatable.
– the sfx that I did make fit well into the game.
– it’s the jam game with the most content I ever did.
Basically, the game is what I wanted it to be.
In the end, I’m actually really happy with the game. It’s fun and all the time spent on the pixel art paid off. I feel like I learned a lot of small things from it. And maybe next LD I’ll get ambitious right from the start!
I also feel like I could take this game further and make it “a full game” with more zones, more enemies, traps, items, secrets… I also feel like I could sell something like that to a publisher and that’s what I’m going to be trying to do! Wish me luck!
See you next Ludum Dare everyone!