I took the opportunity to participate in the Ludum Dare 48-hour Game Jam competition #29 over the weekend. I have participated in a small handful of game jams previously, but this one was special to me for several reasons:
- I had permission from my employer to release what I created under reasonable conditions. Most things I work on, including game jams projects, have had to stay inside work.
- This was a solo competition. I typically would work with a team.
- I do not actually remember the last time I made a game. It has been too long.
Play my entry here.
I was honestly planning on following the lead set by notch during the last Ludum Dare and was going to use Dart to make my entry. I toyed around with it on the plane ride back from GDC and decided to give it a pass based on the fact that I could not disable bracket auto-completion in the editor.
One final constraint I had given myself was to make something that would be suitable for my arcade cabinet.
How it Went Down
I do not know how better to describe how the process went than my commit messages, reproduced below.
I did make it a point to eat and sleep well. Saturday afternoon there is a big gap in productivity where I ran to the grocery store so that I could make a pizza. The pizza came out worse than the game. I used some sausage that did not turn out as good as I had hoped.
I have made several games before that used the same general approach for building the level out of triangles. It is of course directly inspired by Soldat. The good thing is that I can get something pretty convincing together pretty quickly, with only brief excursions to references on Wolfram Mathworld and Wikipedia. The bad thing about it is that it took me a fair amount of time to get an editor together, and it was pretty clunky even in the end. And then throughout the entire weekend I found myself falling through the world in different places and attempting fixes to the collision code to prevent that from happening. Some pre-made physics code would have saved me a lot of time and trouble here, but where is the fun in that? In the end, I think it is pretty difficult to find holes in the collision, if there exist any. I would have built the levels somewhat differently if I trusted the collision more. Ceiling especially would have made the underground feeling much better, as well as encouraging flying around the levels using weapon kickback. Enemies are mostly relegated to flat terrain to avoid collision problems. I never properly sorted out the math for going up hills, but it is fun to fly off them so quickly, so I did not see that as an issue.
The heart/meat/weapon pickups are inspired by health/armor/weapon upgrades in Earth Defense Force 2017. Except that instead of individually creating over a hundred weapons, I rigged things so that each weapon is generally better than the last with variations on a several basic properties. I think the main failure here was that I should have given the weapons corny names instead of explicitly listing out all of their properties, and I also did not spend enough time balancing the game.
As far as balance goes, it has some big problems. I changed some things and fixed some bugs shortly before submitting which changed how the game played significantly. I should have spent more time playing toward the end. Creating the levels from first to last also left me bored toward levels three and four. The intent was to make the game go on forever with each replay becoming successively harder, but I either forgot or became so lazy and concerned with bigger issues that I did not bother to implement that.
For a weekend, from scratch, I am pretty pleased with what I ended up with.
2014-04-26 09:42:50 First. 2014-04-26 10:12:01 Shaderssss. 2014-04-26 10:35:20 First triangle. 2014-04-26 10:40:28 First texture. 2014-04-26 11:06:46 Ehh. 2014-04-26 11:35:34 Moving...something. Augh. 2014-04-26 13:08:51 Augh, collision detection. 2014-04-26 14:47:24 More collision. I'm not going to be fiddling with this forever. Nope. 2014-04-26 15:09:09 Yup. 2014-04-26 16:31:42 Sigh. 2014-04-26 17:03:27 Smooth movement, but...I don't know. 2014-04-26 20:16:25 Adding triangles. 2014-04-26 20:26:47 Moving camera. 2014-04-26 20:46:30 Edit more. Adding triangles. 2014-04-26 20:59:21 Moving verts. 2014-04-26 21:21:13 Level editor persistence...eyyy. 2014-04-26 21:54:10 Finally, shooting. 2014-04-26 22:09:27 Fix triangle winding. Snap triangles to grid. 2014-04-26 22:13:52 Some friction and slip. 2014-04-26 22:22:48 First thing killed. Murder blood veins in my teeth. 2014-04-26 22:30:28 Breakable -> Goomba. 2014-04-26 22:42:24 omfg. An ant. 2014-04-26 22:52:12 This is basically done. 2014-04-26 23:04:10 Ant hill. 2014-04-26 23:23:45 Forgetten images. Dealing with death. 2014-04-26 23:57:45 I wanted to mess with a weird vertex shader instead of sleeping? 2014-04-27 08:36:06 Finally, a thing beneath another thing. 2014-04-27 08:42:11 Made it easier to save/load multiple levels. 2014-04-27 08:53:33 Panning. Ant hill texture. 2014-04-27 10:13:28 Projectile stuff. 2014-04-27 10:57:43 Entity placement editing. Whew. 2014-04-27 11:14:40 Um, there's a groundhog? 2014-04-27 11:46:25 Player warping between levels. Also made stubs for all levels. 2014-04-27 12:10:41 Some textures. 2014-04-27 13:00:31 More textures and something about health and armor. 2014-04-27 13:08:09 Drops. 2014-04-27 13:11:48 Made some more things fall to the ground. 2014-04-27 13:14:11 Loop levels forever. 2014-04-27 13:53:09 More bricky bricks. Actually lob projectiles. 2014-04-27 14:19:00 Working on second level. 2014-04-27 14:23:32 More level2. 2014-04-27 14:25:57 Tweak some damage. 2014-04-27 14:44:05 Projectiles oh my. 2014-04-27 15:07:23 Augh, fighting with collision response. 2014-04-27 15:20:20 Fix death. Yep. 2014-04-27 15:58:03 It's a last level. 2014-04-27 16:13:28 What I don't even. 2014-04-27 16:18:01 Well it is a title. 2014-04-27 16:33:08 Fixed next level and cleaned up things that fell through the world? :/ 2014-04-27 16:40:18 Fix texture wrap modes and black boxes. 2014-04-27 16:55:32 Weapons stats and tweaked weapons. 2014-04-27 17:17:24 Gibs. 2014-04-27 17:22:39 Kickback. 2014-04-27 17:35:26 Ehhh. It's a background. 2014-04-27 17:43:50 Different dude. 2014-04-27 18:03:25 Sounds! 2014-04-27 18:06:58 Removed debug stuff. 2014-04-27 18:32:59 Added debug settings for starting level and weapon. Fixed reload times for enemies. 2014-04-27 18:44:56 Last minute collision tweak. Why not? 2014-04-27 18:45:13 Oops, debug. 2014-04-27 18:53:37 Reeled in kickback a little bit. 2014-04-27 19:01:38 Eh? 2014-04-27 19:10:16 Added directions.
Oh, and there is already a YouTube video of somebody playing it, so it was a great success, no matter how I get ranked.