World Conquest Chronicles

World Conquest Chronicles

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

Скриншот примера работы клиента игры

Город — это MMORPG про мегаполис в киберпанк и нуар стилистике. Третьим шагом к его реализации стала 2D RTS.

Реализованы жизни игроков, атаки игрок-игрок и респаун игроков.

Технологии

Язык программирования: 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_health:player_position_x:player_position_y.

При ошибках сервер возвращает строку в формате error:description.

Репозиторий

Ссылка: http://github.com/thewizardplusplus/city/tree/v0.3-alpha4.

Содержание: код.

Лицензия: 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.