TGViewer
Galactic Network Engineer Galactic Network Engineer @galacticnetworkengineer · 33 subscribers
Post #42 31
Вчера я писал пост о том, как бодро занялся архитектурной миграцией Galactic Network Engineer: разделяю огромные куски кода, выношу ответственность по отдельным модулям, удаляю старые костыли и вообще пытаюсь привести всё к состоянию, с которым игру потом не страшно будет вынести в онлайн.

А что я делал сегодня?
Правильно. Искал баги после миграции и исправлял их 😂

Нашлось два довольно интересных.
Первый — чисто сетевой.
На третьем уровне нужно восстановить связь с сервером WASH-SRV-01.
Я настроил на коммутаторе:
Gi0/1 → access VLAN 100
и SVI:
interface Vlan100
ip address 10.7.7.1 255.255.255.252
На сервере:
10.7.7.2/30
И вот что интересно: ping из Network Engine прекрасно проходил. Сам движок правильно понимал, что пакет должен идти через Vlan100. Более того, задача с ping уже считалась выполненной.
Но когда я заходил на сервер и пытался запустить задачу — игра говорила, что связи нет.
Хм.
Оказалось, внутри игры существовали две разные проверки одной и той же связности.
Первая — нормальный packet plane самого Network Engine. Он видел SVI и успешно отправлял пакет.
А вторая, дополнительная проверка игровой задачи, отдельно искала активный L3-интерфейс… но смотрела только физические интерфейсы.
То есть Gi0/1 она видела.
А interface Vlan100 — нет.
Получалась прекрасная ситуация:
Network Engine: «Ping проходит».
Задача: «Ping выполнен».
Сервер: «Сети нет».
🙂
Исправил это архитектурно: теперь для определения реальной сетевой связности источник истины один — packet plane Network Engine. Если движок действительно может провести пакет от A до B, игровая логика не должна пытаться второй раз изобретать собственную сеть.
Заодно проверили остальные уровни на такой же класс ошибок.

Второй баг был гораздо проще.
После большой архитектурной миграции на нескольких уровнях перестал запускаться диалог с NPC. Подходишь к персонажу — а он молчит.
Причина оказалась банальной: часть старой игровой логики после разделения модулей продолжала обращаться к уже удалённому механизму открытия диалогов.
Исправил, добавил проверки, чтобы при ошибке состояние диалога не зависало, и прогнал сценарии с NPC по уровням.

В общем, вчера:
«Ура, мы почистили архитектуру!»
Сегодня:
«Так… а почему шахтёр со мной больше не разговаривает?» 😂
Но, собственно, для этого и нужны такие проверки. Большая миграция кода — это не момент, когда работа закончилась. Это момент, когда надо пройти игру и попробовать сломать вообще всё, до чего можешь дотянуться.
Продолжаем.
  • 🔥 2
  • ❤ 1
  • 👍 1
More from @galacticnetworkengineer
  1. Sep 21, 2026Обещанный релиз Galactic Network Engineer для первых тестеров немного задерживается. Перед…
  2. Sep 18, 2026Продолжаю готовить Galactic Network Engineer к первому релизу. Несколько сетевых инженеров…
  3. Sep 15, 2026Ну что, Galactic Network Engineer уже в онлайне 🚀 Игра запущена на сервере, но доступ пок…
  4. Sep 11, 2026Сразу после окончания конференции я буквально засел за большую миграцию архитектуры Galact…
  5. Sep 10, 2026photo post
  6. Sep 8, 2026До встречи завтра на IT Elements!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →