initial impl
This commit is contained in:
@@ -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ý.
|
||||
Reference in New Issue
Block a user