initial impl

This commit is contained in:
Michal Vrba
2026-08-27 20:42:45 +02:00
parent d02076f14b
commit d5e7df6b0e
53 changed files with 1336 additions and 0 deletions
@@ -0,0 +1,62 @@
# 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ý.