My 6th Game Jam
There are six faces of a die and there are six game jams I attended. This time, we created this game.
Looking back
This was a really tough game jam for me since I’ve had a party organized by my brother on Wednesday and was already tired on Thurdsay when I usually invested some time in playing around in Godot and learning something new.
Also, I’ve many times done the dirty trick of spending one lesson of my Python club showing kids Godot which made me review all the basics beforehand.
Before the next game jam, it would be nice to review some game design patterns and maybe try out to program a small game myself which is easy to say but very hard to do. Could be cool to have a Godot programming club instead of Python next year in DDM. Maybe I should try that out.
Team changes
This time, we didn’t have our lead programmer Matous, but we persuaded Hanka to join us and I think it was a great decision! Hopefully next time we will compete in the same lineup.
I thought for the next game jam, it could be a good thing to pick a person which would be responsible for creating the overall plan and for delivering that plan on time.
Fails
Our biggest fail was, that we’ve let everything to last minute and then didn’t have time to finish the game. Many things were done last minute and didn’t look as good. The enemies throwing rocks were unfortunately broken.
What to do better
- don’t try to make the enemy throwing mechanics perfect, just random throwing would probably be enough and would take way much less effort
- in general, just deliver some solution at the beginning and then improve it later (having it perfect at the first time is an overkill)
- Stepan was right with drawing tiles being an overkill, for a game jam game
- a good workflow is to use tiles to design the game fast but then let stepan redraw the levels over the tiles
- tiles are only needed for a game like Alterra where you need to dynamically change one tile for another
- have placeholders for all scenes early on to make a working skeleton of the game that is finishable
Nice things I learned
- how to use AnimationPlayer to animate multiple parameters at the same time synchronously
- animate crown of king position as well as sprite frames
- dynamically access nodes based on their group which is ugly and doesn’t work if done too early
- I wonder what would be the standard proper way to do this
- collision layers and masks
- layer - tells where this objects makes itself detectable
- mask - into what objects I cannot go through (I rebound from them)
- important is that I can be in layer A and not have mask for B, then I can have another object in layer B s.t. it has A in mask. So then such object just rebounds from A without the first object noticing it
What worked well
- use Ctrl + F
- to browse in VS Code for certain lines of code (removing active prints over all files for example)
- to look for scripts and scenes to edit quickly
- chatbot is faster for looking up things than youtube for most stuff
- good to have a project for the chatbot with context already loaded
- ask him to give you clear steps on how to do something
What to research
- look at some godot project made by experienced developers
- analyze it using some chatbot (maybe built in vs code chatbot)
-
finite state machine for npc’s and player
- correct way to use signals
- a signal bus?