Vandaag bezig geweest met overdenken hoe de game er nou globaal uit moest komen te zien, qua flow en verschillende ‘states’.
Daaruit volgde dat ik bepaalde zaken ergens moest gaan bijhouden, maar was niet helemaal tevreden met de voorgestelde mappen-structuur van m’n collega-developer.
Aangezien hij meer ervaring had met Godot ben ik de eerste dagen hem gevolgd met z’n voorgestelde mappenstructuur, maar hoe meer ik in Godot werkte, hoe meer ik een hekel kreeg aan de opgezette mappenstructuur. Het werkte allemaal niet fijn, zat teveel theoretisch bij elkaar, maar niet logisch.
Ter voorbeeld, zo zat alle animaties in een mapje animations
en de code in movable_objects
– maar als ik dan iets met de player wilde doen, moest ik in 2/3 verschillende mappen zijn. Veels te veel gedoe.
En aangezien m’n collega-developer vandaag ineens aangaf dat hij examens had op z’n school en dus weinig kon doen (verrassing!), besloot ik om de stoute schoenen aan te trekken en gewoon de boel helemaal om te gooien naar een (voor mij) logischere indeling.
Deze indeling was ongeveer als volgt:
.
├── assets
├── data
├── entities
├── global
├── gui
├── levels
├── menu
├── sound
├── splash
├── tilesets
└── zzzz_deprecated
assets
– alle sounds en sprites, onderverdeeld in verschillende mappen, per entiteit of domein:
├── assets
│ ├── Sound
│ ├── fonts
│ └── images
│ ├── enemies
│ ├── items
│ ├── menu_animation
│ ├── misc
│ ├── npcs
│ ├── player
│ ├── ui
│ │ ├── main
│ │ ├── npc_dialog
│ │ └── splash
│ └── world
│ ├── floor
│ ├── props
│ └── walls
entities
– alle verschillende entiteiten, zoals een mapje voor deplayer
, een ander mapje voor eenenemy
en dan weer een ander mapje voor eenitem
of eennpc
. Zo staat alles wat bij elkaar hoort bij elkaar, code en animaties:
├── entities
│ ├── enemies
│ ├── items
│ ├── player
│ ├── villagers
│ └── world
global
– alle globale scripts – bijvoorbeeld om de game-state bij te houden of om muziek af te spelen. Maar ook zaken om globaal de dialogen bij te houdengui
– alle UI gerelateerde zakenlevel
– de verschillende levels die gemaakt warentilesets
– de verschillende tilemaps voor de levels
Een aantal mappen had ik achteraf gezien ergens anders willen onderbrengen:
sound
waarin de code stond voor het aansturen van de muziek, had eigenlijk als submap inglobal
gemoetenmenu
had als submap vangui
gemoeten- net als
splash
wat ook een submap vangui
had moeten zijn
Maar al-met-al was ik wel heel happy met hoe ik de overall structuur opgezet had. Voelde heel intuitief aan en wordt ook door Godot niet afgedwongen ofzo – dus kon zelf gewoon lekker m’n eigen weg erin vinden.
En nu dus morgen lekker aan de slag met het quest-systeem, waarbij een npc dus een bepaald item kan requesten, de player dit item dus moet kunnen oppakken en kunnen afleveren.
Heb al wel beetje een idee, maar eens zien hoe we dat gaan aanpakken dan.