У вас есть возможность запускать и отлаживать игры локально на своём компьютере. Для этого необходимо скачать и распаковать архив для вашей операционной системы.
При запуске приложения, вы увидите экран конфигурации. Тут вы можете выбирать игроков, участвующих в игре, и настроить некоторые опции игры. Если вы хотите протестировать свою стратегию, выберите игрока TCP
, а затем запустите свою стратегию. По умолчанию используется порт 31001
. После успешного подключения, вы сможете начать игру.
Также вы можете пересмотреть сыгранную ранее игру. Для этого нужно сохранить лог (см. управление, консольный режим).
Вы можете также сохранить конфигурацию в файл, после чего запустить приложение с опцией --config <file>
, пропуская экран конфигурации.
Полный список опций можно увидеть с помощью запуска с аргументом --help
.
Если вы хотите поменять порт подключения, к примеру чтобы подключить несколько стратегий одновременно, при запуске клиента можно передать хост и порт для подключения. К примеру, python main.py localhost 31002
.
После подключения всех игроков, помимо начала новой игры, есть также следующие опции:
-
Повтор.
Загружает сохраненный лог прошедшей игры и проигрывает его аналогично простому просмотру. При этом, в отличие от обычного просмотра, ваша стратегия получает данные об игре, но все приказы игнорируются.
Чтобы запустить повтор из командной строки, используйте опцию
--repeat <file>
. Также в данном случае будет необходимо воспользоваться опцией--config
(настройки сида/игры будут игнорированы).
При использовании опции --config <file>
, вы можете отредактировать файл конфигурации для более детальной настройки.
-
seed
: число/null
- сид для инициализации генератора случайных чисел игры -
game
: настройка игры.-
Можно выбрать один из существующих пресетов:
{ "Create": "Round1" }
-
Можно полностью задать все параметры игры:
{ "Create": { "Custom": { "game_option_1": ..., "game_option_2": ..., ... } } }
-
Можно использовать существующий пресет, и изменить несколько параметров:
{ "Create": { "Override": { "preset": "Round1", "game_option_1": ..., "game_option_2": ... } } }
-
-
players
: Список настроек игроков
Опции настройки TCP игрока:
-
host
: строка/null
- хост для прослушивания подключения. По умолчаниюlocalhost
(127.0.0.1
), можно поменять на0.0.0.0
для подключения с удаленных машин -
port
: число, порт прослушивания подключения клиента -
accept_timeout
: число/null
- если указано, время ожидания подключения в секундах -
single_timeout
: число/null
- если указано, ограничение времени для операций работы по TCP (ограничение на 1 игровой тик) -
total_time_limit
: число/null
- если указано, суммарное ограничение времени на получение приказов. При превышении времени соединение прерывается -
token
: строка/null
- специальный токен (пароль) для подключения. Используется при тестировании на сервере -
run
: опциональный объект, при указании которого будет автоматически произведен запуск процесса клиента. Можно указать следующие поля:working_directory
- директория, в которой следует запускать процессы сборки/запускаbuild_command
- если указано, команда для сборки клиента, запускается перед началом прослушивания порта, и не учитывается в ограничении времени подключенияrun_command
- команда запуска (без аргументов хост/порт/токен). Хост/порт/токен из конфигурации автоматически добавляются к аргументам
Команды сборки/запуска - список, первым элементом которого является программа, остальные - аргументы
Пример:
{
"Tcp": {
"port": 31001,
"accept_timeout": 10,
"single_timeout": 1,
"total_time_limit": null,
"run": {
"working_directory": "client-cpp",
"build_command": [
"cmake",
"--build",
".",
"--config",
"Release"
],
"run_command": [
".\\Release\\client.exe"
]
}
}
}
Ctrl-S
- сохранить текущую игру в файл (позже можно пересмотреть или повторить)
Пробел
/P
- пауза/продолжитьВлево
/Вправо
- потиковая перемотка времени (на паузе).F2
- переключение режима быстрой скоростиF
- переключение полноэкранного режимаEscape
- выход / возврат к экрану конфигурации
Приложение умеет работать в консольном режиме, то есть без визуализации.
Для включения консольного режима используйте опцию --batch-mode
.
В консольном режиме можно сохранить лог игры с помощью опции --save-replay <file>
,
а также сохранить результаты игры с помощью опции --save-results <file>
.