← Todos os projetos paralelos
Game2026 · No ar

Flood

Battle royale de Roblox em que a água sobe e vence quem constrói a estrutura que aguenta mais tempo.

Flood: imagem de capa do projeto
TipoGame
EstadoNo ar
Ano2026
Stackluau, roblox, rojo
feito no Estúdio Crivy

Flood (place flood_roblox, codinome de design “Flood Reborn”) é um battle royale de sobrevivência para Roblox do Estúdio Crivy, escrito em Luau strict e sincronizado com o Roblox Studio pelo Rojo, em que os jogadores constroem uma estrutura durante uma fase curta de preparação, a água sobe e vence o último jogador de pé.

Jogo de Roblox · Luau · Rojo · battle royale · sobrevivência à enchente · construção · documento de game design · seguro para crianças

Status: reconstrução em andamento

O repositório está sendo reconstruído do zero. 22 decisões de design estão fechadas em docs/GDD.md. O código em src/ é um núcleo pequeno e testado. A maior parte do jogo antigo (armas, construção, economia, admin) existe só como código legado de referência em reference/legacy/, não como o app em execução.

Área Estado
Boot em duas fases com isolamento de falhas (Loader) Funcionando, testado
Remotes centralizados e com nome verificado (Net) Funcionando, testado
Feedback de game feel (tremida de câmera) de ponta a ponta Funcionando, testado
Constantes de gameplay (Config) Definidas
Água / Game Director, construção, armas, barcos, economia, bots Projetados no GDD, ainda não portados
Telemetria e painel de admin (Decisão 019 do GDD) Existiam no código legado, ainda não reconstruídos

Game design (do GDD)

Estas são decisões de design aprovadas, não funcionalidades já lançadas.

  • “O último de pé.” A água é o círculo que fecha. Construção e barcos são ferramentas para ganhar vantagem competitiva (Decisão 001).
  • Construir só na preparação. A construção acontece só antes da enchente; durante a rodada dá para apenas reparar e ajustar (Decisão 002).
  • Rodadas curtinhas. De 8 a 14 anos, rodadas de 4-6 minutos, 8-12 jogadores (Decisão 003).
  • Loop principal. Entrar, votar num mapa, preparar (60-90 s), enchente (3-4 min), último de pé, pódio (15 s), repetir. Mesmo servidor, sem teleport (Decisão 004).
  • Sem PvP direto. Armas causam dano a props, estruturas e barcos, e aplicam um knockback leve nos jogadores. Só a água mata (Decisão 008).
  • A construção é o barco. Todo prop tem massa, flutuabilidade e HP. Modelos de casco (Raft, Barge, Fortress) são personalizados com props (Decisão 009).
  • Envelope da enchente mais Game Director. As ondas têm limites rígidos; um Director ajusta a velocidade dentro de ±20% e toda mudança na água é anunciada com 3-5 s de antecedência (Decisões 007 e 011).
  • Caixas de loot flutuantes com posição favorecendo os jogadores que estão atrás: kits de reparo, armas de dano a props, consumíveis táticos, Scraps bônus (Decisão 010).
  • Economia. Scraps (moeda comum ganha jogando) e Robux direto só para cosméticos. Poder nunca está à venda (Decisões 005 e 006).

Stack técnica

Tecnologia Versão Uso
Luau --!strict Todos os módulos em src/
Rojo 7.7.0 (rojo.exe commitado na raiz do repositório) Sincroniza src/ com o Roblox Studio

Não há wally.toml, package.json nem outro manifesto de dependências, então não há bibliotecas externas.

Como começar

  1. Gere o place com o Rojo:
    rojo build -o "flood_roblox.rbxlx"
  2. Abra flood_roblox.rbxlx no Roblox Studio.
  3. Inicie o servidor do Rojo (o rojo.exe já está na raiz do repositório):
    rojo serve
  4. Faça o Play Test no Studio.

O código é sempre editado em src/. O Studio (e o MCP do Roblox Studio) é usado só para trabalho em runtime: instâncias, terreno, Play Test e Output. Nunca é usado para escrever lógica (veja CLAUDE.md).

Verificações do núcleo: tools/test_core.luau (Loader, Net, Signal, Config) e tools/test_feedback.luau (Feedback). Rode pelo MCP do Roblox Studio (execute_luau, data model de Edit) depois de sincronizar o Rojo.

Como funciona

O default.project.json mapeia src/shared para ReplicatedStorage.Shared, src/server para ServerScriptService.Server e src/client para StarterPlayer.StarterPlayerScripts.Client.

Boot. Servidor e cliente iniciam do mesmo jeito. Eles fazem require de Shared/Loader (src/shared/Loader.luau), que encontra os ModuleScripts numa pasta (systems/ ou controllers/) e os executa em duas fases: Init() em todos, depois Start() em todos, em ordem alfabética, cada um envolvido em pcall. Um sistema quebrado vira um warn com nome e não derruba o boot.

Rede. Todo o tráfego entre cliente e servidor passa por src/shared/Net.luau. Os nomes dos remotes são declarados numa lista fixa (EVENTS); pedir um remote não declarado é erro. Hoje existem dois remotes:

  • CoreBoot, disparado por src/server/systems/BootBeacon.luau para avisar cada jogador que entra que o boot do servidor terminou.
  • Feedback, usado pelo sistema de game feel. Eventos semânticos no servidor (src/shared/Feedback.luau) chegam ao cliente (src/client/controllers/Feedback.luau) e disparam a tremida de câmera (src/shared/Shake.luau) com a intensidade em níveis definida na Decisão 015 do GDD.

Constantes de gameplay. O src/shared/Config.luau agrupa os ajustes de balanceamento por sistema: tempos da rodada (75 s de preparação, 210 s de enchente, 15 s de pódio, mínimo de 2 jogadores), água (água estática de Terrain, o mapa afunda, faixa do Director de ±20%, aviso de 4 s) e construção (10 props por jogador, snap de 2 studs, rotação de 90°).

Referência legada. reference/legacy/ guarda o código do jogo anterior (sistema de rodadas, sistemas de arma/granada/corpo a corpo, loja de construção, barcos, comandos de admin, bots). É só referência. gamemaster/ guarda auditorias internas desse código feitas pelo MCP do Roblox Studio; não faz parte do runtime do jogo. docs/DOCUMENTACAO_LLM.md documenta as instâncias legadas.

Estrutura do projeto

src/
  client/    init.client.luau, controllers/ (BootListener, Feedback)
  server/    init.server.luau, systems/ (BootBeacon)
  shared/    Loader, Net, Signal, Config, Feedback, Shake
tools/       test_core.luau, test_feedback.luau
docs/        GDD.md, core.md, feedback.md, spike-flutuacao.md, REGRA_HUD_ROBLOX.md, DOCUMENTACAO_LLM.md
reference/legacy/   previous game code (reference only)
gamemaster/  audits of the legacy code
assets/      3D model (soldadora_meshy.glb) and preview

Questões em aberto

  • Se reference/legacy/ vai ser portado ou reescrito do zero.
  • Qual sistema do GDD vem a seguir.

Licença

Todos os direitos reservados. © Estúdio Crivy.

Outros projetos paralelos