Структура проекта - ScreamingScythe/botgame GitHub Wiki
Модули
- gamedata - примитивы, которыми оперирует игровая механика. Тут скорее всего будет иметь место несколько иерархий наследования, поскольку детально весь процесс будет разбирать только игровая механика. (вот эту фигню надо бы писать "раз и навсегда", дабы потом модифицировать все, что угодно, кроме нее)
- gameplay - игровая механика
- gamemain - сюда зашиваем ту часть игровой механики, которая скорее всего будет оставаться постоянной по мере развития игры
- vmapi - Прослойка, через которую крепится VM (хорошо бы писать "раз и навсегда"), по идее должна быть мелкой, фактически - толстенький абстрактный класс на мой взгляд вполне себе вариант
- vmlua - Наша текущая реализация VM
- gui - Гуи на огре.
Важные статьи
Сущности
Важные, но второстепенные задачи
- Запилить хотябы одну тестовую карту (Редактор Карт?)
- Понемногу разграничить Зоны Ответственности по проекту
Как будет протекать процесс:
- Поступает заявка на бой извне. Файлик с ней и интеллектами ботов в кач-ве входных данных.
- Происходит ее валидация
- Возможно, в рамках валидации vmapi тоже влезает в процесс и каким-то образом меняет файлы с интеллектами команд.
- Происходит формирование в памяти поля сражения и собственно бой
- Генерится файл-реплей боя
- Файл-реплей боя открывает юзер и смотрит его