63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# NULL DEPTH — technická architektúra
|
|
|
|
## Stack
|
|
|
|
- Blazor WebAssembly standalone
|
|
- .NET 10 / C#
|
|
- HTML/CSS fullscreen UI
|
|
- JSON obsah bez backendu a databázy
|
|
- browser localStorage pre save a settings
|
|
|
|
## Princíp
|
|
|
|
C# obsahuje iba všeobecný engine. Herný obsah je dátový:
|
|
|
|
```text
|
|
Input / kliknutie
|
|
→ GameService
|
|
→ zmena GameState
|
|
→ autosave
|
|
→ Razor znovu vykreslí miestnosť
|
|
```
|
|
|
|
## Súbory
|
|
|
|
```text
|
|
Game/GameService.cs načítanie dát, pohyb, flagy, save
|
|
Models/GameModels.cs dátové modely
|
|
Pages/Home.razor fullscreen obrazovky a overlaye
|
|
wwwroot/data/game.json celý level a gameplay obsah
|
|
wwwroot/localization/sk.json slovenské texty
|
|
wwwroot/localization/en.json anglické texty
|
|
wwwroot/assets/images/... title a miestnosti
|
|
wwwroot/assets/audio/... ambience a SFX sloty
|
|
```
|
|
|
|
## RoomDefinition
|
|
|
|
Každá miestnosť má ID, lokalizačné kľúče, súradnice, obraz, voliteľný alternatívny obraz, exits a interakcie. Exit môže vyžadovať flagy a mať lokalizovanú správu pri zamknutí.
|
|
|
|
Interakcia môže:
|
|
|
|
- vyžadovať alebo zakazovať flagy
|
|
- nastaviť flagy
|
|
- pridať predmet
|
|
- vytvoriť checkpoint
|
|
- ponúknuť dátové voľby
|
|
- spustiť smrť alebo ending
|
|
|
|
## GameState
|
|
|
|
Ukladá aktuálnu miestnosť, navštívené miestnosti, flagy, inventár, checkpoint a čas uloženia. Save používa kľúč `null-depth.save.v1`; settings používajú `null-depth.settings.v1`.
|
|
|
|
## Rozšírenie hry
|
|
|
|
Pri pridaní miestnosti stačí:
|
|
|
|
1. doplniť objekt do `wwwroot/data/game.json`,
|
|
2. doplniť `nameKey`, `descriptionKey` a texty interakcií do oboch lokalizácií,
|
|
3. uložiť 16:9 obraz pod cestu uvedenú v `image`,
|
|
4. pridať exit z existujúcej miestnosti.
|
|
|
|
Zásah do C# alebo Razor kódu nie je potrebný.
|