You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
3.0 KiB
76 lines
3.0 KiB
## I love X Engine Architectuur
|
|
|
|
Deze engine is de basis voor alle games op de XCube (game kamer van 4x4 meter). Het doel is dat je direct kunt beginnen met het bouwen van levels en game-content, zonder telkens de basis opnieuw te schrijven.
|
|
|
|
### Structuur
|
|
De engine bevat alle generieke modules en functionaliteit:
|
|
|
|
```
|
|
ilove-x-engine/
|
|
├── src/
|
|
│ ├── core/ # Engine modules (config-loader, asset-manager, game-loop, event-bus)
|
|
│ ├── modules/ # Standaard modules (intro, levels, finale)
|
|
│ └── index.js # Entry point
|
|
├── assets/default/ # Basisassets
|
|
├── configs/default.json # Standaardconfiguratie
|
|
├── docs/ # Documentatie
|
|
├── tests/ # Testen voor engine en modules
|
|
├── package.json
|
|
└── README.md
|
|
```
|
|
|
|
### Werking
|
|
- **Eén codebase:** Alle varianten (I love Holland, I love AZ, etc.) gebruiken dezelfde engine.
|
|
- **Configuratie-gedreven:** Je kiest een variant door een configuratiebestand te selecteren.
|
|
- **Modulair:** Kernmodules zijn herbruikbaar en uitbreidbaar.
|
|
|
|
### Gameprojecten
|
|
Een gameproject (zoals `my-game/`) gebruikt de engine als basis en voegt eigen levels, assets en configuratie toe:
|
|
|
|
```
|
|
my-game/
|
|
├── src/
|
|
│ ├── main.js # Startpunt van de game, laadt de engine en jouw config
|
|
│ ├── modules/ # Eigen modules/levels/gameover
|
|
├── assets/ # Game-specifieke assets
|
|
├── configs/game.json # Jouw gameconfiguratie
|
|
└── package.json
|
|
```
|
|
|
|
### Direct starten met levels
|
|
Je hoeft alleen een nieuwe gamefolder aan te maken, je eigen configuratie en assets toe te voegen, en je kunt direct beginnen met het bouwen van levels. De engine regelt alle basisfunctionaliteit.
|
|
|
|
### Uitbreiden
|
|
Wil je nieuwe features? Voeg ze toe aan de engine (core/modules) en alle games kunnen ze gebruiken.
|
|
## I love X Engine Architectuur (Basis voor XCube)
|
|
|
|
Deze engine is opgezet als een startpunt voor het ontwikkelen van games op de XCube (game kamer van 4x4 meter). Het doel is dat je direct kunt beginnen met het bouwen van levels en game-content, zonder telkens de basis opnieuw te schrijven.
|
|
|
|
### Principes
|
|
- **Eén codebase:** Alle varianten (I love Holland, I love AZ, etc.) gebruiken dezelfde engine.
|
|
- **Configuratie-gedreven:** Je kiest een variant door een configuratiebestand te selecteren.
|
|
- **Modulair:** Kernmodules zijn herbruikbaar en uitbreidbaar.
|
|
|
|
### Structuur
|
|
```
|
|
src/
|
|
core/ # Engine modules
|
|
configs/
|
|
holland.json # I love Holland
|
|
az.json # I love AZ
|
|
breda.json # I love Breda
|
|
assets/
|
|
holland/ # Specifieke assets
|
|
az/
|
|
breda/
|
|
```
|
|
|
|
### Modules
|
|
- **Asset Manager:** Laadt media en data.
|
|
- **Config Loader:** Leest configuratie en stelt de game in.
|
|
- **Event Bus:** Verzorgt communicatie tussen modules.
|
|
- **Game Loop:** Stuurt de flow van de game.
|
|
|
|
### Direct starten
|
|
Wil je een nieuwe game maken? Voeg een nieuwe config toe, plaats je assets, en begin direct met het bouwen van levels. De engine regelt de rest.
|