thegreatpl

LD 42

First LD done...

Obligatory Play and rate my game request:

https://ldjam.com/events/ludum-dare/42/serl-space-empires-roguelike

Thoughts

So, successfully completed my first Ludum Dare Jam, and first time completing a Game Jam solo. Been fun, including a 26+ hour stretch where I didn't get any sleep. Most of the work was done during the first 48 hours, with mainly bugfixes and the main menu done in the last day (due to work commitments).

There are still things I could do or tweak in the last few hours, but its in a decent state now. No longer throwing masses of errors to the in game console. I'm pretty sure there is a bug with regards to the log not working when the game restarts, and the warnings that get thrown to screen on new game. Also, the AI could do with tweaking, at least the attack portion of the code.

Then I could add diplomacy, player fleets, and ship design (essentially half way there with these anyway).

At the same time, I'm tired, and running out of steam. So I'll finish here.

The Game

The game is a real time pauseable space strategy game built with roguelike themes. Colonise planets, build ships, attack enemies until you are the sole empire left in the galaxy, which is random each time. Everything is keyboard control, though you can use a mouse on the buttons on the various menus.

Post Mortem

Had lots of fun with this one. First ~6 hours were essentially me thinking I had no good ideas, and then I discovered that Unity added in hex tilemaps, and deciding to work on one of the ones I thought I didn't have time for. Yay! No more using that hex library I wrote years ago and trying to create hex tile objects. Except... I couldn't figure out the coordinate system unity was using for over an hour (its R Offset, btw). Grabbed a whole bunch of functions from Red Blob Games site.( https://www.redblobgames.com/grids/hexagons/implementation.html ).Then had a problem with converting from the cube coords to offset coords, only to discover that for Unity Hexmaps x is column and y row, as opposed to x equalling horizontal.

For the first day, I had no player interaction except moving the cursor around, but the rest of the game slowly took shape. Ai was already running around colonising, though it got rewritten a few times.

The graphics are technically created from an opensource font (unifont) with a tool I previously made during the jam, so they might be legal in the compo? Not sure. The tool can be found at https://github.com/thegreatpl/thegreatpl-UnifrontConvertor if you want use it to create your own games. Be warned, it creates over 120k 16x16 png files, so don't put the folder they write to in Unity, or you'll never load the project. I use another script to copy into Unity folders.

Funnest bug was one where the TimeController would start spamming errors to the log. Turned out that one was because interfaces do not call the overridden Unity null check. That took a while to hunt down, as was found at 10pm on Sunday. Then there was the list of planets being deleted by the uncolonize check... there were a lot of bugs created by interactions between the various parts. Probably still a few in there.

I probably did not do enough inside Unity itself, preferring to do things via code instead. And some of the ways the various parts talk to one another is probably bad form. Everything seems to go through the StarSystem object, although thats badly named... And lots of small names that mean the same thing next to each other. Menus are created via code, except for the main menu. And their positioning leaves much to be desired.

Still, I made a game, and enjoyed myself. Hopefully it'll get a few votes.