Articles of 分析

使用Flurrylogging度量标准时,我应该如何使用事件名称?

我正在做一个多人游戏,我想用Flurry来logging游戏事件。 在游戏中,你可以建立,培养和训练部队。 在Flurry中,您可以logging一个事件(可选地带有参数)。 能够跟踪玩家的进步情况是非常好的,这取决于他们建立,成长等等什么样的事情,以及他们在什么样的经验水平上,但是我不知道最好是不同的不同types的行为的事件集…像这样: NSDictionary *buildParams = [NSDictionary dictionaryWithObjectsAndKeys: @"Build_Type", @"Castle", @"EXP", @"234523", // Capture user status nil]; [Flurry logEvent:@"Build_Action" withParameters:buildParams]; 等等…所以另一个增长的东西,另一个培训,等等。 还是有一个这样的事件的全球loggingtypes更好: NSDictionary *actionParams = [NSDictionary dictionaryWithObjectsAndKeys: @"Action", @"Build", @"Type", @"Castle", @"EXP", @"44234", nil]; [Flurry logEvent:@"Game_Action" withParameters:actionParams]; 在这种方法中,所有的数据都存储在一个事件types中。 我不确定在漏斗,分割和所有这些方面哪个能给我最好的结果?

为什么网格烘烤造成巨大的性能尖峰?

在我的Android设备上玩游戏几秒钟后,我看到由“ Mesh.Bake Scaled Mesh PhysX CollisionData ” 在我的游戏中,整个关卡是一个包含多个网格碰撞体的ridigbodies的父对象。 每个FixedUpdate() ,我的父对象围绕玩家旋转。 旋转世界导致网格缩放。 这是处理世界轮换的代码。 private void Update() { input.update(); Vector3 currentInput = input.GetDirection(); worldParent.rotation = initialRotation; worldParent.DetachChildren(); worldParent.position = transform.position; world.parent = worldParent; worldParent.Rotate(Vector3.right, currentInput.x * 50f); worldParent.Rotate(Vector3.forward, currentInput.z * 50f); } 我怎样才能摆脱网格缩放? Mesh.Bake物理似乎在一段时间后生效,是否可以禁用此function? 分析器看起来像这样: 左下方的面板显示尖峰之前的数据,右后方

需要帮助追踪Unity独立游戏中的内存泄漏

我在Unity游戏中遇到内存泄漏。 如果游戏空闲(没有新的游戏对象在场景中创建),Windows任务管理器将显示.exe的内存缓慢上升。 我已经附加了Unity分析器,并且内存分析器保持完全平坦,没有创建新的对象,并且其报告的内存数量没有增加。 因此,我认为它必须从每个帧的垃圾分配的地方。 所以我检查CPU分析器,并且有几个脚本显示GC Alloc的几个字节,其中大部分我已经修复。 但是,内存泄漏似乎仍然存在。 我已经尽力系统地从场景中删除对象,以查看内存泄漏是否停止,但这并没有certificate是有效的。 接下来要做的事情是什么? 我还可以使用其他什么工具? 我也注意到在场景变化之间释放的内存量并不是很大(事实上,即使在请求GC收集之后也很less)。 我希望这是与场景中的内存泄漏有关。

分析棋盘的移动数据

对于心理学实验 – 学科必须了解,2D网格是一个棋盘,并收集所有的1(奖励)。 我如何testing主题是否以最优化的方式实际进行 – 通过采取较小的步骤(或select最接近的回报邻居)从一个方块移动到另一个方块花费最less。 我的猜测是,如果我可以模拟一个学习algorithm,并且近似地学习奖励分配需要多长时间,然后最佳地探索它(最优性被定义为一个时间单位并且首先探索最接近的方块),我可以比较行为。

JVM体素游戏引擎滞后高峰

在创建了一些体素块而不移动相机之后,我正在经历短暂的滞后峰值。 我对应用程序进行了剖析:与c +​​+精确实现相比,JVM实现使用了更多的内存,大约是2.5倍。 另外,根据分析器,滞后的原因是垃圾收集器。 但是没有什么可收集的! 所有体素数据都是静态的,引用被保留,分析时没有任何东西被分配。 我也closures了所有的渲染,以确保本机内存不泄漏。 仍然滞后。 可能是什么? 如果你需要任何代码,我会在这里添加它。 (写在斯卡拉)

我如何分析三个难度设置中的哪一个会导致玩家退出我的游戏?

我有一个N阶段的益智游戏,每个阶段有3个难度级别。 用户必须完成当前的解锁阶段才能进入下一阶段,但是他们可以访问任何解锁阶段的难度级别。 例如,用户A玩难度级别为EASY的第一阶段,然后将难度级别改为硬件并完成第二阶段。 我正在使用Flurry Analyticslogging如上:“stage1_Completed_Easy”和“stage2_Completed_Hard” 问题是:N阶段的用户可能比N-1阶段的用户多,例如: 100名选手完成了stage1 EASY 50名选手完成第一阶段的硬盘 50名选手完成了Stage2 EASY 25名选手完成了第二阶段的HARD 70名选手完成了Stage2 NORMAL 我假设每个玩家只完成一个阶段。 这意味着从第一阶段到第二阶段,我输了5名球员 我想知道使用户停止玩我的游戏的级别和难度

准确测量拨打onDrawFrame(Android OpelGL ES 2.0)

我试图理清我的gameloop中的一些计时问题,并且看到了一些我不明白的东西。 Nexus 10应该有(据我所知)在60Hz的VSync。 所以这将意味着不是每16.66ms系统调用onDrawFrame ? 当我尝试测量它时,每次迭代都会得到不同的读数,如下所示: public void onDrawFrame(GL10 gl) { Log.v("NewTag","Millis between this call and last: "+((System.nanoTime()-newTime)/1000000)); newTime = System.nanoTime(); } 查看我的结果: 正如你所看到的,它在11.53ms到21.85ms之间变化 为什么它不是一个恒定的16.66,还是只是纳米时间不足以提供更准确的读数?

我如何理解Unity分析器中“时间”和“自我”列之间的差异?

我不太了解如何读取分析器的结果: Pathfinding_NodeAdjuster.CheckSpecificArea()方法占用了BehaviorUpdate总时间的94.7%,而其他时间占用了73.4%(实际时间约为74ms)。 我不明白的是这个74毫秒的时间来自哪里。 现在我意识到,如果我为这个方法的所有1221次调用平均时间,我可能会花费大约74ms的时间。 但那是什么时间呢? 我会怀疑GetComponent() /添加和清除List /类似的东西。 但是,这些都是分开列出的,只有结合起来才能在它们之间获得几个毫秒的时间。 那么,所有的时间花在哪里呢? 我已经包括有问题的方法,如果你想要更多的信息只是让我知道。 任何想法都表示赞赏。 更新: A: 我仍然不确定的(可能会问得更好)是: -CheckSpecificArea()这需要74ms,如果在其他方法中花费的时间不计算在方法中剩下的全部是真正的4 <= / =>比较,2个赋值和1个带有显式强制转换的赋值。 当然,其中一些部分运行了很多次,但那些操作真的是“昂贵”的吗? 我猜是这样。 B: 另外我应该早一点实现的是,Profiler列出的时间“不反映正常操作”,换句话说,列出的时间也包括“描述这些脚本”所需的时间。 我使用自己的一小段代码来在正常游戏和使用Time.realTimeSinceStartup的Deep Profile Recording中分析脚本,并意识到在隔离脚本的三个主要部分后,分析它们将增加从〜7.7x到〜 9.3倍。 Profiler中的Self时间甚至比我的分析代码在Deep Profiling中显示的时间长10倍。 所有这一切仍然是logging完成框架所需的时间(所以在我的情况下,一个100ms帧更像是13-15ms [可能更less])。 private bool CheckSpecificArea(List<GraphUpdateScene> gusAreaToCheck, GraphNode gn) { for (int areaCounter = 0; areaCounter < gusAreaToCheck.Count; areaCounter++) //check node location against each area of a […]

Google Analytics(分析)收集并显示自定义数据

我想知道Google Analytics(GA)是否可以用来收集有关应用使用情况和性能的自定义元数据。 一个例子是测量和收集设备上应用的平均帧速率(fps)。 这些数据如何呈现在Google Analytics报告中? 如果可能,请以示例源代码为例。

如何提高球员保留

我最近刚刚发布了我的第一款免费Android游戏,我花了几个广告费来尝试让玩家参与,看看会发生什么。 以下是Google的保留统计数据。 从颜色编码来看,50%是好的,<30%并不是很好,但实际上我不知道这些数字应该是什么样子。 所以这个问题真的有两个部分。 第1,2,7和30天有什么好的/好的数字? 所以我知道我应该瞄准什么,以及增加我的数字以达到这个水平的好方法。 有很明显的事情,比如通知,但是新手不太可能想到的那些不太明显的策略是什么?