Code frameworks
O que é um code framework?
Entenda o que é um projeto de código, como seus arquivos viram Frameworks, Elements, Frames e o ledger, e o que fica no The Forge.
A ideia
Um code framework é um sistema de jogo que você escreve como um pequeno projeto de arquivos, em vez de montá-lo com nós. Você pode usar seu próprio editor e suas próprias ferramentas. O The Forge verifica o projeto com o mesmo compilador que cria o seu jogo.
O formato do projeto se chama native-game-v1. As regras são escritas em um subconjunto restrito de TypeScript. O subconjunto não tem imports, nem rede, nem aleatoriedade, então uma regra sempre dá o mesmo resultado para a mesma entrada.
Os dados ficam na ficha, não nas regras. O jogador clica em uma rolagem de dados no Frame, lê o resultado e o digita em uma ação como entrada. A regra confere o número e escreve o resultado. A receita Rolar contra uma perícia cria um teste percentual desse jeito.
Como os arquivos viram partes do Fabled
Cada tipo de arquivo vira algo que você já conhece no Fabled.
| Arquivo | Vira | O que faz |
|---|---|---|
| manifest/project.json | O Jogo | Dá nome ao projeto e lista seus Frameworks e cenários. |
| schemas/*.json | Um Framework | Declara entradas, ações, Frames e conteúdo para um tipo de Element. |
| rules/*.ts | Lógica | Cria um Element, altera seus valores e calcula valores derivados. |
| layouts/*.json | Um Frame | Desenha a ficha ou o cartão e liga seus botões às ações. |
| scenarios/*.json | Testes | Cria um Element, executa ações e confere cada valor e cada escrita. |
Um Element é uma instância viva de um Framework, como um personagem. Toda mudança em um Element é uma escrita no seu ledger. As ações nunca editam valores diretamente. Elas pedem ao ledger para definir ou somar um valor, e seus cenários conferem essas escritas.
Como é um projeto
Esta é a árvore completa do jogo de exemplo deste guia. Lantern Keepers tem um personagem com pontos de vida, duas ações, uma ficha e dois cenários.
manifest/project.json
schemas/keeper.json
rules/keeper.ts
rules/hurt.ts
rules/heal.ts
layouts/keeper.json
scenarios/new-keeper.json
scenarios/heal.jsonO que fica no The Forge
- Você escreve e verifica o projeto. O compilador diz o que está errado e onde.
- Você aplica, prepara e publica no The Forge. O servidor verifica seu projeto de novo, e o veredito dele é o que vale.
- As regras não podem importar pacotes nem acessar nada fora do projeto.

