Vandaag bezig geweest met overdenken hoe de game er nou globaal uit moest komen te zien, qua flow en verschillende ‘states’.

Verschillende flows van de game

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 de player, een ander mapje voor een enemy en dan weer een ander mapje voor een item of een npc. 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 houden
  • gui – alle UI gerelateerde zaken
  • level – de verschillende levels die gemaakt waren
  • tilesets – 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 in global gemoeten
  • menu had als submap van gui gemoeten
  • net als splash wat ook een submap van gui 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.