Техническое задание: Разработка LAN-эмулятора для игры
Цель проекта
Преобразовать существующую однопользовательскую компьютерную игру в полноценную многопользовательскую по сети, без необходимости модификации исходного кода игры. Решение должно внедряться как внешний модуль.
Ключевые требования
1. Метод внедрения
- Работа без исходного кода целевой игры.
- Использование техник инжектирования кода, моддинга или создания внешнего прокси-сервиса.
- Игра должна "видеть" сетевое окружение как локальную сеть (LAN).
2. Сетевая архитектура
- Необходимо предусмотреть два возможных варианта архитектуры на выбор пользователя:
- P2P (Peer-to-Peer): Для децентрализованной работы и снижения затрат на инфраструктуру.
- Клиент-Сервер: Для повышенной стабильности, контроля и предсказуемости.
3. Функционал подключения и лобби
- Создание системы лобби для поиска других игроков.
- Возможность создания новой сетевой сессии (комнаты).
- Интерфейс для быстрого подключения к существующим сессиям по ID или через список.
4. Игровой процесс и синхронизация
- Реализация системы синхронизации игрового состояния между всеми участниками.
- Обработка одновременных действий игроков.
- Опционально: возможность настройки таймеров на ходы (для пошаговых игр).
- Обеспечение стабильного соединения с минимальными задержками.
5. Технические аспекты
- Решение должно быть максимально оптимизированным и не вызывать критического падения производительности игры.
- Обеспечение безопасности сетевого обмена данными.
- Возможность простой настройки пользователем (порт, IP-адрес, тип архитектуры).
Ожидаемый результат
Готовый программный модуль (или набор инструментов), который после установки и настройки позволяет нескольким игрокам подключиться к одной сессии целевой игры через интернет, как если бы они находились в одной локальной сети.