Portfolio - Classic MapleStory Recreation
A faithful, real-time multiplayer recreation of classic (pre-Big-Bang) MapleStory, reverse-engineered from the original game data, that runs entirely in the browser. The goal was to rebuild it properly: an always-on authoritative game server, real netcode, real map geometry and sprites, and the original job and skill system — built in shippable, independently verified phases.
Tech Stack
TypeScript
Node.js
Colyseus
Phaser 3
Vite
pnpm monorepo
Vitest
Docker
Cloudflare Tunnel
Multiplayer Netcode
- Authoritative Colyseus game server ticking at 60 Hz, one room per map, so every client sees the same world
- Client-side prediction with input-replay reconciliation — your own character responds instantly with no rubber-banding
- Other players rendered ~130 ms behind via per-entity snapshot interpolation, with extrapolation on packet gaps
- Server-side anti-cheat: input rate caps, sequence clamping, movement bounds and NaN guards
- Make-before-break portal handoff between map rooms, plus reconnect recovery that reserves your exact seat
World & Physics
- Deterministic foothold physics engine (slopes, jumps, edge falls, drop-through, ladders and ropes) shared by client and server, covered by golden-vector tests
- Asset pipeline that bakes real map geometry, mobs and sprites from a public game-data API into a fetch-once, content-addressed cache
- The full classic Victoria Island road network: 59 walk-connected towns and roads with data-driven portals and the classic world map
Jobs, Skills & Gameplay
- Warrior, Magician, Bowman and Thief with full 1st–3rd job advancement at the classic instructors
- Server-validated skills: multi-target attacks, ranged projectiles, party buffs, and the original skill effect animations
- Server-authoritative combat, mob AI and respawns, EXP and levelling, AP allocation, loot drops, 5-tab inventory and NPC shops
- Parties with private per-party instanced rooms, Kerning City Party Quest (5 stages + King Slime boss) and co-op jump quests
By the Numbers
- ~140,000 lines of TypeScript across shared / server / client packages
- 55 test suites covering physics, netcode, combat formulas, skills and quests
- Every phase verified end-to-end with multiple browser clients before the next began
MapleStory and all its art and data are the property of Nexon. This is a non-commercial fan project for learning purposes.