如何根据玩家报告的数据制作热点图?

关于我所说的一个非常好的例子,看看Replica Island的开发人员是如何根据玩家的死亡来做的: http : //www.youtube.com/watch?v= 7-62tRHLcHk&feature=player_embedded#t = 37米

如何根据我传入的数据轻松生成热图?

光环3是另一个在游戏数据报告中使用热图的好例子: http : //www.bungie.net/Online/Heatmaps.aspx

假设您已经有了想要绘制的数据集,并且想要将其绘制到的地图,则可以先创建一个强度地图:一个浮点值的网格,与最终地图的边界成比例(如果地图是足够小,1:1可能是好的)。 初始化整个数组为0。

然后,通过要绘制的每个点,将其映射到强度图的坐标空间(通常应该是简单的缩放操作),然后在位于该位置的强度图中绘制一个“点”。

一个基本的“blip”可能只是增加blip点的强度加上一些半径的一小部分。 更复杂的实现可以读取现有的强度,并使用更大的衰减半径已经是更强烈的点。 您可以尝试使用blip绘图仪来查找您喜欢的外观。

一旦你有一个强度图,你可以使用每个点的强度作为一维查find一个颜色渐变,这将允许您达到所需的视觉效果(这是如何获得多色的结果是最常见的)。 当您将强度图传输到最终图时,应该执行此颜色查找(显然,根据需要重新调整强度图与最终图像的尺寸差异)。

这对于基本实现应该足够了,但是还有优化的空间。 例如,强度图不会被标准化,因此您可能需要重新标准化(可能很慢),或者在绘制每个标记时跟踪最大强度,以便可以同时执行个别强度的重新归一化你正在重新着色。 此外,值的分布可能会影响映射的整个坐标空间的存储效率,因此您可能希望使用另一种解决scheme,不需要预先分配大量的内存那将是大部分空的。

如果事先有足够的数据来查询数据集中您希望看到的最小和最大强度,则可以避免重新归一化 – 基本上,如果在(X,Y,Z)与“点击“在那一刻出现的绘图数据 – 这是你可以建立到收集数据的系统,这将有助于优化映射部分。

由于强度图本质上是一个灰度图像,所以这种系统的原型很简单,可以使用位图来绘制强度图和select的绘图API(例如,C#中的System.Drawing )透明圆圈来产生强度图。 它看起来不是最好的,但它的function。

回声室是专门为游戏制作的免费日志logging和可视化工具。

可视化基于SQL的数据文件,其中包含由c ++应用程序生成的信息。 信息可以是日志语句,函数调用,截图或参数列表。

查看二维和三维游戏度量,例如死亡位置,最经常使用的武器,以及关卡不同部分的内存使用情况。

日志logging系统有一个C ++接口(就像是一个printf(),可以输出到一个SQL数据库,也可以通过networking),但Echo Chamber应该能够可视化任何SQL数据库(或者在数据库中创建数据库应该很简单Echo Chamber期望的格式)。 网站的导航有点呆滞; 相关的回声室手册和相关的Raknetloggingfunction 。

不幸的是没有热图的屏幕截图,但Echo Chamber绝对支持热图:

在这里输入图像描述

例如,获取游戏中指定事件的坐标。 例如,当玩家死亡时,你在场景图中获得玩家死亡的坐标。

所以一旦你有你需要在数据库中的值,枚举每个坐标多less次它出现在你的列表/数据库。 你会有一个像这样的列表:

  • 15:1,5
  • 10:6.15
  • 3:27,58

或者无论你的价值是什么。 你将有一个频率配对的坐标,就像一个键 – >值对。 然后,您可以将关键尺度量化为一种颜色。 例如,0的键是黑色的,而在键值列表中的最大键是红色的,而且之间的所有内容都是黑色,中点黄色和最大点红色之间的渐变。 量化每个结果到一个颜色,你有它。

我不确定您是否正在寻找某种应用或此algorithm。 我实际上有兴趣建立自定义的热图可视化软件,这是一个很有趣的。

快速谷歌search显示HeatMap API可能是一个适当的解决scheme,如果你不想推出自己的。

也许如果你解释你正在寻找什么(应用程序或编程方式),我们可以帮助你更好?

你可以做的其他事情只是输出相关的数据到一个CSV文件或其他东西,然后用统计软件(如Microsoft Excel,LibreOffice Calc,R,或GNUPlot)导入它,并吐出一个图表。 如果你知道一些shell脚本(或者如果你使用Windows的话),你可能会自动化整个事情。