OCS Game - Idle RPG Monorepo
Backend + frontend + worker para um idle RPG server-authoritative.
Visao Geral
Este repositorio implementa:
- API HTTP para autenticacao, player state, inventario, shop, actions e leaderboard
- Worker para processamento de acoes e recompensas
- Frontend web em Next.js
- Game engine compartilhado com formulas e regras de gameplay
Objetivo principal:
- manter toda logica critica de jogo no servidor
- reduzir overhead de rede no loop de farm
- escalar processamento de acoes com fila e eventos realtime
Estrutura
- apps/api
- apps/web
- apps/worker
- packages/game-engine
- packages/database
- packages/types
- packages/config
Stack
- Node.js + TypeScript
- Fastify
- PostgreSQL + Prisma
- Redis + BullMQ
- Next.js + React + Tailwind
- Zustand no estado de jogo do frontend
Setup Local (resumo)
- Copie .env.example para .env.
- Suba a infraestrutura com docker compose up -d.
- Instale dependencias com pnpm install.
- Gere cliente Prisma com pnpm db:generate.
- Rode migrations com pnpm db:migrate.
- Rode seed de desenvolvimento com pnpm db:seed.
- Inicie o ambiente com pnpm dev.
Detalhes completos:
- docs/setup.md
Documentos de Contexto
Arquivos principais para continuidade de melhorias:
- PROJECT_CONTEXT.md
- architecture.md
- game-design.md
- database-schema.md
- docs/improvements-backlog.md
- docs/adding-content.md
Regra de trabalho recomendada:
- atualizar PROJECT_CONTEXT.md antes de mudancas significativas
- implementar mudancas no codigo
- sincronizar os demais arquivos de contexto afetados
Principios Arquiteturais
- frontend nao calcula recompensa, loot ou combate
- game-engine concentra formulas e regras de gameplay
- API valida e orquestra, worker processa
- realtime prioriza WebSocket, com SSE como fallback
Deploy e Banco em Producao
Fluxo oficial de banco em producao:
- pnpm --filter @idle-rpg/database exec prisma migrate deploy
- pnpm --filter @idle-rpg/database prisma:seed:prod
Nao usar em producao:
- prisma migrate dev
- seed de desenvolvimento