用Node.js实现一个多人游戏服务器引擎
摘要
你听说过文字冒险游戏吗?如果你足够大(就像我一样),那么你可能听说过“回到过去”。在本文中,我将向您展示编译的整个过程。这不仅仅是一款文字冒险游戏,而是一款文字冒险游戏引擎,可以让你和朋友一起玩,进行任何剧情。没错,我们会增加多人游戏,让它更有趣。
文字冒险是最早的RPG游戏之一。回到没有图文的时代,你只能在黑色背景下阅读CRT显示器上的描述,靠你的想象力推动游戏剧情的发展。
如果你想怀旧,也许世界上第一个单词冒险游戏叫做巨大洞穴冒险。
过去的文字冒险游戏图片
上图是你实际看到的游戏画面,与我们顶级的AAA冒险游戏相差甚远。然而,它们玩起来很有趣,可以轻松杀死你数百个小时,因为只有你坐在显示器前,试图找到突破它的方法。
可以理解的是,多年来,文字冒险已经被更好的视觉效果所取代,尤其是在过去的几年里,游戏越是合作,你就越能和朋友一起玩。这是原文字冒险游戏所缺少的,也是我在本文中想提到的功能。
我们的目标
从标题中你可能已经猜到了,本文的重点是创建一个文本冒险引擎,让你和朋友一起玩,这样你就可以和他们协作,就像玩游戏《龙与地下城》一样。
创建引擎时,聊天服务器和客户端会做大量工作。在本文中,我将向您展示设计思想,解释引擎背后的架构,客户端如何与服务器交互以及游戏规则。
为了给大家另一种对我目标的直观感受,先拍一张照片:
游戏客户端的界面设计
这是我们的目标。一旦达到这个目标,你就会得到截图,而不是简单肮脏的模型。因此,我们需要了解这个过程。首先要介绍的是整体设计;然后介绍一下我将要用到的编码的相关工具;最后,我将向您展示一些核心代码(当然,还有到完整代码库的链接)。
希望最后你能自己创造一个新的文字冒险游戏,和朋友们一起享受吧!
设计阶段
在设计阶段,我会描述这个游戏的整体蓝图。我会尽力不让你厌烦,但我认为在给你看第一行代码之前,有必要找出一些幕后工作。
我认为接下来的四个组件可以提供相当多的细节:
引擎这将成为游戏的主服务器。游戏规则将在这里实现,它将为任何类型的客户端提供与技术无关的界面。在这个项目中,我们将实现终端类型客户端,但是您可以使用网络客户端或您喜欢的任何其他类型。聊天服务器足够复杂,可以写另一篇文章,所以这个服务也会有自己的模块。聊天服务器负责让玩家在游戏过程中相互交流。客户端如上所述,这将是一个终端类型的客户端,理想情况下,它看起来类似于前面的模型。它将利用引擎和聊天服务器提供的服务。游戏(JSON文件)最后,我将介绍实际游戏的定义。这一部分重点是创建一个可以运行任何游戏的引擎,只要你的游戏文件符合引擎的要求。因此,即使这不需要编码,我也会解释如何构建冒险文件,以便我们将来可以编写自己的冒险规则。发动机
游戏引擎或游戏服务器将是REST API,并提供所有必要的功能。
我选择REST API只是因为(对于这种类型的游戏)HTTP及其异步特性造成的延迟不会带来任何麻烦。但是,我们必须为聊天服务器采取不同的路线。在开始定义API之前,您需要定义引擎的功能。那么,我们来看看。
特点描述加入游戏的玩家可以通过指定的游戏ID加入游戏。创建新的游戏玩家也可以创建新的游戏实例。引擎应该返回一个ID,这样其他人就可以让它加入游戏。返回场景该功能应该返回玩家所在的当前场景。基本上,它将返回包含所有相关信息(可能的操作、其中的对象等)的描述。).与场景交互将是最复杂的,因为它将从客户端获得命令,并执行移动、攻击、获取、查看、读取等操作——。盘点虽然这是一种与游戏互动的方式,但与场景没有直接关系。因此,检查每个玩家的库存将被视为不同的操作。关于搬家
我们需要一种方法来测量游戏中的距离,因为玩家在游戏中可以采取的核心动作之一就是移动。我们需要用这个数字来衡量时间,以简化游戏。考虑到这种类型的游戏有基于回合的动作,例如战斗,使用实际的时钟来测量时间可能不是最好的
版权声明:用Node.js实现一个多人游戏服务器引擎是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。