Ludum Dare 38- Hives Postmortem

So, with the compo entry complete last night and a few hours of sleep behind me. Now’s probably a good time to look at what is feel went well and not-so-well with the game during it’s short development cycle.

ld38-gameplay-1So, what went well?

Firstly I was happy with the theme of “a small world” I had an idea ready pretty quickly so could get stuck into the development of the game and it’s assets quite smoothly, despite the challenges associated with development on the classic gameboy (CPU, RAM, deciding whether to build with ROM banking in mind or not, etc.)

My homemade tools worked well (fairly well anyway).

Despite a couple of hiccups at the start with tile mapping (I had to fall back to manually doing this on a tile by tile basis) importing the graphics worked pretty reliably.

There is a FULL game loop, with side-fluff!

I (probably foolishly) worked on the non-gameplay parts for the first part of the game jam. Resulting in a fairly nice menu system with not much gameplay present, just basic player movement.

Despite my focus on different areas of the game initially, the resulting game (whilst simple and rather short) I feel is pretty nice. Not anything out there but challenging enough with multiple enemy types being added as you progress.

I accepted that the main game was pretty much done come the 2nd evening and spent most of the remaining 6 or so hours on adding more fluff including:

A proper high score table (with initials)

Fixing the levels on the SFX, adding more SFX and explosions when needed.

Adding fading transitions between the screens where appropriate

And, just becuase I was feeling particularly crazy ( and most older console games have this) a Demo mode.

The Demo player isn’t the cleverest as the fake joypad input is largely randomized, but with a little bit of logic to feel more authentic. It appears if you leave the title screen alone for 10 seconds and will play itself until you either press start or the beehives reach below a certain level of hit points.

Coding went well, the initial scope of the game was fairly small so it didn’t shrink that much compared to the original idea.


What Went Wrong.

Whilst I’m happy that the game is fairly complete, it is missing some elements which I’d like to add at some point in the future, including background music, power ups and more obvious gameplay progression as your score increases. (I mean, there’s more enemies and more types later on but it feels more Atari 2600 than it does Gameboy in parts)

The game length is okay for a game jam game but the action isn’t as exciting as it was in other gameboy games (which admittedly, I’ve spent more time on) such as, Infinitron or Formula Racing. I could fix this later with other elements being added, such as roughly targetted enemy shots and perhaps a boss-style enemy, ROM space permitting.


All in All

I’m fairly happy with the game made considering the time available. It fits the theme, is pretty much as complete as I could make this time around but I really, really need to learn or make a music tool that works well for me!

Just so I can implement the tracks in my ROMs with ease and not eat up much CPU (or ROM space) at the same time, expect bit-by-bit optimisation I guess!

Here’s to the next game jam ( and possibly some more tools to develop in the meanwhile)

Also, play the gameboy game yourself! Clicky Here!

Ludum Dare 38 Entry – Hives

Right, the Ludum Dare website seems to be in a bit of a usability pickle for me so I’ve uploaded the source code and Gameboy ROM here just in-case things have gone wrong somewhere, also, Pictures!

Brief Overview of the game also:

In Hives you take on the role of a bee who has been tasked to defend 3 hives in this side scrolling shooter.

Defend you hives from predators including wasps, bees and spiders, intent on destroy your hives with every contact they make.

Take them down with your Atomic Stinger fast to prevent further damage and repair hives with your personal shield.

Run into an enemy? No worries, another drone will soon be dispatched.

Record your progress on the high score board and hey, if youโ€™re too shattered after Ludum Dare to even play the game, wait 10 seconds on the title screen for a quick demo.

ld38-title-1

ld38-gameplay-2 HIVEShIGHsCORESld38-gameplay-1

How high is your highscore?

Right, I recently came into a little problem regarding storing highScores and comparing between them. It sounds stupid as most people would probably think. “Well, duhhhh use greater than or less than”

Which is fine. but with the gameboy being 8 Bit, I’m storing my scores as arrays as scores up to 255 would be rather boring….

So, for example 9,001 would fit into an array of 4 lots of UINT8, for an easier time displaying things to the screen, without extra computation.

E.g.

In a game I’m making currently, scores can extend beyond the limits of a 16 bit integer also, so we’re using slighlty longer arrays to store things in, no biggie.

But. I’ve found a handy solution to my problem, along the lines of the following:

What the code above does is compare the arrays on an integer by integer basis and set another variable with the result, reliably!

I hope this helps someone out there who has a similar issue regarding setting up high-score boards on the gameboy as this seems to be a safe an fairly quick method.

I may well be missing another way that’s quicker all-around but this seems to work for me anyway ๐Ÿ™‚

Expect a new game posted around the end of this month ๐Ÿ™‚