Skip to content

Latest commit

 

History

89 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Voxel Musou

Zhao Yun and Huang Zhong vs 300 soldiers — the Musou

▶ Play in your browser — voxel-musou.vercel.app

Zhao Yun in the crowd Huang Zhong's Musou volley
Zhao Yun — spear string through the crowd Huang Zhong — Musou 百步穿楊, flaming volley
Zhao Yun's Musou dragon Huang Zhong's giant arrow
Zhao Yun — Musou 蒼龍破陣, the dragon Huang Zhong — the giant arrow
Character select Chapter I prologue
Choose your officer Chapter I 「定軍山」 prologue

A browser-playable voxel action game in the style of Dynasty Warriors, built with Three.js. Take the field as Zhao Yun (趙雲) with his spear or Huang Zhong (黃忠) with his great bow, and cut through hundreds of Wei soldiers — in the story chapter at Mount Dingjun or in an endless free battle.

No build step: plain ES modules, Three.js r186 vendored in vendor/three/, deterministic fixed 60 Hz simulation.

Features

  • Two playable officers with their own movesets, models and Musou:
    • Zhao Yun — spear: normal combos (N1–N6), charge attacks (C1–C6), Musou 蒼龍破陣 with a dragon
    • Huang Zhong — bow: limb slashes and point-blank shots, charge shots (fan, barrage, arrow rain, fire arrow), aim mode, Musou 百步穿楊 (a flaming volley and a giant arrow)
  • Story mode, Chapter I 「定軍山」: prologue, scripted battle with dialogue, objectives, enemy officers and gates, result screen; play it as either officer (the other one joins the dialogue)
  • Free battle: endless waves
  • Four difficulties, picked after the mode on the title: 初級 · 普通 · 上級 · 修羅 (修羅 opens once Chapter I is cleared on 上級). Grunts stay one-sweep fodder; the tiers turn enemy pressure, officer toughness and the cost of a hit
  • Jump, jump attack, dodge; hit-stop and impact VFX
  • Dense voxel crowds of Wei soldiers (~300, InstancedMesh) blasted apart into voxel debris, allied Shu troops
  • Enemy officers with name and HP tags
  • Golden-hour valley battlefield with a river, camps, castle, fires and banners
  • Custom post-processing: atmospheric haze, depth of field, bloom, retro pixel look
  • Procedural WebAudio sound
  • Calligraphy-style title, character select, HUD and ink-wipe transitions

Run

ES modules don't load from file://, so serve the folder with any static server:

python3 -m http.server 8000

Then open http://localhost:8000 . Requires a WebGL2 browser; a desktop GPU is recommended. Sound starts on the first key press or click.

Controls

Keyboard and mouse, or a gamepad.

Action Keys Gamepad
Move (camera-relative) WASD / arrow keys left stick
Attack J / left click X □
Charge K / right click (mid-combo) Y △
Jump Space A ×
Dodge L / Shift R1 R2
Musou (gauge full) I B ○
Camera mouse (click the field to lock it) / Q E right stick
Recenter / face nearest officer R L1 L2
Aim (Huang Zhong) hold K / right click, release to loose hold Y △
Pause / controls Esc

Title screen

Options

URL parameter Description
?enemies=N Number of enemy soldiers, 0–2000 (default 300)
?go=free|story&char=zhaoyun|huangzhong Skip the menus straight into a battle
?hq Pin full render quality (no automatic MSAA downgrade)

Project layout

index.html      entry point, importmap, all screen CSS
src/            core, hero, chars (per-character kits), combat, crowd, musou, camera, vfx, post, world, audio,
                story (chapter script, prologue, result), ui
vendor/three/   Three.js r186
media/          README screenshots and GIF

Credits & License

  • Code: MIT, see LICENSE.
  • three.js: MIT.
  • HUD fallback font src/ui/brush.woff2 is a subset of Yuji Boku by Kinuta Font Factory, licensed under the SIL Open Font License 1.1.

This is a fan project, not affiliated with or endorsed by KOEI TECMO. "Dynasty Warriors" is a trademark of KOEI TECMO. No game assets from the original games are included.

About

Dynasty Warriors-style voxel action game in the browser: Zhao Yun vs 300 soldiers. Three.js, no build step.

Topics

Resources

Stars

104 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages