AURACS é um jogo educacional 2D de ficção científica para navegador em que programação C# funciona como uma mecânica do mundo. O jogador controla Kael pela nave Nebulosa, interage com a IA AURA, acessa terminais, resolve falhas da nave e enfrenta ameaças escrevendo código.
A proposta não é “um quiz que ensina C#”, mas um jogo em que usar C# muda o mundo.
O projeto já possui:
- mundo 2D em Phaser 4;
- Kael com sprite pixel-art, movimentação em quatro direções e animações;
- câmera, colisões, partículas e interações;
- Deck 01 com Core, corredor e Setor B;
- terminais diegéticos ligados ao editor React;
- inventário e Katana de Plasma Vermelha;
- Capítulo 1 — O Despertar;
- Capítulo 2 — Setor de Quarentena;
- combate pedagógico com três vidas;
- AURA, conquistas e progressão persistida localmente;
- backend ASP.NET Core com sandbox C# seguro baseado no Roslyn;
- validação semântica dos desafios;
- testes automatizados e CI.
explorar
↓
encontrar um problema
↓
interagir com terminal / objeto / hostil
↓
escrever C#
↓
backend valida semanticamente
↓
o mundo reage
↓
nova área, estado ou desafio
Browser
├─ Next.js 16 / React 19
│ ├─ HUD, terminal, menus e conquistas
│ ├─ useGameEngine
│ └─ Zustand persist
│
├─ Phaser 4
│ ├─ mundo 2D
│ ├─ Kael
│ ├─ câmera e colisões
│ ├─ terminais / baú
│ └─ inimigos e efeitos
│
└──────────── HTTP ────────────┐
▼
ASP.NET Core (.NET 8)
│
▼
Roslyn Syntax Tree
│
▼
SafeCodeEvaluator
│
▼
ChallengeValidator
O frontend não possui um segundo interpretador de C#. O backend é a fonte de verdade para avaliação e aprovação pedagógica.
O sandbox aceita apenas um subconjunto explicitamente permitido, incluindo:
- variáveis
intebool; - literais
int,stringebool; - atribuições simples;
- operadores aritméticos
+ - * / %; - concatenação de strings;
Console.WriteLine(...)com um argumento;- comandos de combate controlados do Capítulo 2:
katana.Cortar();alvo.Vida -= 50;katana.GolpeFatal();
O projeto não executa C# arbitrário. Construções como if/else, loops, arrays, métodos e classes do jogador ainda não fazem parte do subconjunto atual e devem ser adicionadas somente por allowlist, com testes.
- Next.js 16.3.1
- React 19.2.3
- TypeScript 5
- Phaser 4.2.1
- Zustand 5
- Tailwind CSS 4
- Framer Motion
- Howler
- PrismJS
- ASP.NET Core / .NET 8
- Microsoft.CodeAnalysis.CSharp (Roslyn)
- xUnit
AURACS/
├─ App/ # versão console histórica
├─ api/ # API e sandbox C#
│ ├─ Program.cs
│ ├─ SafeCodeEvaluator.cs
│ └─ ChallengeValidator.cs
├─ api.Tests/ # testes .NET
├─ web/
│ └─ src/
│ ├─ app/ # composição Next.js
│ ├─ components/ # UI React
│ ├─ game/ # Phaser, sprites e geometria
│ ├─ hooks/ # motor do jogo
│ └─ lib/ # capítulos, regras, store e API client
├─ docs/ # documentação completa
└─ .github/workflows/ci.yml
Pré-requisitos:
- .NET SDK 8
- Node.js 22+
- npm
Na raiz:
npm install
npm run install:web
cp web/.env.example web/.env.local
npm run devServiços:
- frontend:
http://localhost:3000 - API:
http://localhost:5000
Para produção, configure:
NEXT_PUBLIC_API_URL=https://sua-api.exemplo.comE defina as origens permitidas em Cors:AllowedOrigins no backend.
npm test
npm run lint
npm run buildA CI também executa:
- restore/build/test do backend;
npm ci;- audit das dependências de produção;
- testes frontend;
- ESLint;
- build de produção do Next.js.
A documentação técnica e de game design está em docs/:
- Visão geral
- Arquitetura
- Game Design Document
- Gameplay loop
- Phaser / mundo 2D
- Sistema C# / sandbox
- Capítulos e progressão
- Backend e segurança
- Persistência
- Testes e qualidade
- Como contribuir
- Roadmap
Veja também CONTRIBUTING.md.
App/ e Explicacao_Codigo.md representam a versão inicial em console e permanecem como referência histórica. A experiência principal atual é web + api.
Ao evoluir o AURACS, preserve esta separação:
Phaser = mundo
React = interface
useGameEngine = progressão
Zustand = save local
ASP.NET/Roslyn = C# seguro e validação
Novas funcionalidades pedagógicas só devem ser consideradas concluídas quando existirem no sandbox, no validador, nos testes e no mundo do jogo.