Roblox 游戏开发/游戏引擎
ROBLOX 游戏引擎可以分为不同的引擎。每个引擎都负责完成与游戏特定方面相关的任务。其中包括物理引擎,它处理物理对象的自然运动。例如,重力、部件碰撞和爆炸由物理引擎处理。渲染引擎负责在玩家的显示器上显示物理对象。网络引擎负责确保玩游戏的玩家都能及时了解游戏中发生的事情。Lua 引擎必须处理事件并执行游戏代码,以便游戏可以交互。
为了使许多玩家能够同时玩游戏,ROBLOX 托管游戏服务器,这些服务器是运行在 ROBLOX 拥有的计算机上的 ROBLOX 软件的实例。当玩家进入游戏时,他的客户端,运行在他计算机上的 ROBLOX 软件,要么被与已经运行他想要进入的游戏的游戏服务器进行通信,要么被与将要创建的新游戏服务器进行通信(如果没有游戏服务器或所有可用游戏服务器已满(每个游戏服务器可以加入的最大玩家数量有限))。玩家的客户端从游戏服务器下载整个场景。随着游戏发生变化,无论是物理引擎还是游戏代码,这些变化都会复制到连接到游戏的每个客户端。当这些变化发生在玩家的客户端上(当玩家移动他的角色或类似事件发生时,就会发生这种情况)时,这些变化会复制到服务器,然后复制到所有其他客户端。这就是所有玩家都会看到其他玩家的角色移动以及脚本所做的更改会对每个玩家可见的原因。运行在计算机上的每个 ROBLOX 软件实例称为对等体:所有游戏服务器都是对等体,所有客户端都是对等体。
游戏服务器及其连接的客户端一起形成一个网络。ROBLOX 游戏服务器的网络据说在 客户端-服务器模型 上运行,因为网络节点(对等体)的排列方式:客户端与服务器通信,服务器与客户端通信,但客户端不会直接互相通信。网络的拓扑结构是指节点在该网络中的排列方式。
游戏服务器和物理服务器之间存在区别。物理服务器是通常托管多个游戏服务器的物理计算机。游戏服务器是在物理服务器上运行的 ROBLOX 软件的实例,它们与客户端通信以建立连接并传输数据。本地和服务器之间也存在区别,本地是指与特定客户端或所有客户端相关的内容,而服务器是指与服务器相关的内容。
您可以回答一些问题来验证您是否理解本章中的内容。请注意,找到某些问题的答案可能需要您具备本章中没有介绍的知识。这是正常的:测验是学习体验的一部分,它们可以介绍本书其他地方没有提供的信息。