第七部分:网络多人游戏循环
一、客户端-服务器架构
客户端服务器模型(CS)中,大部分游戏逻辑运行再单个服务器上。因此服务器的代码和单人游戏相似。多个客户端连接至服务器,基本上只是一个非智能(dumb)的渲染引擎,读取人体学输入设备数据以及控制本地玩家角色。
主要的问题是客户端代码需要即时把玩家输入转换成玩家角色在屏幕的动作,不然玩家会觉得他控制的角色非常缓慢。除了这些称为玩家预测(player prediction)的代码,客户都仅为渲染和音频引擎加一些网络代码。
- 两种模式:
- 服务器可以单独运行于一个机器上,称为专属服务模式(dedicated server)。
- 客户端同时也是服务器,称为客户端于服务器之上模式(client-on-top-of-server)。(单人游戏等用于只有一个客户端的多人游戏)
客户端于服务器上的架构一般把客户端和服务器都置于单个线程中并由单个游戏循环控制,因为独立进程和独立线程都会带来本地通信方面的额外开销。
二、P2P多人架构
点对点多人架构中,线上世界的每个机器既像服务器也像客户端。
游戏中每个动态游戏对象都由其对应的单一机器管辖。每个机器对其拥有管辖权的对象就是服务器,对其没有管辖权的对象就是客户端。
这种架构要处理两种对象:一种本机有管辖权的真实对象。另一种哑代理(dumb proxy)对象。
(END)