为 HTML 游戏构建可进化世界地图的最有效方法

弗洛里安·卡斯泰兰

我有一个多人合作游戏项目,我主要关心的是游戏地图。

一些上下文

玩家与世界地图互动。该地图是第一个预先生成的。该地图应基于平铺(每个平铺代表世界的一部分)。然而,玩家应该有能力改变地图(在这里建造东西,在这里摧毁另一个东西)。地图的这些修改应该对所有其他玩家可见。

问题

这样做的有效方法是什么?

  • 经典数组存储服务器端并在用户执行操作时更新此数组?从该数组构建地图时,客户端的 CPU 消耗会不会很大?(图像映射?<map></map>
  • 使用游戏“引擎”,例如gdevelopbabylonjs

从我的角度来看,为了能够完全自定义我的地图,阵列解决方案似乎是完成它的一种简单方法。但我对这个话题没有任何经验。

我最近查看了此地图生成器并尝试在其上构建地图 ( <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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为Android应用创建列表的最有效方法

来自分类Dev

为多个ssh隧道设置最有效的方法?

来自分类Dev

确定列表是否为空的最有效方法

来自分类Dev

具有简单动画的HTML / CSS / JS世界地图

来自分类Dev

为HTML游戏制作移动的“相机”

来自分类Dev

使用jQuery $ .ajax,“ GET”方法将XML显示为HTML-仅在某些浏览器中有效

来自分类Dev

是否有最有效的方法为Avg Clustering Coeff编程程序

来自分类Dev

为无状态逻辑提供EJB @Aynchronous方法的最有效方法

来自分类Dev

Jsoup检查字符串是否为有效的HTML

来自分类Dev

Jsoup检查字符串是否为有效的HTML

来自分类Dev

为多数组实现numpy.in1d的最有效方法

来自分类Dev

对于稀疏的科学矩阵,将行设置为零的最有效方法是什么?

来自分类Dev

使R识别“ 41520092010”为“ 04/15/2009 20:10”的最有效方法

来自分类Dev

对于稀疏的科学矩阵,将行设置为零的最有效方法是什么?

来自分类Dev

Excel VBA中将日期分类为星期的最有效,最简单的方法

来自分类Dev

为网页的动画标头编码的最有效方法是什么?

来自分类Dev

检查对象是否为字符串的最有效方法

来自分类Dev

检查 C++ 容器是否为空的最有效方法是什么?

来自分类Dev

时间序列:为子集编写代码的最有效方法是什么?

来自分类Dev

将元组一分为二的最有效方法是什么?

来自分类Dev

将数据显示为HTML的正确方法

来自分类Dev

重用HTML5画布的绘制内容的最有效方法

来自分类Dev

用jQuery / JavaScript更新一堆HTML元素的最有效方法?

来自分类Dev

访问.html页面的最有效方法是什么?

来自分类Dev

在HTML,CSS和JavaScript中创建“滑块”时间轴的最有效方法?

来自分类Dev

重用HTML5画布的绘制内容的最有效方法

来自分类Dev

在 SSRS 报告中将多个 SQL 行显示为带有子行的单行的最有效方法?

来自分类Dev

有多少种方法可以检查 x 是否为整数,哪一种最有效?

来自分类Dev

检查整数列表中的所有元素是否为 0 的最有效的时间/空间方法

Related 相关文章

  1. 1

    为Android应用创建列表的最有效方法

  2. 2

    为多个ssh隧道设置最有效的方法?

  3. 3

    确定列表是否为空的最有效方法

  4. 4

    具有简单动画的HTML / CSS / JS世界地图

  5. 5

    为HTML游戏制作移动的“相机”

  6. 6

    使用jQuery $ .ajax,“ GET”方法将XML显示为HTML-仅在某些浏览器中有效

  7. 7

    是否有最有效的方法为Avg Clustering Coeff编程程序

  8. 8

    为无状态逻辑提供EJB @Aynchronous方法的最有效方法

  9. 9

    Jsoup检查字符串是否为有效的HTML

  10. 10

    Jsoup检查字符串是否为有效的HTML

  11. 11

    为多数组实现numpy.in1d的最有效方法

  12. 12

    对于稀疏的科学矩阵,将行设置为零的最有效方法是什么?

  13. 13

    使R识别“ 41520092010”为“ 04/15/2009 20:10”的最有效方法

  14. 14

    对于稀疏的科学矩阵,将行设置为零的最有效方法是什么?

  15. 15

    Excel VBA中将日期分类为星期的最有效,最简单的方法

  16. 16

    为网页的动画标头编码的最有效方法是什么?

  17. 17

    检查对象是否为字符串的最有效方法

  18. 18

    检查 C++ 容器是否为空的最有效方法是什么?

  19. 19

    时间序列:为子集编写代码的最有效方法是什么?

  20. 20

    将元组一分为二的最有效方法是什么?

  21. 21

    将数据显示为HTML的正确方法

  22. 22

    重用HTML5画布的绘制内容的最有效方法

  23. 23

    用jQuery / JavaScript更新一堆HTML元素的最有效方法?

  24. 24

    访问.html页面的最有效方法是什么?

  25. 25

    在HTML,CSS和JavaScript中创建“滑块”时间轴的最有效方法?

  26. 26

    重用HTML5画布的绘制内容的最有效方法

  27. 27

    在 SSRS 报告中将多个 SQL 行显示为带有子行的单行的最有效方法?

  28. 28

    有多少种方法可以检查 x 是否为整数,哪一种最有效?

  29. 29

    检查整数列表中的所有元素是否为 0 的最有效的时间/空间方法

热门标签

归档