Now that the voting period of Mech Jam II has closed, I want to look over how successful my entry was compared to my own expectations and how it was received by commenters.
I'm super proud of my wee game (though it ended up more tech demo than game)! Here are some reflections now that the jam is over and there have been plenty of comments :)
The first thing I noticed was a bit of false expectations going in, I scoped really wide for the jam which meant it ended up being really shallow in return. It was only a two week jam after all!
In response to some early comments I rewrote a lot of the game information and instructions to clarify it as a tech demo, which seemed to help a lot with later players.
Along with this I was also missing instructions for how to play! This wasn’t in the game nor even on the itch page, which led to people being very confused. This was due to my focus on getting more content in the build and not having energy to write the submission up properly. I wrote a lot of info up after the first few plays and again this helped a ton.
I’m quite happy with my in game controls display which work on keyboard/gamepad though - especially since the feature was bodged together in the last hour or two of development! Though in my speed I missed out a few very vital controls (such as how to undock from mechs!! pretty integral to the gameplay!)
I also made some quick fixes and tweaks to the gameplay itself based on early feedback. Mostly bug fixes (such as fixing the boat respawn not falling out of the world..) but I also changed the order of mechs encountered in game as people didn’t understand the Crawler controls. In hindsight it was way more convoluted than it needed to be and than any of the other mechs in the game (it was my first piece of code for the jam too, so could have done with some more iteration). For a quick fix I simply replaced that with a Hopper mech instead, which gave a much better initial impression of the game.
- Story/intro cutscenes. Just didn't have time to do these, the majority of my work focused way on the mech controls, movements, & procedural animations. This was a minor thing but I felt it could really set the scene and give the game a more rounded and directed feel.
- Heli-cockpit max range - This might have helped give the demo the feel of an actual game, as some players were simply flying directly to each new zone. The initial idea was have the helis limited in range from the last mech they docked with, for the puzzle aspect of the game. However again I just ran out of time on this, and didn't want to add constraints at the last minute in case it made the game impossible for players
- Mech fueling - This is semi implemented with the tree picking and sticking in engine procedural animations, but was never tied to an actual fuel system with actions draining the mech's power until it finally dies. The goal was to have newly discovered mechs have to be fueled before use too, which could have led to more interesting gameplay!
- Deeper puzzle mechanics - Another biproduct of overscoping with the amount of areas and broadstroke ideas; The areas themselves lacked any real puzzles other than clearing paths. My original goals included more interesting mechanics like pressure pads, carring objects around in the mech hands, & jumping for more mobility options
I shared my development progress throughout the jam on Twitter, in the Mech Jam Discord, and in the Biome Collective weekly sharings. This was great for getting early feedback & keeping me motivated with kind feedback.
After the jam finished I also started posting my older dev videos on Reddit, with great reception! Specifically in r/Unity3D, showing off my early procedural animation works.
I tried to play and rate every entry, but in the end I only made it through about 3/4 of them! There were 78 in total and I had a lot of fun playing them.
Finally, the jam had a great community on the Discord server which really helped keep motivation high throughout development with feedback and seeing other works in progress!
The final days of Mech Jam II were jam (hehe) packed for me, hence the lack of day-by-day breakdown ;) Let’s rectify that somewhat now that my entry is officially submitted!
In the final days I started by populating the small bunker intro zone, which was designed to be story focused with some broken down and weak mechs - the crawler & hopper variants (unfortunately ran out of time before implementing the wee story/intro animation)
I linked each of the different zones via trigger bounds which the player must reach to progress. While in a mech they have a large green arrow pointing to the next progression trigger to help them along.
The last few hours of the jam were focused on the ocean zone & boat mech. I really didn’t want to cut this feature as I think it was a very good example of the design possibilities for a co-op mech puzzle platformer game. Due to this the boat is quite janky (especially in multiplayer) however I’m still glad some iteration of this idea made it in.
However because of the focus on the boat mech I had to cut the final lush forest zone with its planned jumping/swinging spider mechs. I think this could have been a really fun zone! Instead I just used my old debug/testing scene and polished it up into a bit more of a sandbox playground as a reward for completing the other 4 zones.
Also thanks to some early playtests by friends in Biome Collective & the Mech Jam discord I knew I was going to need some proper options for mouse sensitivity & game volume. Along with control listings in the game to help new players figure out each mech as they progressed through the game. I am quite happy with the quick mech specific control UI I managed to throw together; which can be toggled between keyboard/controller input displays. (I also wanted them to pop up when entering a new mech but ran out of time)
Some people were asking for a breakdown of my procedural animation method, so here’s a video with some extra debug visualisations turned on with an explanation below.
🟪 Purple cubes are the IDEAL foot positions relative to the body, these are basically static but get offset by the mechs current velocity in the x/z so the feet aren’t constantly lagging behind
🟥 Red cubes are the ACTUAL x/z positions which iterate inward from the purple cubes towards the mech central body if the outer positions were invalid (i.e. foot would be further from the mech than leg length allows)
🟢 Green spheres are the foot positions themselves, which are spherecast down from the red cubes to find a grounded position for the foot to rest on
Each foot tries 5 iterations from the outward 🟪 purple cube to try and find a valid foothold, if not then they don’t move from their current position (Still has some issues with feet dragging behind sometimes but yes)
Today I put together the city zone, complete with blocks of destructable buildings. The walker mechs can punch buildings to do damage, and hitting falling buildings into other buildings will chain into domino effects!
Also tweaked the climbing code + leg procedural animations further to better support clambering over the skyscrapers as seen in the video
Finally I put together a quick first pass on the wasteland zone - desert mesas with large gaps which need to be bridged across with the Bridg-O-Matic mechs
A lot of today’s time was spent iterating on the original IK + procedural animation code to make the movements smoother, and also to develop the foot finding code; Now if a foot would be hovering in air, it checks in 5 incremental steps from the desired position towards the central mech body to find a valid foothold.
This makes climbing up and perching on buildings way more convincing! I’m really happy with it so far.
I wanted something to show off while working on more backend stuff today so I added talking! Inspired by Vintage Story’s musical voices, now the mechs can play a series of musical beeps at the press of a button. I think this will be great fun in multiplayer (not to mention really cute!)
Lots more work on the procedural animation + foot finding
Added grab hands and tree eating procedural animation to feed the mech engine - this doesn’t actually give the mech any power yet (in fact they don’t have any sort of limited charge) but that’s the end goal!
Struck by a Fey mood, I added multiplayer today
As usual I’m using Photon’s Unity networking solutions to rapid prototype multiplayer, though this time I’m trying out their new PUN2 release. It still has the same 20 CCU free base deal, which is perfect for jam games like this.
Helicopters and mechs are synced, with some extra logic for player’s gaining (networked) ownership of any mech they dock with. Also added late joining syncronisation so existing players will tell any new joining players about the state of the world, where mechs are, etc
Lots more aesthetics work today! I really should have prefabed those mech legs when I was originally prototyping all the different mech designs, as that would have made this process of changing the models/shaders way more straight forward!
Still, it’s done now and looking great (if I say so myself). I also added a quick script to change individual mech highlight colours for some variety :)
The engines added to the back of each mech’s torso are intended to be part of the mech fuel feature going forward, but for now are purely aesthetic.
Finally I worked on polishing the heli-cockpits! They now properly face their direction of movement, cast dust off their blades, & have sound.
First aesthetic pass today!
I’m using the FlatKit shader plugin for Unity (which is fast becoming a favourite of mine, its super versatile - we used it for PsiFrost too!) along with various Kenney asset packs - mech bodies are built out of train carriages and monorail segments!
I love bodging stuff together like this, making things out of random other assets. It reminds me of my Garry’s Mod days, good times…