Portfolio - Classic MapleStory Recreation

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
Henesys map render

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
Kerning City Party Quest stage

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.