Техническое задание: Внедрение сетевого мультиплеера в существующую игру

Цель проекта

Добавить возможность сетевой игры в существующую однопользовательскую игру, написанную на C++. Основной подход - заставить игру «думать», что игроки находятся в локальной сети (LAN), с минимальными изменениями в оригинальном коде или с помощью внешнего моддинга.

Ключевые требования

Архитектура и сетевое взаимодействие

  • Реализация механизма LAN-эмуляции (аналогично решениям Hamachi или Garena).
  • Выбор и реализация одной из архитектур на усмотрение исполнителя:
    • P2P (Peer-to-Peer).
    • Клиент-серверная модель.
  • Минимальное вмешательство в исходный код игры. Приоритет - методы внешней инжекции, хоткеи или моддинг.
  • Необходимо рассмотреть два сценария разработки: при наличии доступа к ванильному коду и без него.

Функциональность мультиплеера

  • Поддержка сессии для двух и более игроков.
  • Обеспечение стабильности: игра не должна завершаться аварийно в течение 30+ минут непрерывной сессии.
  • Создание системы лобби для поиска игроков и подключения через интернет (создание комнаты, присоединение).
  • Возможная доработка игрового процесса: внедрение таймера и системы одновременных или поочередных ходов (если этого требует логика оригинальной игры).

Ожидаемый результат

  • Рабочий сетевой модуль, интегрированный с игрой.
  • Функциональная система лобби для организации игровых сессий.
  • Стабильная сетевая игра без критических ошибок.
  • Документация по интеграции и использованию.

Технические детали

Исполнителю необходимо предоставить обоснование выбранной архитектуры (P2P или клиент-сервер), описание метода интеграции (инжекция, мод) и план по обеспечению стабильности соединения.