Pular para o conteúdo principal

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.

ArquivoViraO que faz
manifest/project.jsonO JogoDá nome ao projeto e lista seus Frameworks e cenários.
schemas/*.jsonUm FrameworkDeclara entradas, ações, Frames e conteúdo para um tipo de Element.
rules/*.tsLógicaCria um Element, altera seus valores e calcula valores derivados.
layouts/*.jsonUm FrameDesenha a ficha ou o cartão e liga seus botões às ações.
scenarios/*.jsonTestesCria 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.json

O 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.