3 System Architecture
Roman edited this page 2026-07-01 22:16:46 +03:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Архитектура системы

Общая схема

flowchart LR
  Player["Player"] --> Unity["Unity Client"]
  Unity --> Login["Login Server :2106"]
  Login --> Game["Game Server :11000"]
  Game --> LoginBridge["Login <-> Game :9014"]
  Game --> DB["Server DB / templates"]
  Game --> Geo["Geodata / pathfinding"]
  Unity --> Assets["Unity Assets / Scenes / Prefabs"]
  Unity --> Catalogs["Client data catalogs"]
  Catalogs --> Wiki["Wiki object pages"]
  DB --> Wiki
  Assets --> Wiki

Основные части

Часть Роль
Unity client Рендеринг, сцены, персонажи, UI, input, local representation, network client
Login server Авторизация, session/play keys, список серверов, связь loginserver <-> gameserver
Game server Мир, персонажи, NPC/монстры, spawn manager, combat, chat, inventory, shortcuts, sync
Content catalogs Original/client/server data: skills, items, NPC, spawns, classes, packets, map scenes
Wiki Документированное состояние каждого объекта и правила работы

Data flow: вход в игру

  1. Unity client подключается к loginserver.
  2. Loginserver проверяет или создает account.
  3. Loginserver отдает server list и play/session keys.
  4. Client выбирает game server.
  5. Game server подтверждает вход.
  6. Client запрашивает characters.
  7. Game server отдает character list или создает random characters, если включен соответствующий режим.
  8. Client выбирает character и запрашивает world load.
  9. Game server переводит client в IN_GAME, отдает player/world state.

Data flow: объект в мире

NPC/monster/map/object не считается готовым, пока не закрыты обе стороны:

  • Unity side: scene/prefab/material/animator/collider/UI representation;
  • server side: template/id/spawn/packet/state/AI/service behavior;
  • Wiki side: object page, status, source files, verification evidence.

Где возникают типовые разрывы

Разрыв Пример Что фиксировать в Wiki
Есть catalog id, но нет Unity visual NPC id есть в NpcName, prefab не найден needs-prefab, source id, proposed visual
Есть prefab, но нет server binding runtime NPC prefab есть, NPC id/spawn не выбран needs-server-binding, path, expected service
Есть scene, но colliders не проверены map cell загружается, но часть объектов проходится насквозь needs-collision-audit, scene, object list
Есть skill id, но нет effect/icon/runtime skill в catalog, но нет полного cast flow needs-skill-runtime, skill id, missing pieces
Есть packet class, но нет end-to-end test Java class найден, Unity flow не проверен needs-packet-test, packet, expected trace

Основной архитектурный принцип

Для production нельзя ориентироваться только на наличие ассетов. Готовность определяется связкой:

original data -> server runtime -> Unity runtime -> UI feedback -> verification -> Wiki status.