Техническое задание: Внедрение сетевого мультиплеера в существующую игру
Цель проекта
Добавить возможность сетевой игры в существующий однопользовательский проект, написанный на C++. Основная задача - заставить игру "считать", что игроки находятся в одной локальной сети, даже при соединении через интернет.
Ключевые требования
Сетевая архитектура
- Реализация механизма LAN-эмуляции (аналогично технологиям виртуальных частных сетей для игр).
- Поддержка двух возможных архитектур на выбор исполнителя с обоснованием:
- Peer-to-Peer (P2P)
- Клиент-серверная модель
Условия разработки
- Игра является legacy-проектом с ограниченной документацией.
- Необходимо подготовить решение для двух сценариев:
- С доступом к исходному коду игры (ванильная версия).
- Без прямого доступа к исходному коду (обратная разработка, инжектирование).
- Решение должно быть максимально ненавязчивым и минимально модифицировать оригинальную логику игры.
Технические аспекты
- Язык реализации - C++.
- Обеспечение стабильного соединения с приемлемой задержкой.
- Реализация базовых сетевых функций: обнаружение игр, подключение, синхронизация состояния.
- Возможность работы через NAT и межсетевые экраны.
Ожидаемый результат
Готовый сетевой модуль или патч, позволяющий нескольким игрокам одновременно участвовать в игровой сессии через интернет, с эмуляцией локальной сети.