← Back to home

Documentation

By Pscodium · 8/6/2026 · 9 views

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)

  1. Copie .env.example para .env.
  2. Suba a infraestrutura com docker compose up -d.
  3. Instale dependencias com pnpm install.
  4. Gere cliente Prisma com pnpm db:generate.
  5. Rode migrations com pnpm db:migrate.
  6. Rode seed de desenvolvimento com pnpm db:seed.
  7. Inicie o ambiente com pnpm dev.

Detalhes completos:

  • docs/setup.md

Documentos de Contexto

Arquivos principais para continuidade de melhorias:

Regra de trabalho recomendada:

  1. atualizar PROJECT_CONTEXT.md antes de mudancas significativas
  2. implementar mudancas no codigo
  3. 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:

  1. pnpm --filter @idle-rpg/database exec prisma migrate deploy
  2. pnpm --filter @idle-rpg/database prisma:seed:prod

Nao usar em producao:

  • prisma migrate dev
  • seed de desenvolvimento



Comments

No comments yet.