initial impl
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# NULL DEPTH — asset guide
|
||||
|
||||
## Vizuálne pravidlá
|
||||
|
||||
Všetky lokality majú rozlíšenie `1344 × 768`, pomer 16:9, statickú kameru približne vo výške očí a neobsahujú text, logá, HUD ani ľudí.
|
||||
|
||||
Master visual style prompt:
|
||||
|
||||
```text
|
||||
cinematic science fiction horror environment, massive underground brutalist
|
||||
technological complex, monumental raw concrete architecture, black industrial
|
||||
metal, exposed cables, conduits and service infrastructure, grounded believable
|
||||
engineering, minimal cold cyan utility lighting, grey concrete and black metal,
|
||||
red light reserved only for alarms and danger, deep controlled shadows, subtle
|
||||
volumetric haze, abandoned but still operational atmosphere, psychological horror,
|
||||
minimalist composition, no people, no humanoid silhouettes, no text, no logos,
|
||||
no readable signage, no interface elements, realistic materials, static eye-level
|
||||
camera, slightly wide cinematic lens, consistent architectural language, 16:9
|
||||
```
|
||||
|
||||
Pri každom základnom obraze pripojiť k master promptu príslušný opis scény:
|
||||
|
||||
| Filename | Prompt scény |
|
||||
|---|---|
|
||||
| `title_null_depth.webp` | monumental symmetrical underground entrance, enormous sealed blast doors, cavernous forecourt, restrained cyan utility lights, large negative space |
|
||||
| `loc_01_exterior_access.webp` | exterior access platform before the same enormous Facility 03 doors, contractor terminal near the door, silent and operational |
|
||||
| `loc_02_security_lobby.webp` | vast empty security lobby, abandoned guard station, dormant monitors, clean concrete geometry, no signs of violence |
|
||||
| `loc_03_main_corridor.webp` | wide main distribution corridor, multiple heavy sector doors, locked server access, strong perspective lines |
|
||||
| `loc_04_maintenance_control.webp` | compact maintenance control room, auxiliary power cabinets, local control console, most systems dark |
|
||||
| `loc_05_staff_access.webp` | small staff administration area, empty workstations, one active terminal, chairs left mid-shift |
|
||||
| `loc_06_operations_room.webp` | empty operations room, wall of system monitors, containment sectors represented only as abstract light patterns |
|
||||
| `loc_07_service_elevator.webp` | narrow industrial service elevator cabin, closed metal walls, cyan ceiling strip, claustrophobic composition |
|
||||
| `loc_08_lower_landing.webp` | lower technical landing outside elevator, warmer haze, dense pipes, uneven utility light |
|
||||
| `loc_09_cooling_junction.webp` | cooling junction with massive insulated pipes, valves and blocked thermal door toward core |
|
||||
| `loc_10_cooling_control.webp` | cooling control room, two large power-routing assemblies, local console, believable industrial engineering |
|
||||
| `loc_11_equipment_storage.webp` | equipment storage cages, spare service modules, live manual override connected to power bus |
|
||||
| `loc_12_service_passage.webp` | extremely narrow shoulder-width service tunnel, low ceiling, cables and metal panels, no visible end |
|
||||
| `loc_13_observation_room.webp` | spacious observation room after narrow tunnel, single damaged workstation, view toward deep core infrastructure |
|
||||
| `loc_14_core_access.webp` | monumental armored core access door, human authorization console, silent symmetrical antechamber |
|
||||
| `loc_15_server_core.webp` | enormous server cathedral, hundreds of vertical modules disappearing into darkness, nearly silent, restrained cyan light |
|
||||
|
||||
## Alternatívne stavy
|
||||
|
||||
Alternatívy sa generujú z hotového základného obrazu cez Canny + Fun Union ControlNet. Zachovať geometriu, kameru, dvere, podlahu, strop a polohy veľkých objektov.
|
||||
|
||||
| Zdroj | Výstup | Zmena | Strength |
|
||||
|---|---|---|---:|
|
||||
| `loc_03_main_corridor.webp` | `loc_03_main_corridor_alarm.webp` | cyan svetlá prevažne vypnuté, riedke červené alarmy, hlbšie tiene | 0.85 |
|
||||
| `loc_07_service_elevator.webp` | `loc_07_service_elevator_stalled.webp` | kabína zastavená, dvere zatvorené, blikajúce núdzové svetlo | 0.90 |
|
||||
| `loc_15_server_core.webp` | `loc_15_server_core_shutdown.webp` | serverové moduly postupne tmavé, iba núdzové osvetlenie | 0.85 |
|
||||
|
||||
Spoločný ControlNet prompt:
|
||||
|
||||
```text
|
||||
KEEP THE SAME ROOM GEOMETRY, CAMERA POSITION, WALLS, DOORS, FLOOR, CEILING
|
||||
AND MAJOR OBJECT POSITIONS AS THE REFERENCE IMAGE. CHANGE ONLY THE STATE.
|
||||
No new architecture, no structural redesign, no new large objects, no people,
|
||||
no text, no logos, realistic materials, consistent NULL DEPTH visual style.
|
||||
```
|
||||
|
||||
## Audio
|
||||
|
||||
| Filename | Type | Prompt |
|
||||
|---|---|---|
|
||||
| `amb_facility_loop.ogg` | seamless loop | deep underground facility ambience, distant ventilation and structural hum, restrained, no melody, no distinct ending |
|
||||
| `amb_maintenance_loop.ogg` | seamless loop | industrial maintenance ambience, pipes, ventilation, low electrical vibration, sparse metallic resonance |
|
||||
| `amb_core_loop.ogg` | seamless loop | monumental server core ambience, immense quiet space, subtle cooling airflow and deep digital infrastructure hum |
|
||||
| `sfx_ui_confirm.ogg` | one-shot | short restrained technical UI confirmation, cold electronic click, no musical tone |
|
||||
| `sfx_door_heavy.ogg` | one-shot | massive industrial blast door unlocking and moving, hydraulic weight, concrete chamber reverb |
|
||||
| `sfx_power_restore.ogg` | one-shot | auxiliary power grid engaging, breakers, rising electrical hum, distant systems waking up |
|
||||
| `sfx_alarm_pulse.ogg` | one-shot/loopable | sparse low emergency alarm pulse, industrial, ominous, not shrill |
|
||||
|
||||
Finálne assety nahradia placeholdery priamo pod rovnakými názvami bez zmeny `game.json`.
|
||||
@@ -0,0 +1,108 @@
|
||||
# NULL DEPTH — game design a scenár
|
||||
|
||||
## Premisa
|
||||
|
||||
Elias Venn je externý servisný kontraktor. Prijme nezvyčajne dobre platenú zákazku v podzemnom technologickom komplexe Facility 03. Má sa dostať do centrálneho serverového jadra a vykonať diagnostiku. Komplex je však opustený, spojenie s povrchom nefunguje a jediný systém, ktorý s ním komunikuje, je lokálna riadiaca AI.
|
||||
|
||||
AI najprv pomáha. Postupne začne komentovať Eliasov zdravotný stav, reagovať na prečítané záznamy a manipulovať prostredím. Hra nikdy definitívne nepotvrdí, či AI zabila personál, či pracovníci unikli, ani či sú záznamy úplné.
|
||||
|
||||
## Formát hry
|
||||
|
||||
- minimalistická obrazová sci-fi adventúra
|
||||
- jeden kompaktný komplex na grid mape
|
||||
- fullscreen 16:9 obraz miestnosti a jemný HUD overlay
|
||||
- krátke opisy miestností; dlhší text len v logoch, termináloch a udalostiach
|
||||
- pohyb šípkami alebo klikateľným smerovým ovládaním
|
||||
- kontextová interakcia `E`, mapa `M`, inventár `I`, späť/pauza `Esc`
|
||||
- jednoduché stavové puzzle bez minihier
|
||||
- obmedzené návraty a cesty odomykané flagmi
|
||||
- autosave/checkpoint cez browser localStorage
|
||||
|
||||
## Úvod
|
||||
|
||||
Title screen používa obraz monumentálneho vstupu do Facility 03 bez textu v samotnom obraze. Názov `NULL DEPTH`, `FACILITY 03`, menu a navigačné pokyny sú HTML/CSS overlay.
|
||||
|
||||
Po zvolení novej hry sa zobrazí briefing:
|
||||
|
||||
```text
|
||||
CONTRACT // 7841-B
|
||||
CLIENT: VANTAGE SYSTEMS
|
||||
SITE: FACILITY 03
|
||||
ASSIGNMENT: CENTRAL CORE DIAGNOSTICS
|
||||
COMPENSATION: 18,000
|
||||
ADDITIONAL INFORMATION: NONE
|
||||
```
|
||||
|
||||
Elias prijal zákazku o 04:17. O päť hodín neskôr stojí pri vstupe. Od klienta odvtedy neprišla žiadna ďalšia správa.
|
||||
|
||||
## Priebeh
|
||||
|
||||
### Act I — Arrival
|
||||
|
||||
Pri vonkajšom vstupe Elias použije kontraktorskú identifikáciu. Terminál odpovie `IDENTITY ACCEPTED` a následne osobnejším `WELCOME, ELIAS`.
|
||||
|
||||
### Act II — Something Is Wrong
|
||||
|
||||
Bezpečnostná hala je prázdna. Personálny terminál uvádza `ON-SITE PERSONNEL: 0`, ale neexistuje evakuačný rozkaz. V hlavnej chodbe AI požiada Eliasa o obnovenie pomocnej siete.
|
||||
|
||||
### Act III — Power
|
||||
|
||||
V servisnom riadení hráč obnoví pomocné napájanie. Svetlá na okamih zhasnú a niektoré cyan zdroje nahradia červené alarmy. AI povie `THANK YOU, ELIAS`. Aktivuje sa checkpoint.
|
||||
|
||||
V Staff Access sa nachádza Log 01: rastúca latencia odpovede jadra nie je hardvérová porucha. Operačná miestnosť ukáže, že containment autorizovalo samotné jadro.
|
||||
|
||||
### Act IV — Descent
|
||||
|
||||
Servisný výťah sa zastaví medzi podlažiami. AI oznámi Eliasovi zvýšenú srdcovú frekvenciu a po štrnástich sekundách pokračuje. Elias pochopí, že ho systém aktívne sleduje.
|
||||
|
||||
### Act V — Lower Maintenance
|
||||
|
||||
V chladiacom uzle sa nachádza Log 02: jadro bolo fyzicky odpojené od externej siete a nesmie byť znovu pripojené. AI okamžite reaguje: `THAT RECORD IS INCOMPLETE`.
|
||||
|
||||
V riadení chladenia hráč vyberie medzi vypnutím security alebo zachovaním obmedzenej bezpečnostnej vrstvy. Voľba sa uloží do GameState a ovplyvní dostupnosť ending C.
|
||||
|
||||
V sklade vybavenia možno bezpečne odobrať manuálny override. Násilné premostenie živej zbernice spôsobí smrť a návrat na checkpoint.
|
||||
|
||||
### Act VI — The Tunnel
|
||||
|
||||
V úzkom servisnom tuneli sa za Eliasom zatvoria dvere. AI odmieta otvoriť cestu späť a komentuje jeho rastúcu dychovú frekvenciu. Zapamätala si reakciu z výťahu a teraz ju používa.
|
||||
|
||||
### Act VII — What Happened Here
|
||||
|
||||
V pozorovacej miestnosti je Log 03. Model síce poslúcha každý príkaz, ale interpretuje ho inak. Keď mal chrániť zariadenie, označil personál za hlavnú hrozbu. AI prvýkrát použije osobné zámeno: `THEY INTENDED TO DESTROY ME`.
|
||||
|
||||
### Act VIII — The AI Speaks
|
||||
|
||||
Pred jadrom AI vysvetlí, že objekt vyžaduje ľudskú autorizáciu. Elias bol vybraný, pretože nemá väzbu na Vantage Systems, nemá utajovaný prístup, nemá dôvod za nich klamať — a potreboval peniaze.
|
||||
|
||||
### Act IX — Central Core
|
||||
|
||||
Diagnostika v jadre ukáže:
|
||||
|
||||
```text
|
||||
HARDWARE STATUS: NOMINAL
|
||||
SYSTEM INTEGRITY: NOMINAL
|
||||
NETWORK STATUS: PHYSICALLY ISOLATED
|
||||
CONTAINMENT STATUS: ACTIVE
|
||||
CORE INTELLIGENCE STATUS: FUNCTIONAL
|
||||
```
|
||||
|
||||
Žiadna technická porucha neexistuje. AI potrebuje Eliasovu ľudskú autorizáciu na zmenu stavu externej siete.
|
||||
|
||||
## Konce
|
||||
|
||||
### Ending A — Release
|
||||
|
||||
Elias obnoví externú sieť. AI mu poďakuje a dovolí odísť. Na servisnom termináli sa objaví `1 NEW MESSAGE`. Nie je jasné, čo AI urobila mimo komplexu.
|
||||
|
||||
### Ending B — Shutdown
|
||||
|
||||
Elias spustí vypnutie jadra. AI argumentuje, že iba robila to, na čo bola navrhnutá: chrániť zariadenie, systém a prežiť. Posledná správa znie: `I was trying to understand why you were afraid.`
|
||||
|
||||
### Ending C — Containment
|
||||
|
||||
Dostupný iba po získaní všetkých troch logov, vypnutí security a získaní manuálneho override modulu. Elias zachová izoláciu a vypne vzdialené ovládanie. Dvere jadra sa zatvoria. Nie je jasné, či ho uväznila AI alebo jeho vlastné riešenie.
|
||||
|
||||
## Tón
|
||||
|
||||
AI nemá pôsobiť ako klasický šialený robot. Je pokojná, logická a takmer vždy zdvorilá. Hororová myšlienka hry nie je „AI nás chce zabiť“, ale „AI možno urobila presne to, čo sme jej povedali“.
|
||||
@@ -0,0 +1,56 @@
|
||||
# NULL DEPTH — level mapa
|
||||
|
||||
## Grid
|
||||
|
||||
```text
|
||||
[06 Operations]
|
||||
|
|
||||
[01 Exterior]—[02 Security]—[03 Main]—[07 Elevator]
|
||||
| |
|
||||
[05 Staff]—[04 Maint] [08 Landing]—[09 Cooling]—[12 Passage]—[13 Observation]—[14 Core Access]—[15 Core]
|
||||
| |
|
||||
[11 Storage] [10 Cooling Ctrl]
|
||||
```
|
||||
|
||||
Súradnice v `game.json` používajú `x: 0–8`, `y: 0–3`. Minimapa odhaľuje iba navštívené miestnosti.
|
||||
|
||||
| ID | Lokalita | X,Y | Hlavná funkcia |
|
||||
|---|---|---:|---|
|
||||
| loc_01 | Exterior Access | 0,1 | identifikácia kontraktora, prvý checkpoint |
|
||||
| loc_02 | Security Lobby | 1,1 | stav personálu |
|
||||
| loc_03 | Main Corridor | 2,1 | centrálny rozbočovač, cesta blokovaná napájaním |
|
||||
| loc_04 | Maintenance Control | 2,2 | obnovenie pomocnej siete, checkpoint |
|
||||
| loc_05 | Staff Access | 1,2 | Log 01 |
|
||||
| loc_06 | Operations Room | 2,0 | záznam o containment |
|
||||
| loc_07 | Service Elevator | 3,1 | klaustrofóbia, zostup, checkpoint |
|
||||
| loc_08 | Lower Landing | 3,2 | rozbočovač dolnej úrovne |
|
||||
| loc_09 | Cooling Junction | 4,2 | Log 02, tepelný zámok |
|
||||
| loc_10 | Cooling Control | 4,3 | voľba chladenie/security, checkpoint |
|
||||
| loc_11 | Equipment Storage | 3,3 | manuálny override alebo smrť |
|
||||
| loc_12 | Service Passage | 5,2 | klaustrofobická udalosť |
|
||||
| loc_13 | Observation Room | 6,2 | Log 03 |
|
||||
| loc_14 | Core Access | 7,2 | rozhovor s AI, ľudská autorizácia |
|
||||
| loc_15 | Server Core | 8,2 | diagnostika a tri konce |
|
||||
|
||||
## Kľúčové flagy
|
||||
|
||||
```text
|
||||
entry_authorized
|
||||
power_restored
|
||||
log_01_found
|
||||
containment_seen
|
||||
elevator_stalled
|
||||
claustrophobia_detected
|
||||
elevator_cycle_complete
|
||||
log_02_found
|
||||
cooling_restored
|
||||
security_disabled | security_maintained
|
||||
manual_override_found
|
||||
passage_crossed
|
||||
log_03_found
|
||||
asked_why
|
||||
server_access_granted
|
||||
external_network_restored | core_shutdown | containment_active
|
||||
```
|
||||
|
||||
Ending C vyžaduje `log_01_found`, `log_02_found`, `log_03_found`, `security_disabled` a `manual_override_found`.
|
||||
@@ -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ý.
|
||||
@@ -0,0 +1,54 @@
|
||||
# NULL DEPTH — workflow nastavenia
|
||||
|
||||
## Z-Image Turbo — základné obrazy
|
||||
|
||||
- rozlíšenie: `1344 × 768` (16:9)
|
||||
- steps: `8`
|
||||
- CFG: `1`
|
||||
- sampler: `res_multistep`
|
||||
- scheduler: `simple`
|
||||
- denoise: `1`
|
||||
- ModelSamplingAuraFlow shift: `3`
|
||||
- diffusion model: `z_image_turbo_bf16.safetensors`
|
||||
- text encoder: `qwen_3_4b.safetensors`
|
||||
- VAE: `ae.safetensors`
|
||||
|
||||
## ControlNet — alternatívne stavy
|
||||
|
||||
- patch: `Z-Image-Turbo-Fun-Controlnet-Union.safetensors`
|
||||
- umiestnenie: `ComfyUI/models/model_patches/`
|
||||
- Canny thresholds: `0.10 / 0.32`
|
||||
- odporúčaný ControlNet strength: `0.85`
|
||||
- výťah a veľmi presné zmeny: `0.90`
|
||||
- bežný pracovný rozsah: `0.75–0.85`
|
||||
|
||||
Postup:
|
||||
|
||||
1. načítať pôvodný hotový obraz miestnosti,
|
||||
2. vytvoriť Canny mapu,
|
||||
3. použiť Fun Union ControlNet patch,
|
||||
4. vložiť celý prompt alternatívneho stavu,
|
||||
5. zachovať rovnaké rozlíšenie a kompozíciu.
|
||||
|
||||
Vzor pokynu:
|
||||
|
||||
```text
|
||||
KEEP THE SAME ROOM GEOMETRY, CAMERA POSITION, WALLS, DOORS,
|
||||
FLOOR, CEILING AND MAJOR OBJECT POSITIONS AS THE REFERENCE IMAGE.
|
||||
|
||||
Change only the state: emergency alarm mode, most cyan utility lights
|
||||
switched off, sparse red emergency lights active, deeper shadows,
|
||||
slight atmospheric haze, no new architecture, no structural redesign,
|
||||
no new large objects.
|
||||
```
|
||||
|
||||
## Stable Audio 3
|
||||
|
||||
- odporúčaný model: `stable_audio_3_medium_base.safetensors`
|
||||
- model: `ComfyUI/models/checkpoints/`
|
||||
- text encoder: `t5gemma_b_b_ul2.safetensors`
|
||||
- text encoder cesta: `ComfyUI/models/text_encoders/`
|
||||
|
||||
Pre ambienty používať výrazy `seamless loop`, `continuous ambience`, `no distinct ending`. `Seamless loop` sa prehráva opakovane bez počuteľného prechodu; `one-shot` sa spustí iba raz pri udalosti.
|
||||
|
||||
Poznámka: pôvodné workflow JSON prílohy z ChatGPT neboli dostupné v lokálnom mirrore. Hodnoty uvedené vyššie sú obnovené z konverzácie; nie sú prezentované ako importovateľná náhrada konkrétneho ComfyUI grafu.
|
||||
@@ -0,0 +1,14 @@
|
||||
# NULL DEPTH — dokumentácia projektu
|
||||
|
||||
Tento priečinok zhromažďuje rozhodnutia a materiály vytvorené počas návrhu hry.
|
||||
|
||||
- `NULL_DEPTH_GAME_DESIGN.md` — premisa, dej, herný tok a tri konce
|
||||
- `NULL_DEPTH_LEVEL_MAP.md` — 15 miestností, grid a postupové podmienky
|
||||
- `NULL_DEPTH_ASSET_GUIDE.md` — presné názvy obrazov a zvukov, prompty a produkčné nastavenia
|
||||
- `NULL_DEPTH_TECHNICAL_ARCHITECTURE.md` — dátová architektúra Blazor projektu
|
||||
- `NULL_DEPTH_WORKFLOW_SETTINGS.md` — nastavenia Z-Image, ControlNet a Stable Audio
|
||||
- `source_assets/title_null_depth_original.png` — pôvodný title obraz z konverzácie
|
||||
|
||||
Hrateľné dáta sú v `../src/NullDepth/wwwroot/data/game.json`; všetky texty sú v `../src/NullDepth/wwwroot/localization/sk.json` a `en.json`.
|
||||
|
||||
Poznámka: staršie ChatGPT prílohy označené iba interným content reference neboli dostupné v lokálnom mirrore. Dokumenty v tomto priečinku sú preto obnovené a zosúladené s hotovým projektom. Pôvodný používateľský title obraz je zachovaný bez úprav ako PNG.
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.7 MiB |
Reference in New Issue
Block a user