
Come funziona Nexus
Complessità piatta
L'approccio classico ai giochi si basa su sistemi rigidi: ogni meccanica è codice a sé, ogni collegamento tra meccaniche è altro codice. Anche i sandbox restano un insieme di sistemi separati. La varietà cresce, ma l'architettura non cambia - e la complessità dello sviluppo cresce con essa.
Nexus funziona diversamente. Gli elementi base del gioco sono atomi da cui si costruisce tutto il resto. Aggiungere nuove meccaniche non aumenta la complessità architetturale.
Milioni di elementi, ma l'architettura non si complica. Il sistema scala - verso meccaniche, regole e mondi di qualsiasi complessità.
Rete semantica
Nexus archivia i dati come triplette (fatti) - semplici affermazioni nel formato "soggetto → predicato → oggetto". Con un unico formato si descrivono sia i fatti sul mondo sia le regole delle meccaniche:
- Mela → è → commestibile (fatto sul mondo)
- Cervo → è → erbivoro (fatto sul mondo)
- Colpo → infligge danno → 6 (regola della meccanica)
- Veleno → ignora armatura → sì (modifica della regola)
- Erba → cresce → con umidità sopra un certo livello (fatto sul mondo)
- Sindacato → controlla → quartiere della città (fatto sul mondo)
Dati e regole si scrivono nello stesso formato, nello stesso grafo. Attraverso le triplette si descrive tutto: oggetti, proprietà, stati, relazioni, azioni, tecnologie, magia. Questa è la differenza principale dagli approcci classici, dove dati e logica vivono separatamente.
Il mondo poggia su una grande quantità di fatti: animali, tecnologie, oggetti, edifici, eventi storici - dai principi generali ai dettagli specifici.
Interprete
L'interprete elabora le triplette e ricava le conseguenze dai fatti:
- Mela → è → frutto
- Essere umano → può mangiare → frutti
- Conclusione: l'essere umano può mangiare le mele
La conclusione si costruisce confrontando i fatti. Le catene possono essere lunghe. Ecco un esempio più complesso:
- Goblin → è → creatura
- Creatura → ha → salute
- Conclusione: il goblin ha salute
- Colpo → infligge → danno
- Danno → riduce → salute
- Conclusione: il colpo può danneggiare il goblin
Aggiunto il veleno con un predicato di danno - funziona automaticamente contro tutti quelli che hanno salute.
L'interprete lavora con richieste formalizzate, non con il linguaggio naturale.
Grafo di conoscenza
Gli oggetti e le proprietà del mondo devono poter essere descritti in modo flessibile, senza hardcoding.
Alla base ci sono le entità: personaggi, oggetti, animali, organizzazioni, navi, piante. A ogni entità si collegano fatti attraverso i predicati.
Ogni predicato esprime una relazione o una proprietà:
- "È" (classificazione: goblin → creatura)
- "Ha" (possesso: la creatura ha salute)
- "Danno" (effetto: il colpo infligge 6)
- "Costo" (consumo: il colpo costa 3 mana)
- "Assorbimento" (difesa: lo scudo blocca 5)
- "Relazione" (legame: il goblin odia gli umani)
Il colpo ha un predicato Danno = 6. Lo scudo ha un predicato Assorbimento = 5. Il motore deduce: 6 - 5 = 1 passa alla salute. Una meccanica per qualsiasi fonte di danno e qualsiasi difesa - spada, veleno, fuoco, incantesimo.
Le proprietà formano una rete in cui ogni nodo è un fatto. Le regole e le interazioni vivono come dati, non sono scritte nel codice.
Per le prestazioni si utilizzano caching, indici e dettaglio adattivo (LOD).
Regole come pattern
Dati e logica non sono ancora un gioco. Per il gameplay serve un livello di regole. Nello sviluppo classico le regole sono codice: ogni meccanica è scritta da un programmatore. In Nexus le regole si descrivono con le stesse triplette dei dati.
Alla base ci sono pattern universali, comuni a tutti i generi. Effetto: la spada infligge danno alla salute, la ruggine alla resistenza, l'inflazione al potere d'acquisto. Consumo: il colpo costa mana, la costruzione costa legno, il viaggio costa carburante. Assorbimento: lo scudo blocca il danno, il controargomento blocca l'accusa, l'assicurazione copre la perdita.
Il designer descrive cosa succede, non come. "Il colpo infligge 6 di danno" - una tripletta. Il motore determina da solo: il danno passa attraverso l'assorbimento, il residuo va alla salute. La formula non si scrive per ogni azione - discende dal pattern.
I pattern si combinano liberamente. Un gioco di carte usa effetto e assorbimento. Una strategia usa consumo e accumulo. Un RPG combina tutto insieme.
Un nuovo gioco sono nuove entità e nuove combinazioni di pattern.
Agenti
Un'entità può essere descritta come agente - con il proprio stato e le proprie regole di comportamento. È una proprietà opzionale. Il nemico in un gioco di carte sceglie l'azione da solo. I selvaggi in una strategia attaccano quando le condizioni lo permettono. Il mercante in un RPG si sposta tra le città. Un agente:
- Percepisce il mondo nei limiti delle proprie conoscenze
- Valuta le azioni disponibili
- Prende decisioni basandosi sugli obiettivi e sulle regole del mondo
L'agente si descrive con le stesse triplette di tutto il resto. Il fabbro sa forgiare (fatto), serve minerale (fatto), il minerale è nella miniera (fatto). Da questi fatti l'interprete ricava l'azione: andare in miniera, estrarre il minerale. La miniera si è allagata - il fabbro non può estrarre il minerale - cerca un mercante - compra. Il comportamento è emerso da una catena di fatti.
Scala senza perdere la logica
In una simulazione profonda il mondo può contenere un'enorme quantità di processi: dalla migrazione degli animali e la crescita delle città alla dinamica dei sistemi stellari. Ricalcolare tutto è impossibile e inutile - il giocatore percepisce sempre il mondo in modo soggettivo e limitato.
Il mondo è organizzato come una mappa di esagoni. Ogni esagono conserva le proprietà della propria scala: a livello planetario - clima e risorse, a livello regionale - città e strade. Un clic sull'esagono rivela il livello successivo - al suo interno una nuova mappa con proprietà più dettagliate. L'algoritmo è lo stesso a tutti i livelli - dal sistema stellare al singolo edificio.
Tempo e spazio
Per periodi lunghi il sistema può utilizzare modelli statistici invece del calcolo passo per passo. Si può viaggiare nel tempo senza simulare ogni singolo momento. Per esempio, in mille anni un bosco può crescere o scomparire, un fiume può cambiare corso, un insediamento può espandersi o essere abbandonato. Tendenze e relazioni si conservano.
La scala dello spazio determina il livello delle entità e dei processi. A grande scala - clima, migrazioni, politica. A scala locale - singole entità e le loro proprietà. La logica causa-effetto è la stessa a tutti i livelli.
Le astrazioni accolgono un mondo di qualsiasi scala: un villaggio, un pianeta, una galassia. I dettagli appaiono quando diventano significativi. Il resto viene descritto in forma semplificata, ma conservando le relazioni.
Il giocatore può addentrarsi nella struttura del mondo, esplorando le entità e navigando tra le loro proprietà - in modo simile alla consultazione di un sistema di riferimento.
Materializzazione del mondo
Il mondo si costruisce man mano che viene esplorato. Finché il giocatore non visita una località, essa esiste come dati e regole. Gli oggetti appaiono nel momento dell'interazione, non sono archiviati in anticipo.
Al di fuori dell'osservazione, gli eventi sono determinati dalla probabilità, non da una simulazione completa. Il mondo appare coerente, anche se i dettagli vengono creati su richiesta.
Dopo l'interazione con una località, il suo stato viene salvato e non viene più ricalcolato.
Su lunghi archi temporali operano le tendenze statistiche. Dopo mille anni dall'inizio il sistema decide per probabilità: quali specie sopravviveranno, come cambierà il clima, dove appariranno insediamenti.
Gioco in rete
Il gioco in rete funziona sullo stesso principio. Il server conserva dati, regole e ciò che i giocatori hanno già scoperto.
Se più giocatori sono nella stessa area, il server assembla lo stato comune e lo sincronizza tra loro.
Al di fuori dell'area di gioco il mondo resta potenziale - regole e tendenze, senza dettagli.
L'architettura di rete di base funziona già: ogni giocatore riceve una sessione isolata, a cui altri possono unirsi tramite codice. Le azioni si sincronizzano in tempo reale.
L'architettura come linguaggio
Dati, regole, interfaccia e comportamento degli agenti - un unico formato. Le entità non si conoscono tra loro, le connessioni emergono automaticamente attraverso predicati comuni.
Come funziona nella pratica? Il bosco è un'entità con dei fatti: ha legname, è un rifugio, è infiammabile. L'ascia ha un predicato Taglio. Il Taglio agisce sul legname. Il fuoco agisce sull'infiammabile. La siccità aumenta l'infiammabilità. Ogni fatto è una riga. Il bosco non sa nulla delle asce, l'ascia non sa nulla del bosco. La connessione nasce automaticamente attraverso predicati comuni. Aggiunto un tagliatore laser con predicato Taglio - funziona contro il bosco. Aggiunto un bombardamento planetario con predicato Fuoco - il bosco brucia.
Se una situazione di gioco si può descrivere a parole - funziona in Nexus.
