BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗RTS de sobrevivência no navegador, em visão isométrica. Você comanda um pequeno grupo de sobreviventes: monta um acampamento, junta recursos, saqueia cidades abandonadas e se fortifica contra os mortos que atacam o acampamento à noite. Três ninhos espalhados pelo mapa soltam zumbis sem parar; a meta é destruir os três antes que o mapa fique tomado.
Feito com HTML5 Canvas e JavaScript puro (módulos ES), sem dependências e sem etapa de build.
Os módulos ES precisam de um servidor HTTP (abrir o index.html direto pelo file:// não funciona):
cd age-of-zombies
python3 -m http.server 8080 # ou: npm start
Abra http://localhost:8080. Com ?debug na URL, o estado do jogo fica acessível no console como window.aoz.
Teste da simulação (roda no Node, sem navegador):
npm test
| Ação | Controle |
|---|---|
| Selecionar | clique, arrastar caixa, Shift para somar, duplo clique seleciona todos na tela |
| Ordem contextual | botão direito: chão = mover, árvore/pedra = coletar, casa = saquear, zumbi ou ninho = atacar, obra = construir/consertar, depósito = entregar. Soldados mandados trabalhar fazem escolta |
| Construir | painel inferior ou B barraca, D depósito, C cerca, M muro, G portão, T torre, H horta, V ferro-velho. Cercas e muros: arraste para fazer uma linha. Shift mantém o modo de construção |
| Câmera | setas, mouse nas bordas, botão do meio arrastando, roda para zoom, clique no minimapa |
| Evoluir | selecione a construção e use U (ou o botão no painel). Quem estiver parado vai trabalhar na reforma |
| Grupo | painel à direita: clique seleciona, duplo clique leva a câmera; . vai para o próximo parado |
| Recrutar | R catador, S soldado (ou pelos botões do acampamento) |
| Outros | E todos, X parar, Ctrl+1…9 / 1…9 grupos, Espaço último alerta, P pausar, +/- velocidade, Del demolir/cancelar, F quadros por segundo, N liga/desliga o som |
V): produz sucata sozinho, 1 a cada 7 s; evolui para prensa (4,5 s) e fundição (2,8 s). É a fonte que não acaba.index.html página, HUD, estilos e os ícones (SVG embutido)
src/config.js constantes e balanceamento (prédios, zumbis, ruínas, tempos)
src/game.js simulação: sobreviventes, zumbis, prédios, ciclo dia/noite, comandos
src/worldgen.js geração procedural do mapa, cidades e estradas
src/map.js grade do mundo (terreno, recursos, ocupação, névoa)
src/pathfinding.js A* com suavização de caminho
src/flowfield.js campo de fluxo (Dijkstra) usado pelos zumbis que atacam à noite
src/heap.js heap binário mínimo
src/iso.js projeção isométrica 2:1 (tile <-> pixel)
src/render.js quadro isométrico: chão em chunks pré-projetados com transições, ordenação por
profundidade, partículas, luz noturna, névoa, vinheta, minimapa
src/draw/shapes.js paleta e primitivas isométricas (caixa, telhado, faces)
src/draw/nature.js árvores, pedras e decoração (sprites pintados uma vez)
src/draw/buildings.js ruínas e construções em cada nível de evolução, andaimes
src/draw/actors.js sobreviventes, zumbis e ícones de atividade
src/input.js mouse, teclado, seleção, câmera e posicionamento de obras
src/ui.js HUD em DOM: recursos, relógio, objetivo (ninhos), alertas, seta do maior grupo à noite, grupo por classe,
retrato da seleção, botões e telas
src/audio.js efeitos sonoros sintetizados (Web Audio) a partir dos eventos da simulação
src/main.js laço principal (simulação em passo fixo de 1/30 s)
tests/sim.test.mjs teste de fumaça da simulação
A simulação (game.js e afins) não toca no DOM e trabalha em coordenadas de tile; a projeção isométrica existe só no render.js e no input.js. Por isso ela é testada no Node.