Global Game Jam has come and gone again, and I made another game for it. This year’s theme was “Make Me Laugh”. I spent a good chunk of January learning Godot for this year’s GGJ, and as part of that, I made a quick prototype of a 2-player robot arena game. I made it because my friend and I were discussing the lack of Robot Wars-related games and thought about making one for GGJ.
As it happens, the theme fit quite well with the idea, so we decided to fill it full of ridiculous items instead of robots and hope that it would be funny. We thought it was silly, but when we presented it to the sleep-deprived audience, it didn’t get much of a reaction.
But anyway, here’s an outline of the game. 2-player robot arena. You can choose a character body, which will have a set amount of weapon placement points each. You then pick a weapon, and then you spawn into the arena. The arena is a 20m x 20m area. There’s a pit that can be activated via a button on the wall and a dropzone where random items drop.
Here are the body models. I’m personally quite fond of the man holding axles model, as it is way more horrifying than I expected it to be when I came up with the idea. And I quite like the box, too. But I should probably note that I modelled both of those while my teammate did the cheese and the toilet. But I did the textures for all of them.
With a bit more experience with Godot, development this time around went a lot more smoothly. However, that’s also because I was in charge of the programming for the most part. Not to say that I’m a better programmer than my friend, but more to say that I spent a lot more of my time doing the work.
Either way, I used the C# version of Godot 4.2.1 and found the programming side of things to be OK. But there’s still a lot of issues I have with Godot, predominately the general hierarchy of things. Accessing nodes is the biggest pain in the arse, and prefabs don’t really work in the same way they do in Unity. You can’t drag and drop something from the files into the inspector; you have to load it as a packed scene and then convert it to the correct node. But not every node is accessible through code. If you wanted to instantiate a vehicle body via code, for instance, you couldn’t. Hell, you can’t even access it.
I also had issues getting information on the root node of an object, and for one of the scripts, I ended up using GetParent()
five times on one bit of code just to get the name of the player object. However, soon after the event, I remembered that Node Groups existed, and I probably should have used that instead.
But the more pressing issue with Godot is just how buggy some of the node types are. For the game, we heavily relied on the VehicleBody3D
node to drive the player models. But for the first few days, the wheels on the player models simply went through the floor, and I couldn’t figure out why. And after researching, it turns out that the node by default doesn’t really work how you’d expect and suffers from many bugs. That said, I did eventually find a post that suggested altering the stiffness of the suspension plus some other values until you got the behaviour you wanted. After about 30 minutes of tweaking the values, I eventually solved the issue.
I have no real complaints about the art side of things; Blender is pretty robust these days, although I did learn that the GPU compute option wasn’t configured correctly, and after fixing that, rendering stuff took literal seconds instead of minutes. What bothers me is that this option was always there, but I hadn’t set it up properly. Considering I upgraded my PC primarily to improve productivity, I wonder if I had checked the right boxes, I could have saved a bit of money.
That’s really it as far as GGJ goes.
As for the new stream layout stuff, I finished greyboxing the gaming part of it, and now I just need to set up the textures. I also need to get started on the game dev scenes and the transition animations for both.
Hopefully, I can get all this sorted out by March. I don’t really want to be working on this instead of playing through Dragon’s Dogma 2. On the gaming side of things, I’m making my way through Infinite Wealth and having a blast. I also gave Graven ago and had mixed feelings about it. Persona 3 Royal and Granblue Fantasy Relink are coming soon, with the former being on Game Pass. Relink is a bit too expensive for me at the moment, so I might wait for a sale.
Anyway, till next time.
-Adam