← Back to Projects
MMORPG Architecture Network Programming Gameplay & Systems Programmer

Metin2 Remastered

The Goal

Recreating a classic MMORPG like Metin2 in Unity was a passion project that pushed my technical limits. My goal was to build a server-authoritative architecture from scratch that could support a multiplayer open world while keeping the original mechanical feel. This meant diving deep into world streaming, network synchronization, and writing an efficient entity system.

What I Built

I focused on creating a solid, modular backend that could handle multiplayer gameplay smoothly.

  • Networking with Fishnet: Used the Fishnet library to build the server architecture, focusing on keeping combat and movement synced and responsive.
  • World Chunking: Wrote a chunking system so the server and client only load the parts of the map they need, saving memory.
  • Logic LOD: Added a level-of-detail system for game logic. Entities far away tick less often to save CPU cycles.
  • Multi-Server Setup: Set up separate server instances for different backend services to distribute the load.
  • Entity System: Switched from inheritance to a composition-based approach for game entities (players, monsters, items), which made adding new features much easier.
  • Data Integration: Built a tool to parse the original Metin2 data files directly into Unity, saving me from having to manually recreate every item and skill.
  • MMO Core: Built out the foundational systems like inventory, loot drops, and questing.

Takeaways

Building this project taught me how to architect complex, networked systems from the ground up.

  • Networking at Scale: Learned how to implement techniques like chunking and logic LOD to keep performance stable in a networked environment.
  • Tooling is Key: Writing custom parsers for the original game data saved countless hours of manual data entry.
  • Architecture Matters: Moving to a composition-based entity system proved to be a huge win for managing the complexity of an RPG.