Warhead Stroll Postmortem


Last weekend, I participated in the Ludum Dare #49 Compo, with "Unstable" as the theme.

How it went

I started by taking one of the ideas I noted during the theme voting final round. This time, I detailed some of the ideas way further (5-6 lines per game idea, contrasted to 1 sentence for previous events). That was one of them:

You were to protect an old shopkeeper in a town during a civil war, and the shopkeeper had a nuclear bomb as a head. The goal was to get to the embassy / town hall / building used to make peace treaties, without exploding, and having a boss there. The boss was someone trying to turn on the lights but you got caught in wires so it would detonate you instead.

I didn't stick to the idea entirely, but that turned out to be a good thing. Old Roger isn't a shopkeeper, he goes to a shopkeeper; you control his dog on a leash; there's no war, just a normal day; and not only do you have to avoid dangers, but you're in charge of the main movement as well. (I'm starting to notice a pattern, I only use my voting ideas for Ludum Dare events on October, never for ones on April).

First screenshot after one hour of setting up the environment a la Ace of Rope with the help of Godot Engine, and drawing some sprites that are still used today. The leash hasn't been planned yet!

If you look at the game files, you'll see an unused bullet sprite, the only witness of the planned civil war you would have encountered.

Next, I drew some houses, having learnt how to put them on tilemaps properly with Godot. It has certainly helped to continue developing for many months Ace of Rope (my Ludum Dare entry from last year), and Warhead Stroll reuses a lot of the techniques (but none of the textures or code). I used a different font, named "Lilian", that I found on Dafont in a hurry. It's also a pixel-art font, but with better thickness than "Volter Goldfish" (the font of Ace of Rope).

The game's tileset. I used Aseprite with the Arne32 palette. As you can see, I like compact tilesets, it reminds me of retro game limitations. Its size is 256x128 too.

Godot's Autotile system may be a bit too complex, but it is possible to make randomized buildings higher than 1 cell: you have to offset the texture and the collision box, and make sure to set the tile size to the whole 16x48 rectangle (the tilemap cell size remains 16x16). A minor problem with the current tileset is how the inset corners of buildings are wrong, but the "crooked town" aesthetic helps distract from it.

The next thing I did was to make Old Roger explode. Using Godot's animation system, some particles and RGBA gradients, it looks like a pretty good retro explosion, with a canvas modulator to darken the rest of the scene. As allowed by the rules, I reused the code base for screen shaking.

Notice a bit of wobbling on the dog: the leash started perfectly horizontal, which is a very dangerous position. A bit later, I angled its last joint a bit to fix that.

The leash reuses Ace of Rope's rope system, with twice as many pin joints. This time, both ends are occupied by rigid bodies (and not kinematic bodies), which means a more realistic pull, but more uncertainty on the forces. You die when Old Roger has too much of an acceleration in a fraction of a second. His "heat" gauge goes down with time, and it goes down faster when it is higher, giving it a bit of a logarithmic/easiness feeling.

Next is some level design. The only enemy in town, apart from your controls, is road traffic.

Cars go on a loop, either horizontally or vertically (there's no car going up / seen from the back for now, because this is just a boring point of view I didn't bother to draw). Cars don't kill you on impact, but the impact causes a brutal acceleration and tension on the leash, and that can kill you. Also, after a quick fix before the deadline, going off screen kills you automatically.

The music was made with LMMS. There are two main musics (town and boss), two short musics copied from the main musics (title screen and ending cutscene), and one fanfare. You can listen to them on Soundcloud! https://soundcloud.com/cagibidev There's also their .mmpz files in the source code, if you want to know what the tracks are made of.

After making the main level, I decided to add a boss: the Butcher. You have to avoid the knives and various cutting implements to finish the game. As you can't attack, the fight ends after a certain time.

I considered making a second level, but by Sunday morning it was clear that it wouldn't be as complete as the first one, so I discarded it. In the end, 8 hours (and 4 usable hours) before the deadline, I submitted Warhead Stroll. This falls between Ace of Rope (that was updated until the very end, ~30 hours total) and the other games (where I'm typically done 12 hours early, 8-12 hours total), so I think this is a pretty healthy way of doing games in a jam.

Things to change

The main remark was that the butcher fight was too difficult for many players. In a post-jam version after the rating period ends, I will have to:

- Decrease the difficulty of the fight
- Remove Old Roger for the fight, he doesn't do anything and gets in the way sometimes
- Rearrange the cross-roads level part, which is misleading (the right border is open but you have to go to the bottom)
- Put credits with thanks for all the reviewers
- Optimize the game a bit (for example lighter assets)

It is unknown whether I will have the time and motivation to make it a full game, with a second level and second boss. At least I already started to make concept musics for the next zone.

The risky part

Turns out this game might actually be illegal! (just kidding)

For some of the sound effects (namely car crash, Roger step) I didn't think about applying additional effects on the samples. A few days later, I realized that is against the rules of the compo: you have to make everything yourself, or make good derivatives of existing assets!

I made a quick fix to this (I think this fix is allowed, "something didn’t work correctly", albeit with my sound making process). I replaced the Roger step sound by the pitched-down dog step sound (entirely generated with bfxr during the compo). For the car crash, I added audio buses that randomize the sound even more. That might not be the best derivative ever, but I'm not allowed to replace the car crash sound with a new sound that is generated outside of the ludum dare weekend! I also tried to "downgrade" the game from Compo to Jam, but it was not possible on the edit page after the deadline.

Sorry for the possible unfairness to other compo participants. As a compensation, this game will remain open-source and any additional assets will be home-made. Perhaps I'll put additional constraints for the next Ludum Dare: a "hypercompo" which takes 36 hours instead of 48, with a copyleft source code and I can't use audio samples at all and I have to make my own color palette and possibly text font. Another simpler way of paying back to the community is to make tutorials: feel free to ask me if you want to learn how to make a specific feature from any of my games.

I also upgraded the Godot version with the quick fix. This fixes some audio bugs in some browsers, but the physics is not perfectly the same (Old Roger is a tiny bit more slippery, as far as I tested). V-Sync is also disabled because it can cause input lag on Linux since Godot 3.3. There are other pros and cons I've noticed after updating Godot but this is out of scope for this devlog.

Conclusion

I hope you enjoyed this postmortem, or you enjoyed playing the game, or both. I will comment on the results that will be released in a week and a half. Have a good day, don't explode on the way out!

Files

WHStroll-web-1.0.2.zip Play in browser
Oct 07, 2021
WHStroll-win-1.0.2.zip 16 MB
Oct 07, 2021
WHStroll-mac-1.0.2.zip 29 MB
Oct 07, 2021
WHStroll-x11-1.0.2.tar.zst 17 MB
Oct 07, 2021

Get Warhead Stroll

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.