BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🪖 Jogo de celular em 3D no navegador: esquadrão que atira sozinho, portais de conta (+8, ×2, ÷2), barris, chefões e uma loja que calibra a dificuldade. Arte e som 100% gerados por código.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Um esquadrão, uma pista e muita gente querendo te parar. Corra, atire sozinho, escolha o portal certo e segure a horda até o chefão. Jogo de celular em 3D, direto no navegador. ▶️ Jogar agora: squad-x-web-inky.vercel.app Abra no celular, em pé. Dá para instalar como app e jogar sem internet. Gravado no jogo: um bot jogando a fase 12 (deserto). Repare no +22 azul à esquerda e no -16 vermelho com cadeado à direita.README 전문 보기 ↗
Sabe aquele anúncio de celular em que um soldadinho corre por uma ponte, passa por um portal ×4 e vira um exército? Aqui ele é um jogo de verdade, e com as decisões que o anúncio nunca mostra.
Você arrasta o dedo para mover o esquadrão. Ele atira sozinho. O resto é escolher: qual portal tomar, qual barril abrir primeiro, para onde desviar quando o avião marca a pista com vermelho, e quanto do dinheiro gastar na loja antes da próxima fase.
Tudo é original: cada soldado, monstro, arma e som sai de código. Nenhum modelo ou arquivo de áudio foi copiado.
+N e ×N ajudam, -N e ÷N machucam. Os vermelhos com cadeado não dá para consertar a tiros; só existe um tipo de vermelho "bombeável", e só vale a pena com poder de fogo de sobra.Visto de costas, que é como você o enxerga no jogo: capacete grande com aba, colete com placas, mochila com rolo de dormir, pá e cantil. Conforme o grupo cresce, os soldados diminuem e se apertam para o bloco não cobrir a pista; até 180 aparecem na tela, e o número em cima do grupo mostra o total real.
Cada tipo tem rosto, silhueta e jeito de correr próprios, e só entra numa fase quando o esquadrão esperado aguenta enfrentá-lo.
| Inimigo | Chega no mundo | Vida | Como é |
|---|---|---|---|
| Zumbi | 1 | 6 | Corre em bando, camisa rasgada |
| Velocista | 2 | 4 | O dobro da velocidade do zumbi |
| Brutamonte | 1 | 40 | Porrete e ombreiras de espinhos; leva 4 soldados ao encostar |
| Policial de choque | 2 | 34 | Escudo: soldados rendem 45%. Tanque e helicóptero ignoram |
| Homem-bomba | 3 | 9 | Dinamite no peito; morto de longe, leva os vizinhos junto |
| Atirador | 4 | 14 | Para a 16 unidades, atira a cada 1,3 s e recua se você chega perto |
Um por mundo, nas fases 5 e 10. O esquadrão para a 14 unidades deles e só segue quando morrem. Cada um ataca do seu jeito, e tudo o que ele lança é avisado antes, com um jeito de escapar:
| Chefão | Mundo | Ataque | Como enfrentar | Lacaios |
|---|---|---|---|---|
| General | Ponte | Mísseis na sua faixa, um de cada vez, com a mira marcada no chão (um atrás do outro quando furioso) | Derrube no ar com as colunas embaixo dele, ou saia da mira | Zumbis |
| Senhor da Guerra | Deserto | Uma fileira de barris explosivos rolando, com uma faixa livre | Vá para a faixa livre ou abra caminho a tiros. Os barris também protegem o chefão | Velocistas |
| Mecha | Cidade | Escudo de energia com uma brecha que muda de lugar, e laser na brecha | Atire pela brecha (a faixa verde) e saia dela quando o laser marcar | Policiais de choque |
| Yeti | Neve | Sopro de gelo e, logo em seguida, a pancada | Saia do azul: quem congela para de atirar e o esquadrão anda devagar | Brutamontes |
| Demônio | Vulcão | Meteoros em todos os lugares menos um, e o chão pega fogo onde caem | Ache o lugar livre e fique fora das chamas | Homens-bomba |
Abaixo da metade da vida o chefão fica furioso (aura vermelha, ataques mais rápidos), e os lacaios vêm em ondas cada vez maiores: enrolar é perder. A vida dele é medida em segundos de tiro do esquadrão que um jogador típico leva até ali (12 s, ou 18 s no chefão que fecha o mundo), então nenhum cai num instante e nenhum dura minutos. Na prática, a luta leva de uns 10 a uns 60 segundos.
Quando o chefão entra em vista, a barra de progresso vira a barra de vida dele, com o nome, o número e a marca da fúria. A parte vermelha cai na hora e um rastro claro vai atrás, então dá para ver quanto cada rajada tirou. Ao acordar, ele avisa o que faz.
Uma arma melhor troca a de todos os soldados. Os veículos correm ao lado do esquadrão, até quatro, cada um com um soldado dentro, e atiram na própria faixa mesmo que só reste um soldado.
| Perigo | Como evitar | Custo se pegar |
|---|---|---|
| Espinhos | Mudar de faixa (não dá para atirar) | 40% dos soldados nas colunas sobre eles |
| Mina | Atirar de longe (14 de vida) ou desviar | 60% dos soldados num raio de 1,7 |
| Bombardeiro | Ficar no corredor sem vermelho; 1,6 s de aviso | 30% dos soldados dentro de cada bomba, em 2 ou 3 passadas |
Esquadrão pequeno desvia melhor; esquadrão grande aguenta mais. Cada colisão tira uma fração dos soldados das colunas atingidas, não de todos.
Cada mundo tem dez fases, com um chefão na 5 e na 10. As fases alternam entre Portais, Barris e Misto, e cada uma tem uma característica própria: Enxame, Elite, Emboscada, Escassez, Correria ou Armadilhas. O aviso aparece ao começar. Cada fase leva de uns 45 a 75 segundos de pista.
O jogo é feito para quem insiste e evolui: passa a fase 1 e a 2, trava na 3 até comprar algo, e daí em diante cada fase costuma pedir algumas tentativas.
bun run stress mostra fase a fase.A tela sempre diz o que você tem (soldados, arma, veículos, melhorias), o que acabou de acontecer (portal, barril, armadilha, bomba) e, na luta, quanta vida o chefão ainda tem. O relatório da fase mostra de onde veio cada moeda e o que derrubou o esquadrão.
| Camada | O que usa |
|---|---|
| Linguagem | TypeScript strict e ESM, num monorepo de Bun workspaces |
| Regras do jogo | packages/engine: TypeScript puro e determinístico, sem DOM |
| Cliente | React 19 + Vite 7 para as telas e o HUD; a partida é desenhada em Three.js |
| Arte | Montada por código a partir de formas simples, com sombreamento "toon" e contorno preto |
| Som | Sintetizado em tempo real com Web Audio, sem nenhum arquivo de áudio: efeitos em camadas com eco de sala, e uma música para o menu, outra para a fase e outra para o chefão |
| Instalação | PWA: manifesto e service worker (vite-plugin-pwa); depois da primeira visita, joga sem internet |
| Fases | Geradas por semente e calibradas por simulação (bun run calibrate) |
| Testes | bun test: 108 testes, incluindo cada chefão, o equilíbrio das fases com e sem loja e a campanha inteira jogada por bots |
flowchart LR
subgraph engine["packages/engine (puro)"]
gen["gerador de fases<br/>por semente"]
cal["calibração<br/>com bots"]
step["step: um tick a 30 Hz"]
end
tab[("pressures.ts<br/>(tabela gerada)")]
subgraph web["apps/web"]
ui["React: menu, loja, HUD"]
scene["Three.js: a pista"]
fx["som, efeitos e avisos"]
end
cal -- "bun run calibrate" --> tab
tab --> gen
gen --> step
step -- "estado" --> scene
step -- "diferença entre dois estados" --> fx
ui --> step
Algumas escolhas que fazem diferença:
Math.random() nas regras: o acaso vem de um gerador com semente, então todo bug vira um teste que se repete.InstancedMesh, com as peças de mesma cor fundidas e um contorno por trás.Detalhes em docs/ARCHITECTURE.md (como funciona), docs/DECISIONS.md (por quê) e docs/ROADMAP.md (o que vem por aí). A folha de referência visual de todos os personagens e telas está em docs/design-system.html: baixe e abra no navegador.
| Ação | Teclado | Celular |
|---|---|---|
| Mover o esquadrão | ← → ou A D | arrastar o dedo |
| Som ligado/desligado | botão 🔊 | botão 🔊 |
| Sair da fase | botão ✕ | botão ✕ |
O esquadrão atira sozinho, e depois de arrastar ele termina o deslize até onde você soltou.
Precisa de Bun e do Node do .nvmrc.
bun install
bun run dev # Vite em http://localhost:5183
No celular: com o computador e o celular na mesma rede Wi-Fi, abra http://<IP do computador>:5183 no navegador do celular. O IP sai de ipconfig getifaddr en0 (no Mac). localhost no celular é o próprio celular. O Vite já escuta na rede.
Atalhos na URL para testar:
?bot=1: o bot da engine joga a fase sozinho (aparece o selo 🤖 BOT);?galeria=1: a galeria dos modelos (soldado, inimigos, chefões, armas, veículos, perigos); arraste para girar;?chefao=yeti: a arena dos chefões, uma luta curta direto com o chefão (general, warlord, mech, yeti ou demon); a barra de baixo troca de chefão e alterna entre você e o bot.| Comando | O que faz |
|---|---|
bun run test | Testes da engine, incluindo o equilíbrio das fases |
bun run typecheck | Checagem de tipos da engine e do cliente |
bun run build | Build de produção do cliente |
bun run calibrate | Joga as 50 fases com bots e regrava a tabela de dificuldade |
bun run stress | Teste de estresse: bots jogam a campanha inteira comprando na loja e repetindo fases |
bun run icons | Redesenha os ícones do app (aba do navegador e tela inicial) |
Mexeu em regra, gerador, bot ou loja? Rode bun run calibrate, depois bun run test e bun run stress.
O jogo está no ar em squad-x-web-inky.vercel.app. É um PWA: no Android o Chrome oferece "Instalar app"; no iPhone é Compartilhar → "Adicionar à Tela de Início". Depois da primeira visita ele abre e joga sem internet, e uma versão nova baixa em segundo plano e aparece na abertura seguinte (para ver um deploy novo, abra duas vezes). O progresso fica só no aparelho. Quando uma versão muda o jogo a ponto de o progresso antigo não fazer sentido (como a dos chefões com ataques próprios), todo mundo recomeça da fase 1, e o menu avisa.
Instalar e jogar offline exigem HTTPS, então não valem pelo http://<IP>:5183 do desenvolvimento: o service worker só existe no build de produção. A publicação é na Vercel, no free tier e sem servidor: o vercel.json diz como montar o cliente, e cada push no master gera uma versão nova.
packages/engine: regras, gerador de fases, bots, loja e calibraçãoapps/web: cliente em React + Three.js (cena, personagens, cenários, interface, som)tools: os scripts de calibração e dos íconesdocs: arquitetura, decisões, roadmap e a folha de referência visualVai trabalhar no código com um agente de IA? As instruções estão em CLAUDE.md (o AGENTS.md aponta para ele).
O código está à mostra, mas não é open source. A licença é a PolyForm Strict 1.0.0, com uma permissão a mais para pull requests.
Os termos completos estão em LICENSE. Quer usar para outra coisa? Abra uma issue e pergunte.