BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Total Battle stack calculator
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Pyrrhic works out which units to send against a Total Battle epic monster. You tell it what your account
owns — tier ranges, mercenaries and their caps, every bonus source — plus the housing you have free and the
monster you are hitting; it sizes each stack so the ones that die first are the ones you can afford to lose,
simulates the fight, and gives you the counts to type into the game along with the damage and the recovery
bill. It runs entirely in your browser: no account, no server, no telemetry, no network call of any kind
(ADR-0002).README 전문 보기 ↗Pyrrhic works out which units to send against a Total Battle epic monster. You tell it what your account owns — tier ranges, mercenaries and their caps, every bonus source — plus the housing you have free and the monster you are hitting; it sizes each stack so the ones that die first are the ones you can afford to lose, simulates the fight, and gives you the counts to type into the game along with the damage and the recovery bill. It runs entirely in your browser: no account, no server, no telemetry, no network call of any kind (ADR-0002). Profiles, saved marches and settings live in this browser's storage and can be exported as JSON or handed over as a link that carries the whole configuration in the URL fragment, which browsers never send anywhere.
Vite and React 19 with TypeScript in strict mode. The UI is Mantine 9 used as documented — the theme in
src/ui/theme.ts is generated from the design hues by src/ui/palette.ts, targeting relative luminance so
every group colour lands in the same contrast band, and sections compose stock components rather than
carrying their own CSS (ADR-0008). State is zustand, schemas and migrations are zod, unit tests are Vitest,
end-to-end and visual tests are Playwright. The app is a progressive web app with a hand-written service
worker (no PWA dependency) and ships to GitHub Pages from main.
Node 22 (.nvmrc) and pnpm 10.
pnpm i
pnpm dev --port 5180
The component gallery — every kit and domain composite, in both colour schemes — is at /#kit. It exists in
development only; the production build folds the route away and never bundles it.
The service worker is not registered by pnpm dev, since it fights hot reloading. Start with
VITE_PWA_DEV=1 pnpm dev to exercise it.
pnpm test, pnpm lint, pnpm typecheck, pnpm format:check, pnpm data:check and pnpm build are what
CI runs. The scripts do not forward a path filter, so call the runners directly for one file:
pnpm vitest run src/ui/kit/ChoiceList.test.tsx # one unit test file
pnpm vitest run -t 'the arrows move' # one test by name
pnpm exec playwright test e2e/troops.spec.ts # one e2e spec
pnpm test:visual # kit-page screenshots and axe, at 390 and 1280
pnpm contrast # every contrast pair the palette promises, WCAG 2.2
pnpm size # bundle budgets against a built dist/
pnpm test:visual:update re-baselines the screenshots after a deliberate change; pnpm size needs
pnpm build first. Playwright needs its browsers once: pnpm exec playwright install.
| Where | What |
|---|---|
docs/PLAN.md | Architecture, the engine specification, the milestones and the story status table; §7 is the running review log |
docs/design-rules.md | The owner's UI and UX charter. When a rule and a plan disagree, the rule wins |
docs/design.md | The design system as built: palette, surfaces, type, glyphs, component defaults, wording glossary |
docs/plans/ | The design overhaul (personas, journeys, cards, stories D-xx) and the UI foundation plans, including the Mantine migration |
docs/decisions/ | Architecture decision records, indexed in docs/decisions/README.md |
docs/investigations/ | Numbered findings: cross-device sync, the Google Drive requirements, TotalStack observed live, the Mantine spike, the frame spike, hosting, the rules-compliance review |
docs/research/ | Game data tables, captured fixtures, the battle-model observations and the TotalStack review the engine was validated against |
The kit's contract is in src/ui/kit/README.md.
The tables under src/data/tables/ are plain JSON and are meant to be edited by players, in the GitHub web
editor if that is all you have — no development environment required (ADR-0007). Read
docs/data/README.md for what every table and field means and where to read the value
in game, then follow CONTRIBUTING.md: edit the file, run pnpm data:format if you can,
bump dataVersion, add a changelog line, and attach the in-game evidence. Values nobody can check are not
merged; a value that disagrees with what is in the repository is useful information, not a problem. Schemas,
cross-table integrity and the engine regression tests all run on the pull request.
Signed-in sync across devices is optional, opt-in and off by default: a build without
VITE_BACKEND_ORIGIN has no account rows at all and never loads the SDK. See docs/sync.md
and ADR-0009.
AGPL-3.0-or-later; a hosted copy has to stay open too. Game data is factual and shared under the same repository terms.
There are no third-party icon assets. Game concepts — units, groups, resources, states — are drawn with
the platform's own Unicode emoji through one Glyph component, the way the game and TotalStack write them,
so there is no icon licence to carry and nothing to fetch. Lucide (ISC) supplies the interface chrome only:
chevrons, gears, close buttons. Inter and Fraunces are bundled variable fonts under the SIL Open Font
License. Nothing is loaded from a CDN.