| # 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. |
|
|