Pharablock: Post Mortem (not again!)
A shameless offtopic before the actual topic even started – I always think of this song whenever I hear or see the Post Mortem expression:
So, I thought I would follow suit and write a little something about our Ludum Dare experience.
The concept
First of all, the thing which probably surprised me the most – the core idea for our game came together really fast. It might have taken 30 minutes from the moment we said “Hello” to the moment when we knew what we were going to make.
I remember my first thought was to make some kind of an exploration game where you control an archaeologist searching for a treasure inside a spooky pyramid. Then Pavol said something about a prehistoric builder building things with an ancient crane, and we immediately started mixing the concept with Tower Bloxx, and, eventually, Angry Birds.
The first plan was to use both the slingshot and the crane, and let the user switch between them under some circumstances. In the end, we decided that the slingshot was good enough on its own.
The jam
The jam actually went pretty well regarding most things. We didn’t push it too much, we got up around 9 o’clock, had a fair amount of pauses, stretches and procrastination moments, but I think we also got a lot of things done.
The good things
We at Fryhet are a relatively long-time Unity users, and we have considered using it for this Ludum Dare. In the end, we have decided to use Godot. I personally used it for some smaller projects in the past, so I’ve had some experience using it and knew my way around.
Boy was it a good choice!
Quick note: a lot of boring, technical babble incoming, you might want to skip to the next section.
Even though I don’t like GDScript due to the simple fact that it’s dynamically typed (if you do a typo in the variable name, the goddamn compiler should catch it!), I’ve had a really great experience using it.
Sure, it’s not bug-free at all, some things feel cumbersome or unfinished, some bugs in the export templates have caused us and especially the players a lot of trouble, and we’ve had a lot of headaches along the way, but I can live with that.
The thing is, Godot is amazingly powerful, especially the scene system. You can split the entire project into tiny, composable pieces which are ridiculously easy to manage and work with.
Mid-project I’ve decided that the first background we’ve made (day and night cycle with a big dune, it’s still visible ingame) looks cool, and I wanted to try to use day and night “parts” in the main menu as well.
So I’ve duplicated the scene, deleted everything not related to the sky itself, saved it, and instanced it in the old background in order not to break anything, and did the same in the menu.
“Hmmm, it looks quite nice, it’s probably a keeper.”, we both said. Then I thought that it would be cool if the day and night motion would be present and continuous in every scene throughout the whole game. Ugh. How hard can it be?
Let’s create a container node, which will hold the currently loaded scene, and put the background next to it. Now this will be the main scene, and everything else will be loaded into the container instead of switching the scene entirely. So I did exactly that. Just one thing needed to be changed – all scene switches had to be handled by our own custom function. No problem, just search and replace all occurences of change_scene with our function.
“No way that was enough, everything will be broken.” – I thought just as I clicked the play button. “Holy shit, it actually works!” – I thought just 10 seconds later. The whole process took just about half an hour!
I’m sure something similar could be done in Unity as well, I just doubt that with its monolithic scene and prefabs it could be done in such a quick and non-intrusive fashion. No, please don’t hit me, Unity users!
Of course, you need to adjust your thinking to grasp the Godot workflow, but once you do, you can’t help but love it.
The screw ups
The thing I regret a little is that we (I) did a crappy job with the sounds. I personally don’t really like them, and I have also implemented them quite poorly, so they are glitchy sometimes. Also, there’s no music, which is probably even worse. Now that I’m playing all those amazing games which have been submitted, I realize just how much a good music adds to the product. In short, I think we underestimated the importance of sounds and music, and is a thing we should work on a little more.
Also, submitting didn’t go as smooth as we had hoped. Our website was often unavailable, which made it impossible to play the web version (although we’ve added an alternative web link afterwards), some people reported bugs or were not able to play at all, and the Windows standalone build contained a bug causing the slingshot to go towards the top left corner of the screen instead of following the mouse (this has been fixed eventually).
The web version seems to be cursed, anyway. It seems to break in unexpected ways, and these bugs are hard to track down and fix. If there’s one thing Godot is (apparently) bad at, it’s the web export. And quite a few little bugs.
The conclusion
All in all, I think we did pretty well. Comments about the game have been astonishingly good, and there are a lot of helpful, talented and friendly people in the Ludum Dare community.
It was a great experience, thanks for that!
Also, here is a link to the jam entry 
By the way, I have no idea why the comments are disabled, they shouldn’t be.
————-


