# Architecture ``` [ Metin2 Client ] --TCP packets--> [ Auth :11000 ] | v [ Redis cache ] | [ Metin2 Client ] --TCP packets--> [ Game :13000 ] --SQL--> [ MariaDB/MySQL ] | [ data/ ] (jobs, exp, atlas, items, maps as provided) ``` ## Processes 1. **Auth** — login, account validation, channel list 2. **Game** — world, movement, combat, inventory, shops (per core feature set) 3. **DB** — accounts, players, items persistence 4. **Cache** — session / live world shared state ## Data layers for “items / skills / maps” | Layer | Where | |-------|--------| | Protocol packets | Core source (`vendor/*/src`) | | Item/mob definitions | Core data JSON/SQL + client proto packs | | Skills | Core skill managers + client skill data | | Maps | Map files client-side + spawn/atlas server-side | | Play handling | Game server combat/move services | ## Two cores included - **QCX** — production-style Docker images from GHCR, C# - **Open-MT2** — Node/TS, rich roadmap UI, easier to read for packet study Pick one primary for runtime; keep the other as reference.