BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
브라우저에서 즐기는 다거폴 스타일 1인칭 RPG, Echoes of the Shattered Octave 시리즈를 기반으로 합니다
A Daggerfall-style first-person RPG for the browser, based on the Echoes of the Shattered Octave series bible
게임JavaScript · PythonGitHub @dribblejerp-KlunkDunker온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A first-person dark-fantasy RPG for the browser, made in the style of The Elder Scrolls II: Daggerfall and built on the Echoes of the Shattered Octave series bible.
The game is published from main to GitHub Pages on every merge, so the link is always the current build. It installs as an app, keeps working offline, and "Play together" on the title screen lets a second player join from a phone.
Explore Oakhaven and the land past the Hedge, then sail the Drift-Kestrel to Whisper-Grove, the drowned marble capital of the Spectral Woods. Talk with townsfolk, take on quests and side quests, and trade with merchants. Fight Legionnaires, Proctors, golems, hounds and the Quiet. Keep the Narrow balanced, between the noise that brings the hounds and the silence that brings the Hush.
The older copy at shattered-octavebook1.pplx.app is out of date and is not updated any more; use the links above.
Play together. A second player joins your world with a six-letter code, from another computer or a phone. Each sees the other's traveller and name, and you fight, share experience and travel together. Above, left: the host on a desktop. Right: the guest on a phone.
To play together, both players press Play together on the title screen: one hosts and reads out the code, the other types it in. The guest brings their own traveller, and what they earn goes home with them.
The party. In Part Four, Kaelen or Lyra travels with you. G gives orders (follow, wait, keep quiet) and X uses their ability: here Kaelen's Dissonant Blade stuns a Legionnaire.
The plain link works on phones too: a phone or tablet starts in touch mode by itself. The ?touch=1 link also turns the touch controls on for a touchscreen laptop. A mouse that moves hands control back, unless Options → Controls → Touch controls is set to On.
The full list is in docs/features.md. Every milestone, with the pictures that shipped with it, is in docs/gallery.md.
The game is plain HTML, CSS and JavaScript, with no build step. Serve the folder with any static web server:
# from the repository root
python3 -m http.server 8000
# then open http://localhost:8000 (or http://localhost:8000/?touch=1 to try the touch controls)
Opening index.html straight from disk usually works too, but some browsers block audio or file loading on file://, so a local server is the safer choice.
With a local server running, and Playwright's Chromium and ffmpeg installed:
PREVIEW_URL=http://127.0.0.1:8000 node tools/readme/capture.js # everything
PREVIEW_URL=http://127.0.0.1:8000 node tools/readme/capture.js phone ring # just these
python3 tools/readme/qr.py # the QR code (needs segno)
If Playwright is installed outside this repository, set PLAYWRIGHT_MODULE to its module path. The script stages each scene with the game's own functions on a fresh disposable game and steps the loops frame by frame, so they come out smooth on any machine. It writes to screenshots/readme/ and saves nothing. Look at every picture after a run. The older feature captures in docs/gallery.md come from node test/screenshots.js and the per-phase tests.
The game's fonts are bundled in fonts/, so captures render in the intended typefaces without any system fonts or network access.
Go to Settings → Pages and set Source to "GitHub Actions". The workflow in .github/workflows/pages.yml publishes the game on every push to main (it checks the offline file list first; after changing game files, run node tools/pwa/precache.js). This repository is published at dribblejerp-klunkdunker.github.io/echoes-of-the-shattered-octave.
| Action | Input |
|---|---|
| Move | W A S D · Shift runs · Caps Lock toggles always-run |
| Look | Click the view to capture the mouse, then move it freely (Esc gives it back; Options → Controls → Capture mouse turns this off) · without capture, move over the view and rest at a side edge to keep turning · right-drag · Q and arrow keys · Z levels your gaze |
| Full screen | Alt+Enter, or Options → Controls → Full screen |
| Attack | Left-click to thrust · hold and move the mouse to slash or chop · wheel or 1–9 changes weapon · F raises your guard: a quick parry turns a blow aside, a held block halves it |
| Use / Talk | E or Space, or click a bright name under the crosshair (the crosshair is the centre of the view, so look up or down to aim at something above or below you) |
| Pickpocket | Face a nearby Oakhaven adult, P to inspect · touch Purse / controller Y · Enter/Space or A attempts, Escape or B leaves |
| Disguise | Wear Synod Clerk Robes in Inventory · Y / touch Cover / controller Back shows status · Enter/A wears or removes, Escape/B leaves |
| Stables | Face the stable sign by the North Gate · 1/A hire for a day · 2/X return her · Escape/B leave |
| Law & Arrest | 1/A pay fine · 2/X enter prison · 3/Y bribe (Personality) · 4/Back threaten (Strength) · 5/Escape/B refuse and flee with grace · Prison: 1/A serve remaining sentence, 2/X pay, Escape/B return to cell |
| Bodies | Face nearby remains, G / touch Body / controller left-stick click · Enter/A drag or drop, H/X conceal at a recess, Escape/B leave |
| Distractions | Aim, then O / touch Throw / controller right-stick click · 1/A stone, 2/X empty bottle, Escape/B cancel |
| Songs | Tab opens the song-book · F1–F5 cast · N murmurs |
| Panels | I inventory · C character · L logbook · M map · T world map and travel · R rest · K ledger · Esc options and save |
| Journey needs | Esc options → Journey needs toggles hunger and sleep; switching it on starts you fed and rested |
| Hardcore | Esc options → Hardcore run asks to confirm; one save for the run, and death ends it |
| Weather | No input: the sky changes with the world clock, and C names it, its strength and how long it has left |
| Lantern | U lights or puts out your lantern (it matters most indoors and at night) |
docs/ features.md (everything in Book One), gallery.md (each milestone), desktop.md, mods.md tools/readme/ capture.js renders this page's pictures and loops from the game; qr.py draws the phone QR code
index.html entry point
css/style.css Daggerfall-style interface
js/assets.js embedded textures, sprites and weapon art
js/data.js canon: classes, NPCs, quests, items, weapons, armour, merchants, loot
js/maps.js districts, interiors and dungeons
js/engine.js raycaster renderer (flat path, and the relief path with per-pixel depth)
js/audio.js sound effects and music director
js/grove.js Part Three: Whisper-Grove story logic
js/coda.js Part Four: the Deep Woods and the Mausoleum of Chords
js/wilds.js Part Four: the Quiet Faith and the Arbiter's search party
js/party.js Companions (prototype): Kaelen and Lyra
js/anim.js Procedural animation and weather particles
js/travel.js World map and travel
js/gfx.js shared graphics switches for the modules below
js/sky.js night stars, painted panoramas, Kestrel flyovers
js/post.js soft fog, area mist, bloom, colour grades (post-processing)
js/water.js water reflections and ripples
js/decals.js wall decals and close-range detail
js/ceilings.js painted ceilings
js/scenery.js route-safe props (barrels, carts, statues, graves, bones)
js/flora.js swaying, player-reactive grass and reeds
js/directions.js procedural side and back views for enemies
js/lighting.js emissive glow, dark interiors and the lantern
js/pathing.js enemies route around cliffs, crags and terraces
js/presets.js Original/Low/Medium/High presets, Graphics options, CRT
js/creature-life.js enemy idle fidgets, alert startles, run strides
js/enemy-fx.js hit flinches, Requiem shatter, Brood-Mother shedding
js/telegraphs.js casting tells and collision-safe spawn entrances
js/fp-hands.js first-person draw/holster/switch, casting and climbing hands
js/fp-feel.js head bob, landing dip, hit shake, deafness, the Hush
js/doors.js swinging doors, chest lids, levers
js/reading.js full-screen held books and notes
js/companions.js Kaelen and Lyra: hit reactions, limp, Root-note hum and pose, song rings, camp loops
js/townsfolk.js talking gestures, daily routines, work loops
js/smalllife.js crows, rats and the cat; the moored Kestrel; glinting Light-glass
js/firesmoke.js chimney, campfire and golem smoke; splashes; torches and braziers
js/windbells.js wind on signs and banners, area leaves, swinging bells
js/gates.js rising gates and portcullises, the quarry cave-in
js/frames.js carved-wood frames, brass corners, blackletter headings, font credits
js/icons.js item icons and the painted paper doll
js/portraits.js mood portraits in conversation
js/logmap.js logbook sketches and automap stamps
js/screens.js area loading cards, death and ending illustrations
css/fonts.css the bundled fonts (fonts/, SIL Open Font License)
js/rumours.js tavern rumours and the Synod Gazette
js/couriers.js letters from the people you helped
js/dreams.js rest dreams and Light-glass memory echoes
js/tobin.js Tobin's journal pages and the logbook tracker
js/epilogue.js Kaelen and Lyra epilogues; Organum, Iron Peaks and Rift teasers
js/spatial-audio.js positional sound with wall muffling; rain, willow wind, thunder
js/voices.js procedural grunts, the Voices setting; the in-game credits
js/voice-acting.js plays the recorded lines in voices/ (manifest js/voice-lines.js; built by tools/voices/)
js/score.js Extended score: recorded area, boss and story pieces (music/extended/, made by tools/music/), procedural fallback
js/ripples.js directional on-screen sound ripples
js/painted.js paintings in img/painted/ (made by tools/art/) with the procedural pictures as fallback
js/playtools.js photo mode, speedrun timer, statistics
js/access.js Accessibility block and the translation catalog (locales/)
js/mods.js data-only mod schemas (schemas/), validator, Mod dungeons, dungeon editor
js/touchlink36.js the phone link: ?touch=1 (or a phone) starts the touch controls; the "turn sideways" hint
desktop/ Electron desktop shell and packaging (docs/desktop.md)
js/game.js game logic, UI, combat, dialogue, trade, saving
music/ soundtrack (MP3)
img/ portraits, title, map and ending art
screenshots/ pictures: readme/ for this page (tools/readme/), the rest for docs/gallery.md
| Graphics | Esc options → Graphics & access: Original / Low / Medium / High, resolution 1x/2x, view distance, particles, upscaling, CRT curvature |
| Camera feel | Esc options → Graphics & access: Head bob Off/Gentle, Reduce motion, No flashes |
| Reading | Books and notes open full screen · ← → or PgUp/PgDn turn pages · + and − change the text size · touch arrows / controller shoulders or d-pad · Escape/B closes |
| Sound | V sound on/off · B music on/off · Esc options → Graphics & access → Voices: Voiced (default), Voiced + read aloud, Grunts, Off |
| Score | Esc options → Graphics & access → Score: Original (the recorded soundtrack, default) or Extended (adds composed area, boss and story-theme recordings) |
| Accessibility | Esc options → Graphics & access: text size, reduce motion, no flashes, high contrast, sound captions, language |
| Photo mode | \ (backslash) or Esc options → Graphics & access → Photo mode · drag/arrows look, Q/E tilt, W A S D or wheel move a few paces · Save picture exports a PNG · Escape leaves |
| Speedrun timer | Esc options → Graphics & access → Speedrun timer: real and game time, with splits at each story milestone |
| Statistics | Esc options → Graphics & access → Statistics |
| Mod dungeons | Esc options → Mod dungeons: import, enable and play data-only mod dungeons, or build one in the dungeon editor (see docs/mods.md) |
| Touch | Left thumb stick moves, right thumb drags to look, tap to use or strike · Songs, Run, Throw, Use and Strike buttons on the right · a phone or tablet starts with these, and the ?touch=1 link starts them on any touchscreen |