Pull to refresh

Comments 9

Спасибо за статью.
Сборка C++ SDK на винде несколько нетривиальна из-за зависимостей. Лучше всего иметь уже собранный protobuf и gRPC, тогда всё будет ок. Кода в самом sdk мало, там в основном кодогенерация, поэтому всё компилируется вполне тривиально.
В ином случае, cmake скрипт попытается сам скачать и собрать требуемые зависимости. Из-за зоопарка компиляторов и возможных вариантов сборки это может быть несколько проблематично. К примеру, для успешной сборки gRPC требуется OpenSSL, а собирать его под винду с помощью mingw — то ещё удовольствие.
Если вы посоветуете какой-либо стабильный package manager, который умеет protobuf+gRPC под мак/линукс/винду, то я постараюсь его прикрутить.
gRPC тот ещё монстр, к сожалению из коробки там очень мало опций и единственный способ получить полноценный cmake package — это собрать его целиком.

Согласен, компиляция на Windows может стоить долгих изысканий, но и на Linux достаточно приключений с версиями библиотек. Количество кода в SDK действительно вполне адекватно.
Однако, стоит учитывать, что серверная часть все же компилируется во время создания docker image (вместе с gRPC и protobuf), а поверх уже можно накладывать и код игрового сервера. Если итерирывать на уровне GameServer ресурса в Windows, это несколько упрощает задачу, в этом и есть вся прелесть контейнеризации процессов.
Спасибо за предложение помочь, правда package manager будет сложно так сразу предложить, если и нужно компилировать игровой код сервера на локальной машине, то думаю будет логичней использовать туже операционную систему и конфигурацию, что использует Dockerfile.
Очень интересно какой вариант в опросе будет превалировать в итоге.

Я про то, что вся docker сборка Agones изначально заточена под Linux / WSL. Под другое платформы CI/CD из коробки не заведётся. SDK под windows нужно собирать руками средствами cmake.
Если что, то с большего там я автор cmake сборки, поэтому критика приветствуется.

  1. Как себя игровой сервер поведет в случае, если нода кубернетеса "ушла"? Он сможет перепозлти на другой сервер или предполагается, что все — приплыли и надо игровую сессию на клиенте запускать заново? Ну, получается, что требования по надёжности нод весьма драконовские — на спот (preemptible) инстансах уже сервачки не погоняешь.
  2. Что-нибудь серьезное уже кто-либо поверх этого фреймворка сделал?
  3. Поддержка windows?
3) Поддержка windows
Игровые сервера можно делать под любые платформы. На C++ там простейшая реализация. Главное, чтобы на вашей платформе можно было собрать gRPC.
В крайнем случае можно посмотреть исходники плагина для UE и сделать по аналогии.
А на чём крутить сам Agones думаю вам не принципиально. Linux/Mac умеет, Windows умеет (с WSL).

ну, я просто к тому, что (внезапно!) оказалось, что кубернетес умеет поддерживать ноды с windows (нативно). Control plane все равно линуксовый, но очень интересно делать такие гибридные решения.

2 На данный момент есть работающие на Agones игры с 20 тысяч + пользователей.
Список компаний, использующих Agones можно посмотреть здесь Companies using Agones
В проекте также активно используется Slack, где можно задать все интересующие вопросы.


В комплексе с Agones еще стоит рассмотреть Open Match, который можно использовать для Match Making'а .

Agones — это платформа для оркестрации выделенных игровых серверов в Kubernetes.
Стоит упомянуть про сайт проекта — agones.dev, где есть необходимая документация и описание всех Custom Resource Definitions, которые используются в платформе Agones (все-таки это не один ресурс). Сайт генерируется из md файлов с помощью Hugo.
Так же стоит упомянуть, что билд всех бинарей происходит в docker'e, что удобно и позволяет получить унифицированную среду компиляции.
В папке build находится описание различных make target'ов, для выполнения сборки, запуска тестов и много другого (см. build/readme.md).
Используется Helm и gcloud. Есть Terraform конфигурации для развертывания системы.
Также существует Terraform конфиги и документация для развертывания в MS Azure и AWS EKS (в процессе).

Стоит упомянуть про сайт agones.dev , где есть необходимая документация и описание всех Custom Resource Definitions, которые используются в платформе Agones (все-таки это не один ресурс). Сайт генерируется из `md` файлов с помощью `Hugo`.
Так же стоит упомянуть что билд всех бинарей происходит в docker'e, что удобно и позволяет получить унифицированную среду компиляции.
В папке build находится описание различных make targetов, для выполнения сборки, запуска тестов и много другого.
Используется Helm и gcloud. Есть Terraform конфигурации для развертывания системы.
Sign up to leave a comment.

Articles