Posted January 17, 2023 by GoldenDonkeyProductions
#devlog #goedwarejam
Hello There!
General Kenobi?!
So, as is customary with GoedWare jams, this is the devlog to go along side the game: Time is Money. Money is Power. This jam was a blast to take part in, and although the game didn't turn out absolutely perfect, I have learnt a ton from it and more importantly, it's fun enough, and I had a blast making it along the way!
In this document I'm going to go over everything that happened within the jam to the best that I can recall, it was a chaotic ride so lets hope I can cover it all correctly!
To those of you who are reading this and also took part in GoedWare Jam #7, it was a blast working together with you all and chatting to you all in discord. Awesome to see the Jam get it's record number of entries for the 2nd one I was able to take part in, and I'll definitely be taking part in more in the future, can't wait to work along side you all again!
Right then, onto Godot!
Let me preface this, I have for over 8 years now been a Unity developer. If you take a quick look at my profile you'll notice most, if not all, of the games are built on Unity. I could rant for days for the reasons I've been choosing to move away from Unity for my personal projects in recent years but they can be mushed down into 4 main reasons for me:
- I don't like the move to more package based items that started after Unity 2020. Packages are a pain in the arse to work with, and worse it gives Unity even more options to EOL something without replacing it (we didn't have official networking for like 5 years damn it!)
- The company has made some very controversial moves in recent times that I personally don't agree with. Just look at r/gamedev a few months ago for examples of this, every week there was a new controversial move from Unity
- I work freelance and most of my work is done with-in Unity, it's nice to differentiate occasionally.
- I love learning new tools. That's one of the things that got me really into game dev was picking up new tools to mess around with and learn new things in. A game jam can be a fantastic opportunity for that.
For those reasons I have chose to work with Godot for this jam. I've been using Godot on and off for over a year now, so I've got a pretty decent idea of how it works... The engine itself is actually quite different from others I've used like Unity, sepcifically they use an OOP approach to the engine instead of ECS which is something I'm more used to. I'm not sure if I like this yet, I think both methods have their place. Godot's scene system can be used fantastically for organising massive node trees so it's not really an issue, and if, like me, you're stuck in the ECS mindset, you can effectively use nodes to create entity-component relationships where necessary for your game!
Not to mention GDScript is a god send for game jams. I'm a huge C# fan, and even I wont touch it when there's the opportunity to use GDScript. For those who don't know, it's a python based language with a few syntactical similarities to languages like Lua. It's extremely easy to prototype and work in, and because it's specifically designed for the Godot engine, something that could take me 15 lines in Unity and C# may only take me 3 within Godot. I'm not a fan of the node searching mess of variables that needs to be done at the top of every script, even with the new "%" access node modifier that's accessible, it's still not a fantastic system, but overall with a bit more practice Godot could quickly become my preferred engine, and that's part in thanks to the power of GDScript!
Now, there is never such a thing as a perfect UI system. Unity's is hot garbage and often causes scaling issues, even for people with years of experience and messing with it's stupid settings like myself (Unity's default settings are seriously ridiculous, but that's a different matter!). Even web development, the UI design is a huge pain. 50 different ways to centre a div in CSS and none of them are as seamless as "vertical-center: true" like it basically is for horizontal centre... Like how in the year of 2023 is that possible?! But all of that pales in comparison to Godot's UI system.
This system was made purely to infuriate whoever is using it. Not a single person I read online seems to actually know what's going on, and the system makes a total of 0 sense. You not only have a mix of anchors and containers and scale-flags that all work against each other, when you modify a setting in the editor, it doesn't mention half the time if it will be replaced by something else! So you'll move your button to the bottom left corner, then go and do something else, and 10 minutes later you'll notice your button has move back to where it was! Like why is this a thing, Godot?! Admittedly towards the end of the project I was starting to get a hang of things I believe, but I think that's partly to me having spent years just adding containers and changing size-flags until stuff worked and then just copy and pasting this to make other stuff.
So the lesson here is simple. If you want to make a game in Godot that is UI heavy: steal someone else's node tree and just use that and modify it to your needs. Starting from scratch is an absolute nightmare, but if you've got someone else's work you can blame it on them rather than yourself when nothing works as intended.
I will say that the screen scaling is very nice though, handled much nicer than basically any other game engine I've come across.
Well, first of all thank you for making it through all those crazy ramblings of a mad man, who is writing this at the 4th 2:30am he's seen this week.
Overall this jam has been a blast, and I am rather happy with how this game has turned out. It's certainly not my best work, but it's certainly not something I will ever be ashamed of either. I think the game had a really strong concept originally, and the art style definitely worked heavily in it's favour. The gameplay itself is actually relatively fun and satisfying, and most importantly re-playable which is something I've tried to strive for more in my recent games. I'm definitely very glad I didn't go with the original FPS idea considering some of the other entries to the jam that blow what I could have done out the water!
Will I try to finish it in the future? Maybe, I'll see how the results of this jam go I think. It would probably involve restarting the project anew in Godot, rewriting a lot of the code and improving it, currently it's an uncommented hell-scape that would give anyone a headache, including future me when I end up looking at it again!
I think without the restrictions of time and themes that comes with a game jam, the game would be better suited to a genre more like survival, maybe a survival city builder? The art could also do with being a slightly higher resolution too to allow for that bit more detail, and the controls and complexity need a complete overhaul just to make it playable by your average person. Adding more mechanics to the city itself too would be a must just, to make it not ridiculously easy to grow your city if you just think about the correct path for a second before hand.
Anyway, GoedWare Jam #7 has been a great jam, and certainly gone better than my previous entry to these jams - a weird D&D and book hybrid. It was fantastic jamming with you all and I can't wait for the next time.