From a4feb583e99a4730e1714593a9f22ee69406294b Mon Sep 17 00:00:00 2001 From: SanjarBLZK Date: Mon, 8 Sep 2025 13:55:12 +0200 Subject: [PATCH] Git --- docs/engine-architecture.md | 75 +++++++++++++++++++++++++++++++++++++ docs/getting-started.md | 21 +++++++++++ docs/module-dev-guide.md | 28 ++++++++++++++ 3 files changed, 124 insertions(+) diff --git a/docs/engine-architecture.md b/docs/engine-architecture.md index e69de29..ae1f8d4 100644 --- a/docs/engine-architecture.md +++ b/docs/engine-architecture.md @@ -0,0 +1,75 @@ +## 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. diff --git a/docs/getting-started.md b/docs/getting-started.md index e69de29..4d9df9b 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -0,0 +1,21 @@ +## Snelstart: Beginnen met een nieuwe I love X game op de XCube + +Deze gids helpt je om direct te starten met het bouwen van een nieuwe gamevariant en levels. + +### 1. Kies of maak een configuratie +Ga naar de map `configs/` en maak een nieuw configuratiebestand aan, bijvoorbeeld `configs/breda.json`. Vul hier alle game-specifieke instellingen in (teams, kleuren, vragen, etc.). + +### 2. Voeg assets toe +Plaats afbeeldingen, geluiden en andere media in een nieuwe map onder `assets/`, bijvoorbeeld `assets/breda/`. + +### 3. Start de engine +Start de game met jouw configuratie: +```powershell +npm start -- --config configs/breda.json +``` + +### 4. Bouw levels +Je kunt nu direct beginnen met het bouwen van levels en game-content. De engine zorgt voor de basisfunctionaliteit. + +### 5. Testen +Gebruik de testmodules in `tests/` om je game te testen. diff --git a/docs/module-dev-guide.md b/docs/module-dev-guide.md index e69de29..26d6550 100644 --- a/docs/module-dev-guide.md +++ b/docs/module-dev-guide.md @@ -0,0 +1,28 @@ +## Module Development Guide (I love X Engine) + +Deze handleiding beschrijft hoe je modules ontwikkelt en uitbreidt binnen de basisengine voor de XCube. + +### Module structuur +Modules bevinden zich in `src/core/` en zijn generiek opgezet zodat ze in alle gamevarianten werken. + +### Nieuwe module toevoegen +1. Maak een nieuw bestand aan in `src/core/`, bijvoorbeeld `score-manager.js`. +2. Zorg dat je module geen hardcoded game-specifieke data bevat, maar alles via configuratie en assets binnenhaalt. +3. Gebruik de event bus voor communicatie tussen modules. + +### Voorbeeld: Score Manager +```js +// src/core/score-manager.js +class ScoreManager { + constructor(config) { + this.config = config; + this.scores = {}; + } + // ...module logica... +} +``` + +### Best practices +- Houd modules klein en overzichtelijk. +- Gebruik configuratiebestanden voor alle variabele data. +- Test modules los in de `tests/` map.