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