我正在寻找基于 C++ 风险的网络棋盘游戏。我的想法是有一个中央服务器来托管一个游戏大厅,用户可以在其中连接和制作/加入游戏。在这种情况下,观察者模式似乎很有吸引力,因为我可以在服务器上托管所有游戏模型/逻辑,而客户端只是对此的观察者并使用视图显示当前游戏状态。
我的第一个问题:这种方法可行吗?我听到/想到的大部分内容是客户有自己的游戏模型。但是,我正在考虑对于计算量不高的游戏,由服务器托管的单个模型将具有优势(没有不同步问题,防止作弊等)。
我的第二个问题:我将如何通过网络实现观察者模式?由于我无法通过网络直接调用方法,因此我需要某种简单的方法来使用数据来模拟它。使用“拉”(观察者请求更新游戏数据)或“推”(服务器向所有客户端推送新的更新数据)方法会有更多优势吗?