BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A calm, stylized 3D game in which you play a beaver in the real Almsee valley
in Austria. You grow up in a lodge, build a dam and a lodge of your own, find a
mate, raise kits, and then play the next generation, forever. There is no death
and no losing. It is made for the author and friends to play on Android
tablets, and it also runs in a desktop browser.
It is not a beaver simulation. The terrain is real (BEV elevation data and
OpenStreetMap), but time runs faster than life and the look is stylized, not
photoreal.README 전문 보기 ↗A calm, stylized 3D game in which you play a beaver in the real Almsee valley in Austria. You grow up in a lodge, build a dam and a lodge of your own, find a mate, raise kits, and then play the next generation, forever. There is no death and no losing. It is made for the author and friends to play on Android tablets, and it also runs in a desktop browser.
It is not a beaver simulation. The terrain is real (BEV elevation data and OpenStreetMap), but time runs faster than life and the look is stylized, not photoreal.
The manual is public/manual.html. It is a plain page that
the game shows over itself: a ? button at the top right opens it, and the
first start shows a short welcome card with a link to it. Keep it in step with
the controls (src/ui/keyHints.ts, the touch buttons) when they change.
The privacy policy for the store listing is public/privacy.html; the Play form answers are in
docs/design/33_play_store_forms.md.
The design is in docs/design/, starting with the brief
(00_project_brief.md). The order of work is
in 13_milestone_plan.md, and open GitHub
issues are the live task tracker.
You need Node 22 or newer.
npm ci # install
npm run dev # dev server, also on the WLAN for a tablet
Open the printed URL. On a desktop, the key hints on screen show the controls; on a tablet, touch controls are used.
The terrain tiles are not in the repository (they are derived from downloaded
data). Without public/tiles/ the game has no valley to load. To build them,
which needs Python with GDAL, numpy, and Pillow:
python3 tools/area-editor/build_data.py # download and cache data into data/raw/
python3 tools/tiles/build_tiles.py # cut the play area into public/tiles/
See CLAUDE.md for the full command list, including the tests, the playtests
that play the real game, and the dam site scan.
npm run typecheck && npm test && npm run build && npm run test:e2e
npx markdownlint-cli '**/*.md' --ignore node_modules --ignore LICENSE
CI runs these (see .github/workflows/ci.yml). The first e2e run needs
npx playwright install chromium. The long playtests in tests/e2e/ skip
without the local tiles, so CI skips them.
The game ships as a sideloaded Android APK built with Capacitor (ADR 0007).
tools/tablet-live/ loads the dev server over
the WLAN, so a code change needs no APK rebuild. For development.tools/standalone-apk/ bundles the built
game in an APK that plays with no computer. Debug build, for local testing
only: the tiles come from OpenStreetMap data, so they are ODbL
(ADR 0003).src/: the game. sim/ is state and rules (no DOM, no three.js, no input),
terrain/ decodes and streams tiles, actions/ is what the player wants as
plain data plus the input devices, render/ draws sim state with three.js,
ui/ is the DOM overlays such as the test menu.tests/e2e/: Playwright smoke test and playtests.tools/: Python data tools (area-editor/, tiles/, dam-sites/) and the
Capacitor shells for the tablet.data/areas/: the play area shapes and travel links. data/raw/ is
downloaded data and untracked.docs/: design/ notes and the author's answers, decisions/ ADRs,
handoffs/ session handoffs.prototypes/: throwaway demos (the camera demo, the M0 tablet test). Not the
game.scripts/: helpers such as the question handout builder and
bootstrap-repo-settings.sh.This is a solo project for now. See CONTRIBUTING.md for the
workflow and CLAUDE.md for the working rules used with Claude
Code.
PRs opened by the repository owner arm squash auto-merge
(.github/workflows/auto-merge.yml), and update-branches.yml brings armed
PRs level with main after each push to it. Both need the AUTO_MERGE_TOKEN
secret: a fine-grained personal access token for this repo only (Contents, Pull
requests and Workflows: read/write). GITHUB_TOKEN cannot be used, because
GitHub starts no workflows for pushes made with it, so the PR's checks would
never run on the updated branch. Rotate the token before it expires.
scripts/bootstrap-repo-settings.sh sets branch protection, auto-merge, and
labels (needs the GitHub CLI with admin access).
tools/area-editor/build_data.py downloads it into
untracked data/raw/, and the game tiles built from it are untracked too
(published as the tiles release and on the Pages site, under the ODbL)
(ADR 0003). The screenshots
in public/manual/ are drawn from it and credited in the manual.Copyright (c) 2026 Richard Schuster. The code and the author's own content are
licensed under the GNU Affero General Public License v3 (LICENSE): you may
use and change them, but a changed version that others play, also as a web
page, must be shared under the same licence. Map data, terrain and sounds from
others keep their own licences, see NOTICE.md.