Город, шаг третий — 2D RTS, альфа 3
Posted on

Город — это MMORPG про мегаполис в киберпанк и нуар стилистике. Третьим шагом к его реализации стала 2D RTS.
Реализована связь клиента и сервера, добавление и удаление игроков, перемещение игроков, collision detection.
Технологии
Язык программирования: C++.
Сетевой фреймворк: Boost.Asio.
Графический фреймворк: SFML.
Что готово
- синхронный двухпоточный UDP-клиент:
- генератор уровня;
- загрузка уровня из файла;
- отображение уровня;
- добавление и удаление игроков;
- установка состояний и позиций игроков;
- указание адреса и порта сервера в конфигурационном файле;
- отдельный поток для обновления уровня;
- синхронный двухпоточный UDP-сервер:
- указание порта в параметрах командной строки;
- поддержка простого протокола;
- поддержка списка подключенных клиентов;
- отдельный поток для удаления потерянных игроков;
- перемещение игроков;
- collision detection.
Протокол
Запрос: command[:parameter][:parameter].
Команды:
r— запрос регистрации; параметров не имеет; в ответ сервер вернёт новый ID игрока;m— запрос перемещения игрока; имеет 2 параметра — ID игрока и направление; порядок параметров важен; направление должно быть представлено числом от 0 до 3 включительно, которое означает, соответственно, направление вверх, вправо, вниз и влево; в ответ сервер вернёт строкуtrue, если перемещение удалось совершить, и строкуfalse, если нет;w— запрос состояния мира; имеет 1 параметр — ID игрока; в ответ сервер вернёт список игроков, разделённых символом;; описание каждого игрока будет иметь форматplayer_id:player_position_x:player_position_y.
При ошибках сервер возвращает строку в формате error:description.
Репозиторий
Ссылка: http://github.com/thewizardplusplus/city/tree/v0.3-alpha3.
Содержание: код.
Лицензия: MIT.
Авторские права
Рисунок дерева
Автор: laobc.
Лицензия: CC0 1.0.
Ссылка: http://openclipart.org/detail/65479/simple-tree-by-laobc.
Рисунок горы
Автор: nicubunu.
Лицензия: CC0 1.0.
Ссылка: http://openclipart.org/detail/9459/rpg-map-symbols:-mountain-by-nicubunu-9459.
Рисунок замка
Автор: MrBordello.
Лицензия: CC0 1.0.
Ссылка: http://openclipart.org/detail/17086/strategy-game-tileset-by-mrbordello-17086.
Рисунок игрока
Автор: MrBordello.
Лицензия: CC0 1.0.
Ссылка: http://openclipart.org/detail/17073/strategy-game-tileset-by-mrbordello-17073.