The One Room Dungeon Post-Mortem

Posted by
December 12th, 2016 9:45 am

Now that I’ve had a nice long sleep, it’s time for a little postmortem for my game, and the events that led up to its conception.

Surprisingly, this could be the most effort I have put into a game jam, despite my limitations at the time. I had Christmas-related responsibilities to take care of, and knew I would have as little as 12 hours to actually make a game if I wanted to go for the Compo, which I always did.

1c299712cf395bdc9bdb3a35398acdfa

CIRCUMSTANCES

I arrived home at about 8 pm, with the deadline being 13 hours away. I had woken up at 9 am on Sunday morning as well, which meant 24 hours of no sleep. I had a sneaking suspicion I was just going to keel over and fall asleep halfway through. But, either through some misplaced pride or an act of defiance, I got started anyway.

During the theme-voting period, since I knew I was going to be busy, I purposely voted for all the themes that implied small and simple, like Small World, Only 5 Minutes, Simplicity, etc. Thankfully, One Room got chosen, so I had an excuse to scope the game down and make it more manageable.

When you’re not a programmer, you’re bound by some pretty weird limits when making a game. Since I use drag-and-drop code almost exclusively, a physics-based game was actually far easier to do than a turn- and grid-based one. At the time, feeling rather pessimistic about my chances of success, I decided to use this as a stepping stone. I’ve always wanted to make a dungeon dungeon crawler, especially for mobile. For someone at my skill level, that was a tall order, but I figured that even if I didn’t finish it, I still would have built a framework I could use in the future.

GAME DESIGN

There were a few reasons why I chose a dungeon-crawler, besides the fact that I had a fascination with them. One big factor was that I could skimp out on the art and sound, since they weren’t that important. I mean, I still needed some sprites, but having animation was something that was entirely optional. Sound was also not much of a factor, seeing as the encounters and stuff were going to be heavily text-based. Randomly generating the background music took me about an hour, which I could afford.

Most of my efforts went into the ‘programming’, so to speak, abusing the crap out of the engine’s drag-and-drop limitations to come up with fast solutions that worked. The grid-based movement and random generation were actually the easiest to do, especially the random map generation. Me and an old friend came up with this technique years ago, which I’m still using to this day due to how bloody simple it was. Below is an illustration.

Each wall spawner creates one wall right next to itself

Each wall spawner creates one wall right next to itself.

It’s not the most perfect system; sometimes it would generate squares that the player couldn’t access. And the pathways are all over the place. Still, if your objective is simply to get from one corner of the room to the next, it worked.

The meat of the programming was poured into the so-called turn-based system. Seeing as I didn’t know how to even begin something like that, I just… hardcoded every turn, and slowly carved out a framework along the way. If I found myself doing something over and over, I’d create a new variable to hold that data, or changed the code into something more efficient. What I came up with certainly would be difficult to be used and understood by outsiders, but at least I could make a dungeon crawler much faster by myself if I ever needed to.

The most important aspect, for me, was that it was mobile-friendly as well. After scratching my head over the sort of UI that would be used, I experimented a little and found a nice way to make a choose-your-own-adventure style encounter system with unobtrusive UI. From there, I could probably branch out in to an actual combat system, and maybe into an inventory system as well. Time will tell.

Even though I’m quite happy to have more or less leveled up in terms of ‘programming’ logic and systems design, the inner game designer in me feels that the game experience still fell short. The game is pretty easy once you figure out what to do against each encounter, and the randomization doesn’t add too much. Even though it’s a good thing I learnt a lot of new things, the fun factor of the game was compromised in the process. I really do want to improve on this, make a more robust system that has real choices that the player has to make. Right now, the whole thing feels like a tech demo of sorts. Works, but not necessarily the most engaging.

Conclusion

Honestly, at the end of the day, I’m very relieved to have been able to submit something for the compo, given the sort of time frame I had and the scope of the game I was attempting to do. What’s more, I have a (relatively) solid base to lean on if I wanted to make more mobile dungeon crawlers. I would love to continue working on this, but right now, the Stencyl Jam is going on, and I can’t resist going for it.

Still, that doesn’t mean I won’t spend some time playing all the amazing games submitted (or are going to be submitted) for the jam. If you do decide to try out The One Room Dungeon, make sure to leave a comment so I can give some love to your games as well!


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]