Tagged gbjam

Post-Mortem : Archeology Expert Dandy

Last week it was the GBJam, a game jam where you must create a gameboy-like game in one week. I decided to participate and came up with this: Archeology Expert Dandy.

A couple days before the jam actually had started I decided to warm up and created a simple mock up of this little duck dude, with some rocks around him. The rock ended up looking a bit like teeth, like the camera was inside of a giant worm mouth or something. I first decided to expand this concept, and make a simple game where you went around as the duck trying to rescue eggs from the worm.

image

I quickly discarded that though because it didn’t seem fun. After the jam had started, I drew some more concepts and thought that maybe he could be an archeologist; maybe I could pull off a La-Mulana concept on a top-view dungeon crawler.

So I began working on it. I considered having the main character be able to attack somehow and even drew a couple moving enemies, but then I decided to not have him attack at all and make this an exploration-only game. I remembered of Goof Troop for the SNES, one of my favorite games of all time, where the characters couldn’t attack directly but had to avoid enemies and kick blocks/throw jars at them, so I decided to go with it.

Programming the blocks to be pushed wasn’t very hard but I did run into some trouble; blocks in old games are always sort of “fixed to a grid”, but you hardly even notice. I tried to use a Custom Movement behavior on the blocks and attach them to an invisible grid, but to no avail. I didn’t have enough time to spend learning how to do it, so in the end I just added a Bullet behavior.

The events are also simple enough; if a button is pressed it checks if the player is overlapping the block by an certain offset. If he is, the bullet movement turns on and the block is moved to the direction. Each block also has a “initialXY” variable and at the start of the layout it saves its own position to it. Whenever the player leaves the screen, the block is set to that position (like old games).

image

Then I decided to make moving spike blocks. The concept was pretty simple, it checks if the player is on the same Y position as itself, and if it is, it moves. Obviously I also had to check if the spiked blocks were on the same screen as the player, but that was pretty easy; C2 has an event called “is on-screen”. Basically I only had to say that if the spiked blocks were on screen, the bullet behaviour would be on, else it would be off. Simple enough and nothing exploded, thankfully.

After that I created wall arrows and buttons. Buttons were a bit more tricky, but I did something simple though; whenever a block is over a button the block sets a boolean var called “isOnButton” to true, turns its own bullet behavior off and lerps into the nearest button. Each button also has a text variable called “whichFunc”, this way I could create an event that says that when a button is pressed, it should call the function “whichFunc”, so I could have buttons do different things, like create keys and activate arrows. 

image

I also created text dialogues using the sprite font object and had to wrestle a bit with different sprite font generators around the web. The only one who worked for me and didn’t blur the font too much was the old version of this Sprite Font Generator by blackhornet at the Scirra forums

Most of the jam time went to creating the tilemaps though. Each room is a different instance of the tilemap object. I made it this way so I could re-arrange rooms more easily, and it ended up pretty much saving my ass! C2 tilemap support isn’t very good so you can’t select and copy a certain area, re-arranging rooms would take ages. Thankfully though I found out that Scirra included hotkeys so whenever you’re drawing on a tilemap you can press Z and X to flip/rotate the tile.

By then, everything was doing pretty good. Until I decided to test out the game as a whole. It was really boring. All you did was to push a block onto a button, get a key to open a door and that was it. There was no thrill and it just wasn’t very fun at all. 

image

I was getting kinda worried over that, so I talked to a friend and she came up with the idea of a timer. This way the player would have to run through everything while trying to keep alive. I absolutely LOVED the idea and tried it out right away. Since by then I was kinda used to the whole room layout, I thought it was really fun. It was now fast-paced and not nearly as boring as before. Unfortunately what I didn’t seem to notice at the time was that to first-time players it was nothing but frustrating.

But I was completely in love with the concept, and decided to make “breathing rooms” – rooms where the main character could breathe. I came up with the concept that since he was inside of a cave, the air was too thin so you had to reach some checkpoints to breathe. At the time I also didn’t want to include saving in the checkpoints because I thought it would be too easy; maybe the game would have been much better by then if I had though. I made the checkpoint rooms just far enough that you could reach them before just running out of air, too.

Then I finished the last rooms, and noticed that something was missing; the whole exploration aspect wasn’t there at all. Time was running out so I did something that would definetely doom the game; I hid the last key and the last egg under the ground and added the shovel mechanic so you have do dig them out. I don’t think that anyone has played the game enough to actually get to this part, but if you did, oh boy. The only hint is on a skeleton on a hardly reachable place, and he says that “the key is hidden under the moon”. The moon is a single tile on another room, and you have to dig under it. There was absolutely NO WAY of knowing in which room it was unless you really paid attention to the rooms you were in. Apart from the hard difficulty, this made the game almost impossible to beat unless you played it over and over again.

image

Honestly, that made me quite happy. It’s not like I didn’t want people to beat my game, but I knew deep down that if someone DID beat it, it would be satisfying as hell. So I uploaded it to Gamejolt thinking that. 

After that I talked about the game a bit on 4chan, Facebook and Twitter. The feedback was NOT good. People complained that the random spikes were bullshit, played it for less than 5 minutes and dropped it. No one seemed to notice that you could actually see the places that had spikes. I didn’t want to make it too obvious because, well, if you were an expert archeologist you’d see it. They also thought the whole “air” thing was awful, and some complained that they did not know what to do; they didn’t know you could push the block over the button. One dude went as far as telling me that it was typical that I didn’t know anything about game design since I seemed to be more of an artist and that I had ruined the game. 

image

That made me feel really awful, obviously. But I kept thinking to myself that no matter what anyone said, I enjoyed it. I couldn’t even beat it properly, but hell, I really enjoyed it. It felt like you HAD to speedrun the game to beat it. It was good concept that could have been expanded on if only I had more time. It also made me feel a little better that whoever enjoyed it REALLY enjoyed it. Some friends and colleagues were getting addicted to it, trying to reach the end. It became somewhat of a race to see whoever could get farther. That made me feel accomplished.

As for now, I have another version incoming. It has save in checkpoints, it takes a while longer for your air to deplete and you can obviously see where there are spikes now (I drew leaves on top of them). I’ve also fixed some bugs, like a door that was showing off-screen. I’m not sure why am I even working on it, but still, I’d rather have a beatable version up. 

And that’s the whole story! Thanks for reading, playing, and everything else.