
Como o Nexus funciona
Complexidade plana
A abordagem clássica para jogos gira em torno de sistemas rígidos: cada mecânica é um código separado, cada conexão entre mecânicas é mais um código. Até sandboxes continuam sendo conjuntos de sistemas isolados. A variedade cresce, mas a arquitetura não muda - e a complexidade do desenvolvimento cresce junto.
O Nexus funciona de outra forma. Os elementos básicos do jogo são átomos, a partir dos quais tudo o mais é construído. Adicionar novas mecânicas não aumenta a complexidade arquitetural.
Milhões de elementos, mas a arquitetura não se complica por causa disso. O sistema escala - para mecânicas, regras e mundos de qualquer complexidade.
Rede semântica
O Nexus armazena dados como tripletas (fatos) - afirmações simples no formato "sujeito → predicado → objeto". Num único formato são descritos tanto fatos sobre o mundo quanto regras de mecânicas:
- Maçã → é → comestível (fato sobre o mundo)
- Cervo → é → herbívoro (fato sobre o mundo)
- Golpe → causa dano → 6 (regra de mecânica)
- Veneno → ignora armadura → sim (modificação de regra)
- Grama → cresce → quando a umidade supera determinado nível (fato sobre o mundo)
- Sindicato → controla → bairro da cidade (fato sobre o mundo)
Dados e regras são escritos no mesmo formato, no mesmo grafo. Pelas tripletas se descreve tudo: objetos, propriedades, estados, relações, ações, tecnologias, magia. Essa é a principal diferença das abordagens clássicas, onde dados e lógica vivem separados.
O mundo se sustenta sobre uma grande quantidade de fatos: animais, tecnologias, objetos, construções, eventos históricos - de princípios gerais a detalhes específicos.
Interpretador
O interpretador processa tripletas e extrai consequências dos fatos:
- Maçã → é → fruta
- Humano → pode comer → frutas
- Conclusão: humano pode comer maçãs
A conclusão é construída pela comparação de fatos. As cadeias podem ser longas. Aqui um exemplo mais complexo:
- Goblin → é → criatura
- Criatura → tem → saúde
- Conclusão: o goblin tem saúde
- Golpe → causa → dano
- Dano → reduz → saúde
- Conclusão: um golpe pode causar dano ao goblin
Adicionou veneno com o predicado de dano - ele funciona automaticamente contra todos que tenham saúde.
O interpretador trabalha com consultas formalizadas, não com linguagem natural.
Grafo de conhecimento
Objetos e propriedades do mundo precisam ser descritos de forma flexível, sem hardcode.
Na base estão as entidades: personagens, objetos, animais, organizações, naves, plantas. A cada entidade são vinculados fatos através de predicados.
Cada predicado expressa uma conexão ou uma propriedade:
- "É" (classificação: goblin → criatura)
- "Tem" (posse: criatura tem saúde)
- "Dano" (efeito: golpe causa 6)
- "Custo" (gasto: golpe custa 3 de mana)
- "Absorção" (defesa: escudo bloqueia 5)
- "Relação" (vínculo: goblin odeia humanos)
O golpe tem o predicado Dano = 6. O escudo tem o predicado Absorção = 5. O motor deduz: 6 - 5 = 1 passa para a saúde. Uma única mecânica para qualquer fonte de dano e qualquer defesa - espada, veneno, fogo, feitiço.
As propriedades formam uma rede onde cada elo é um fato. Regras e interações existem como dados, não estão embutidas no código.
Para desempenho, são utilizados cache, índices e detalhamento adaptativo (LOD).
Regras como padrões
Dados e lógica ainda não são um jogo. Para a jogabilidade, é necessária uma camada de regras. No desenvolvimento clássico, regras são código: cada mecânica é escrita por um programador. No Nexus, as regras são descritas pelas mesmas tripletas que os dados.
Na base estão padrões universais, comuns a todos os gêneros. Efeito: espada causa dano à saúde, ferrugem - à durabilidade, inflação - ao poder de compra. Gasto: golpe custa mana, construção - madeira, viagem - combustível. Absorção: escudo bloqueia dano, contra-argumento - acusação, seguro - prejuízo.
O designer descreve o que acontece, não como. "Golpe causa 6 de dano" - uma tripleta. O motor determina sozinho: o dano passa pela absorção, o restante vai para a saúde. A fórmula não é escrita para cada ação - ela decorre do padrão.
Os padrões se combinam livremente. Jogo de cartas usa efeito e absorção. Estratégia - gasto e acúmulo. RPG - combina tudo junto.
Um novo jogo são novas entidades e novas combinações de padrões.
Agentes
Uma entidade pode ser descrita como agente - com estado próprio e regras de comportamento. Essa é uma propriedade opcional. O inimigo num jogo de cartas escolhe sua própria ação. Bárbaros numa estratégia atacam quando as condições permitem. Um comerciante num RPG se desloca entre cidades. O agente:
- Percebe o mundo dentro dos limites do seu conhecimento
- Avalia as ações disponíveis
- Toma decisões com base em objetivos e regras do mundo
O agente é descrito pelas mesmas tripletas que todo o resto. O ferreiro sabe forjar (fato), precisa de minério (fato), o minério está na mina (fato). A partir desses fatos, o interpretador deduz a ação: ir à mina, extrair minério. A mina inundou - o ferreiro não consegue extrair minério - procura um comerciante - compra. O comportamento surgiu de uma cadeia de fatos.
Escala sem perda de lógica
Numa simulação profunda, o mundo pode conter uma enorme quantidade de processos: da migração de animais e crescimento de cidades à dinâmica de sistemas estelares. Recalcular tudo é impossível e desnecessário - o jogador sempre percebe o mundo de forma subjetiva e limitada.
O mundo é organizado como um mapa de hexágonos. Cada hex armazena propriedades da sua escala: no nível planetário - clima e recursos, no regional - cidades e estradas. Clicar num hex revela o próximo nível - dentro dele há um novo mapa com propriedades mais detalhadas. O algoritmo é o mesmo em todos os níveis - do sistema estelar a um edifício individual.
Tempo e espaço
Para períodos longos, o sistema pode usar modelos estatísticos em vez de cálculo passo a passo. É possível se mover no tempo sem simular cada momento. Por exemplo, em mil anos uma floresta pode crescer ou desaparecer, um rio - mudar de curso, um assentamento - se expandir ou ser abandonado. Tendências e conexões se mantêm.
A escala do espaço determina o nível das entidades e processos. Em grande escala - clima, migrações, política. Em escala local - entidades individuais e suas propriedades. A lógica de causa e efeito é a mesma em todos os níveis.
As abstrações comportam um mundo de qualquer escala: aldeia, planeta, galáxia. Detalhes aparecem quando se tornam relevantes. O restante é descrito de forma simplificada, mas mantendo as conexões.
O jogador pode se aprofundar na estrutura do mundo, estudando entidades e navegando por suas propriedades - de forma semelhante à navegação por um sistema de referência.
Materialização do mundo
O mundo é construído conforme é explorado. Enquanto o jogador não visitou um local, ele existe como dados e regras. Objetos aparecem no momento da interação, não são armazenados previamente.
Fora do campo de observação, os eventos são determinados por probabilidade, não por simulação completa. O mundo parece coeso, embora os detalhes sejam criados sob demanda.
Após a interação com um local, seu estado é salvo e não é mais recalculado.
Em intervalos longos de tempo, tendências estatísticas entram em ação. Mil anos após o início, o sistema decide por probabilidade: quais espécies sobrevivem, como o clima muda, onde surgem assentamentos.
Jogo em rede
O jogo em rede funciona pelo mesmo princípio. O servidor armazena dados, regras e o que os jogadores já descobriram.
Se vários jogadores estão na mesma área, o servidor monta o estado compartilhado e o sincroniza entre eles.
Fora da área de jogo, o mundo permanece potencial - regras e tendências, sem detalhes.
A arquitetura básica de rede já funciona: cada jogador recebe uma sessão isolada, à qual outros podem se juntar por código. As ações são sincronizadas em tempo real.
Arquitetura como linguagem
Dados, regras, interface e comportamento dos agentes - tudo num único formato. As entidades não se conhecem, as conexões surgem automaticamente através de predicados comuns.
Como funciona na prática? A floresta é uma entidade com fatos: tem madeira, serve de abrigo, é inflamável. O machado tem o predicado Corte. Corte age sobre madeira. Fogo age sobre inflamável. Seca aumenta a inflamabilidade. Cada fato é uma única linha. A floresta não sabe do machado, o machado não sabe da floresta. A conexão surge automaticamente pelos predicados comuns. Adicionou um cortador a laser com o predicado Corte - ele funciona contra a floresta. Adicionou um bombardeio planetário com o predicado Fogo - a floresta queima.
Se uma situação de jogo pode ser descrita com palavras - ela funciona no Nexus.
