Я хочу создать сетевую настольную игру на основе Risk в C ++. Моя идея состояла в том, чтобы иметь центральный сервер, на котором размещено игровое лобби, где пользователи могут подключаться и создавать / присоединяться к играм. Шаблон Observer в этом случае кажется привлекательным, поскольку я мог бы разместить всю игровую модель / логику на сервере, а клиенты просто наблюдали бы за этим и отображали текущее состояние игры, используя представление.
Мой первый вопрос: возможен ли такой подход? Большинство из того, что я слышал / думал, - это то, что у клиентов есть свои модели игр. Однако я думаю, что для игры, которая не требует больших вычислительных ресурсов, у одной модели, размещенной на сервере, есть свои преимущества (нет проблем с синхронизацией, предотвращает мошенничество и т.
Мой второй вопрос: как мне поступить с реализацией шаблона Observer по сети? Поскольку я не могу сделать прямой вызов метода по сети, мне понадобится какой-то простой способ симулировать это с использованием данных. Будет ли больше преимуществ в использовании подхода «вытягивать» (наблюдатель запрашивает обновления игровых данных) или «выталкивать» (сервер передает новые обновленные данные всем клиентам)?