Posted January 20, 2023 by Arciae
#Postmortem #Game Jam
I haven't written many posts, but someone years ago said that a journey of a thousand miles begins with a single step, so here I am.
The game takes roughly under 6 days, with later days working like 12~16 hours a day, I am inclined to say that maybe I should live more healthily.
TLDR: Will focus on Game Design more in the future, as I start to feel kinda confident in technical things now, but I should probably get comfortable with Godot's Animation System instead of doing animations with code (basically all linear_interpolation now).
And I have written down some technical problems I encountered when developing this game.
I focused too much on technical details and implementations that I only had little time to design gameplay. in 5 days of the development, I made the levels in the last day and then roughly tweaked the gameplay. It turns out that the Mission - Resident is quite hard, and the items are kinda scarce (especially when players are still exploring the map), this does not give player constant rewards, which might make the game less fun. I remember some addictive games give players constant but not really hard challanges/decisions, which makes the players in a game flow and want to play just one more turn. I think I should gain more experience in this regard.
When developing, Pause Menu does not really get in our considerations, but when it's near release and you realize oh I haven't implement pausing yet, it might be very difficult to pause correctly, especially with timer and such. With some Game Engines you can handle this with ease, but it's not always the case.
These things add more depth to the game, but more difficult to design. Especially with player created content, like city building games, players tend to come back and see their own creations. I really should start experimenting with these things now, a journey of a thousand miles begins with a single step.
I discovered that, Audio changes the game a lot, and I cannot emphasize this more, when you switch back to No Sound after adding audios to your game, it feels... weird. Adding music to the game would almost instantly make the game more like a game, rather than a tech demo. Also, I think it's important to give feedback to whatever thing the player does, we always say the core game mechanics are the most important but juice might be part of the fun?
When the theme announces, I chose the *In the Dark*, and as I just happened to discover *Light Only* in Godot's CanvasItem Material, I decide to make it *only flashlight can see them*, a very simple but kinda effective trick, not very typical of Godot.
My initial impression is that it's kinda inflexible, I miss the SoundCue in UE4, in Godot we have to code ourselves if you want say randomly play one of [streams].
I start to incorporate audios in start of Day 5, and then my audio handling code is scattered in many classes, next time maybe I'd develop a event bus or something to solve this. like Event Queue.
Some interesting frustrations facts:
AudioStreamPlayer only plays a single stream, we have to develop a class to generate AudioStreamPlayer on demand. I called it AutoAudioStreamPlayer2D, I didn't really think about its name...
AudioStreamPlayer2D does not inherit AudioStreamPlayer, as AudioStreamPlayer2D extends Node2D and AudioStreamPlayer extends Node, now that's prime code reuse in inheritance architecture. Composition Over Inheritance.
There's a Resource called AudioStreamRandomPitch.
Code of Jam Game's tends to be spaghetti, starts from Middle of Day 3, when the game scope is clear, I start to implement things as simple and ituitive as possible, gained many lessons and experiences that I'd definitely apply to my next game.
The inheritance approach still feels not very easily extensible, I might revert to Entity-Component-System next time.
Also, just got the discord server running, and thanks for reading!