BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗An X-COM-style game: turn-based squad combat, a tech tree, base building, and a doomsday countdown. An alien AI signal has hit Earth's satellites and is converting every networked device into more of itself. Soldiers, hackers, field scientists and HALCYON, an Earth-born AI, fight back.
Status: MVP, both sides. Play FIREWALL (defend Earth) or the LATTICE (be the alien AI). Each is a full campaign with its own tech tree, base and story, and they save separately. See PLAN.md for the design and the roadmap toward head-to-head versus, and CHANGELOG.md for what changed and when.
▶ Play in your browser: https://npc6388.github.io/firewall/
Or run it locally: double-click index.html (any modern browser). No install, no server, no build step.
Progress autosaves in the browser (localStorage) whenever you're on the strategy screen.
Research Signal Analysis → Lattice Grammar (unlocks the Relay Trace story mission) → win it to get a Relay Core → Relay Core Analysis + HALCYON Integration → Uplink Triangulation → win Sever the Uplink. Do it before Convergence hits 100%. It rises every day, faster with regional infection, and jumps when you let missions expire.
Reach Convergence 100% before FIREWALL finds you. You start in Infiltration: breach Earth's security software (firewalls, antivirus, intrusion detection) to spread infection and earn compute. Every breach raises Detection; at 20% (or day 21) the natives form FIREWALL and the war begins: hold your cells against raids (your units start on overwatch, survive 10 turns or wipe them) and strike their safehouses to cut their Trace. Compile drones, Wardens and Harmonics; build the Array (Foundry, Protocol Core, Thought Engine, Harmonic Choir, Signal Mask, Seed Spire); research 10 protocols. If Trace hits 100% they assault the Uplink: hold it or lose.
| Input | Action |
|---|---|
Click operative / squad card / Tab | Select. Each turn starts on the leader (most HP); Tab goes down the squad by HP. While an ability is armed, Tab / Shift+Tab cycles its targets instead |
| Right-click blue tile / amber tile | Move (1 AP) / dash (2 AP) |
| Click enemy, click again | Aim, then fire |
1–5 | Pick an ability (numbers shown on the buttons); press the same key again to fire it at the aimed enemy or hovered tile/ally |
A | Aimed Shot (Marksman only): Shoot with +15 to hit; needs both AP (before the unit moves or acts), ends the turn |
B | Bastion (Lattice Warden Mech): hunker down and overwatch in one action; needs both AP, ends the turn |
O | HALCYON Overclock: +1 AP (after HALCYON Integration) |
Space | Confirm the armed ability (same as its key again); with nobody left with AP, end the turn; in combat training, press the coach's Next |
Y | Overwatch all, then end the turn (asks first) |
H | Hunker all, then end the turn (asks first) |
| Arrow keys / mouse at the map edge | Scroll the battle map |
| Left- or middle-drag | Pan the map (a left click without dragging still selects and aims) |
| Mouse wheel | Zoom in and out |
C | Centre the view on the selected unit |
Enter | End turn |
Esc / right-click | Cancel an armed ability |
M | Mute or unmute |
? / F1 | Help: glossary, controls, field manual |
Strategy screens. FIREWALL: Command, Research, Tree, Engineering, Barracks, Archive. LATTICE: Network, Protocols, Tree, The Array, Forces, Archive. The Tree tab draws the research (or protocol) tree with lines from each requirement to what it unlocks; every box shows cost, state (done / in progress / available / locked and what it still needs) and a short effect. Hover or tap a box for what it does in battle and in the campaign and everything it leads to; click an available box to start it. It scrolls sideways on a phone. Hover (or tap) any facility in Engineering or node in The Array for a details box: what it does, what that means in battle and in the campaign, and when it is worth building. The Lattice top bar and The Array show compute per day split into base, infection and Thought Engines.
Your first battle on each side runs a short tutorial (skip it any time), and each strategy tab shows a tip the first time you open it. The ⚙ button (title screen, strategy tabs, battle bar) holds volume, animation speed, screen shake, a high-contrast blue/orange palette, and a switch to replay the tutorials. All sound is synthesized in the browser and starts after your first click.
The game honours your system's reduce motion setting: no screen shake, fewer particles, a still title globe.
Hover a tile to see its cover (shield icons: filled = full, half-filled = half; blue = faces a visible enemy, yellow = only at an angle, and no shield where the cover faces no enemy you can see). Faint cones around the tile show where shots are fully covered (green), fading (yellow) or flanked (red). Hover an enemy to see hit %, crit % and its cover from your angle: cover counts in full within 30° of head-on, fades to half by about 63°, and past that the target is flanked.
Dev mode (balance testing, not a player feature): open the game with ?dev on the URL (e.g. index.html?dev). In a battle,
F8 on your turn takes over the other side (the AI finishes the current turn for the side you left) and F9 toggles hot-seat
(you play both sides; control passes at each End Turn). Results, downed units and rewards still go to the campaign you started from.
?dev&bots makes every battle play itself with the AI on both sides (add &ai=search for the search AI in both seats, &mem for
bot memory): Space pauses/resumes between activations, P pauses after each decision, V cycles the sight drawn
(FIREWALL / Lattice / All), C adds a comment to the current step, Right plays one more decision then holds, Left opens
the replay one unit action back (the bots stay paused). The option the bot chose is highlighted (orange), what it played in green. T sets a think time (off / 1 / 3 / 6 / 15 s / until
you press Space or ▶ Play; 3 s by default with &bots): the reasons go up and the map marks the unit, its move and its targets
before it acts, so you can read and comment first. - / = slow down or speed up the animations (0.25× to 4×). A BOT THINKING panel (also on AI turns with ?dev&ai=search)
shows the unit being animated, its options with scores and the reply it expected; every key has a button there. During the think
wait the map also shows the other top options (faint numbers 1..n at their end tiles) and the expected enemy reply in the other
side's colour (green for FIREWALL, magenta for the Lattice: a ghost where each foe goes, a dashed arrow from where it stands, a
dashed line to whom it shoots), and the panel spells it out ("Expected reply: Echo #1 12,9 → 17,7 (full cover), shoots ...");
click an option or press 1-9 to preview that option and its reply instead. Every ?dev battle
is recorded: F2 opens the replay viewer (comments with C there too). In the viewer, playing (Space / ▶) or stepping forward
(→ / ▶|) with a think time set first shows each AI step as a preview (board not yet advanced, its reasons, plan and reply drawn),
waits the think time (until Space: Space or ▶ Play applies it), then applies it; ← steps back to the previous unit action as a
preview; a comment made during a preview belongs to the previewed step; T, -/= and the Think button work there too. Details: tools/bot-lab/README.md, "Battle replay".
Coaching the bots: G / / (or the buttons in the comment box and the BOT THINKING panel) tag the current decision good, bad or
"should have" (then click the tile it should have moved to, or the unit it should have shot; Esc cancels the pick); text is optional. During a
think wait, (✋ Take over) hands that one decision to you: the bot's plan is dropped, you order the unit with the normal controls, and
the bots go on when its AP is spent or you press Done / End Turn (kept as a coach move beside the bot's pick). In the viewer,
downloads ; hand it to Claude ("seed a run from my review "): adds the positions
to the coach book and / report how often each bot agrees with you, beside its win rate (which still decides).
Details: tools/bot-lab/README.md, "Coaching".
| Path | What |
|---|---|
js/data.js | All content: classes, weapons, enemies, techs, facilities, fabrication, regions, story, tuning |
js/state.js | Seeded RNG, new-game state, soldier stats, save/load |
js/strategy.js | FIREWALL campaign rules: day clock, research, base, missions, Convergence, mission results |
js/lattice.js | LATTICE campaign rules: compute, protocols, the Array, forces, Detection/Trace, breaches, raids, strikes, the AI FIREWALL |
js/tactical.js | Pure battle engine (no DOM): map gen (five layouts: compound, street, yard, plaza, blocks; plus 0-2 impassable pits that give no cover), LOS, cover, abilities, AI, turns. b.human is the side the person plays |
js/tactical-ui.js | Tactical screen: input, HUD, event animation queue, draw order |
js/gfx.js | Procedural graphics, no image files: baked terrain for four biomes (city, relay, uplink, cyberspace), unit sprites, particles, fog, lights, banners |
js/settings.js | Player settings and tutorial progress (firewall-settings-v1, separate from saves) |
js/audio.js | WebAudio synth: every sound effect plus a generative score per scene; no sound files |
js/tutorial.js | First-battle coach for each side and one-time strategy tips |
js/comms.js | HALCYON / Lattice comms chatter (lines in DATA.comms) on time advance and battle events |
js/help.js | Help modal (searchable glossary, controls, field manual) and the settings modal |
js/backdrop.js | World-map continents, data packets and satellite; the animated title globe |
js/ui.js | FIREWALL strategy screens, modals, story player |
js/lattice-ui.js | LATTICE strategy screens (magenta theme), squad picker, results |
js/techtree.js | Tech tree drawing shared by both campaigns' Tree tabs, and the facility / Array node details box |
js/main.js |
node tests/smoke.js # 60 battles + 10 campaigns
node tests/smoke.js 200 30 60 40 # FIREWALL battles, FIREWALL campaigns, Lattice battles, Lattice campaigns
Browser check (drives the real page in headless Edge, reports page errors):
node tests/browser/drive.mjs tests/browser/playthrough.mjs
node tests/browser/drive.mjs tests/browser/finale.mjs
node tests/browser/drive.mjs tests/browser/lattice.mjs
node tests/browser/drive.mjs tests/browser/gfx-gallery.mjs # zoomed shots of every sprite in every biome, plus effects and fps
node tests/browser/drive.mjs tests/browser/map-layouts.mjs # one battle per map layout, pits hovered and zoomed
node tests/browser/drive.mjs tests/browser/gfx-profile.mjs # milliseconds per frame for each drawing stage
node tests/browser/drive.mjs tests/browser/onboarding.mjs # settings, help, tips, portraits, tutorial, hit breakdown, audio
node tests/browser/drive.mjs tests/browser/audio-levels.mjs # peak level of every sound and the music
Add PAGE_URL=https://npc6388.github.io/firewall/ in front of either command to test the live site.
The smoke test prints win/loss per mission type and difficulty, and how each simulated campaign ended. Exit code 1 means a check failed.
The bot plays worse than a person would (no deliberate flanking or overwatch), so read its win rates as a floor.
Last run: the FIREWALL bot wins about 60% of campaigns and the Lattice bot about 57%, so the two sides are roughly even.
firewall-review-<date>.jsontools/bot-lab/review.jsbookscore.jslab.js --review| Boot and click-action router |
tools/build-changelog.js | Regenerates js/changelog.js (in-game Help → Patch notes) from CHANGELOG.md; run after editing the changelog |
tools/map-sampler.js | node tools/map-sampler.js [maps]: ASCII sample of each map layout plus cover/pit/open-floor stats |
tests/smoke.js | Headless test: rule checks, AI-vs-AI battles, auto-played campaigns |
tests/browser/ | Headless-Edge driver (drive.mjs) plus scripted UI runs; screenshots go to tests/browser/shots/ |