Техническое задание: Внедрение сетевого мультиплеера в существующую игру
Цель проекта
Добавить возможность сетевой игры в существующую однопользовательскую игру, написанную на C++. Основной подход - заставить игру «думать», что игроки находятся в локальной сети (LAN), с минимальными изменениями в оригинальном коде или с помощью внешнего моддинга.
Ключевые требования
Архитектура и сетевое взаимодействие
- Реализация механизма LAN-эмуляции (аналогично решениям Hamachi или Garena).
- Выбор и реализация одной из архитектур на усмотрение исполнителя:
- P2P (Peer-to-Peer).
- Клиент-серверная модель.
- Минимальное вмешательство в исходный код игры. Приоритет - методы внешней инжекции, хоткеи или моддинг.
- Необходимо рассмотреть два сценария разработки: при наличии доступа к ванильному коду и без него.
Функциональность мультиплеера
- Поддержка сессии для двух и более игроков.
- Обеспечение стабильности: игра не должна завершаться аварийно в течение 30+ минут непрерывной сессии.
- Создание системы лобби для поиска игроков и подключения через интернет (создание комнаты, присоединение).
- Возможная доработка игрового процесса: внедрение таймера и системы одновременных или поочередных ходов (если этого требует логика оригинальной игры).
Ожидаемый результат
- Рабочий сетевой модуль, интегрированный с игрой.
- Функциональная система лобби для организации игровых сессий.
- Стабильная сетевая игра без критических ошибок.
- Документация по интеграции и использованию.
Технические детали
Исполнителю необходимо предоставить обоснование выбранной архитектуры (P2P или клиент-сервер), описание метода интеграции (инжекция, мод) и план по обеспечению стабильности соединения.