我有一个多人合作游戏项目,我主要关心的是游戏地图。
一些上下文
玩家与世界地图互动。该地图是第一个预先生成的。该地图应基于平铺(每个平铺代表世界的一部分)。然而,玩家应该有能力改变地图(在这里建造东西,在这里摧毁另一个东西)。地图的这些修改应该对所有其他玩家可见。
问题
这样做的有效方法是什么?
<map></map>
)从我的角度来看,为了能够完全自定义我的地图,阵列解决方案似乎是完成它的一种简单方法。但我对这个话题没有任何经验。
我最近查看了此地图生成器并尝试在其上构建地图 ( <map></map>
),但这不允许我在生成地图后对其进行自定义。
我认为你最好的选择是:
将地图数据存储在一个简单的可序列化数据结构中。例如,带有一些整数的双对象数组 - 平铺类型枚举、建筑类型、状态数据(如果需要)等。这将允许您轻松地在服务器和客户端之间序列化和发送数据。
使用游戏引擎/画布渲染器/webgl 渲染器通过使用数据数组向客户端渲染视图。我有使用 PIXI.js(一个使用 WebGL 或 Canvas 的 2D 渲染框架)和 Phaser(一个 2D 游戏引擎,构建在 PIXI 之上)的经验。所以如果你的游戏是 2D,我可以推荐你这两个。PIXI 仅用于渲染,其中没有游戏逻辑,您必须实现它。如果游戏不是那么复杂,或者如果您想学习如何自己做事,那就太好了。另一方面,Phaser 是一个完整的游戏引擎,具有各种游戏开发功能,但这也意味着它会因您可能不需要的东西而变得更加臃肿。
当用户点击某些东西发送到服务器时,“用户 x 点击了瓷砖 x,y”,处理输入,编辑主数据数组并将其发送回所有客户端。您可以为此使用 Web 套接字或仅使用普通的 HTTP 请求
或者,您可以使用“大型”游戏引擎之一,然后将其编译为 js 和 html - Unity、Godot、Cocos creator(在这个引擎中您实际上是用 JS 编写的)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句