Android 优化博弈循环

Android 优化博弈循环,android,Android,我是游戏编程新手,目前我只是在构思游戏引擎。我在想一个基于区块的2d-with-z轴世界,比如3d康威的生命游戏,或者是矮人堡垒 这让我想到:我需要迭代3d网格中的每个实体,每个游戏循环。比如说,100x100x100个3d立方体,如果允许重叠,再加上100个。也就是说,每个游戏循环有1000000到100000000个对象。不是所有的东西都在移动(当然也不是所有的东西都被渲染),但是我需要检查所有的东西的物理性(这意味着实体将检查上面(9)的实体,下面(9)的实体,以及(8)本身) 我如何优化

我是游戏编程新手,目前我只是在构思游戏引擎。我在想一个基于区块的2d-with-z轴世界,比如3d康威的生命游戏,或者是矮人堡垒

这让我想到:我需要迭代3d网格中的每个实体,每个游戏循环。比如说,100x100x100个3d立方体,如果允许重叠,再加上100个。也就是说,每个游戏循环有1000000到100000000个对象。不是所有的东西都在移动(当然也不是所有的东西都被渲染),但是我需要检查所有的东西的物理性(这意味着实体将检查上面(9)的实体,下面(9)的实体,以及(8)本身)

我如何优化我的游戏循环以维持一个合理快速的游戏循环

我目前正在使用Android的内置sqlite db来存储每个区块的单独属性,如HP等,但游戏地图是以数组[100][100][100][100][entityId:entityType]的形式存储在内存中的


还是我想得太多了?

这些技巧基本上可以归结为在不需要检查的情况下不检查东西。假设你的物理涉及到积木相互堆叠,这就像是如果一个积木已经静止了一段时间,就不检查它,然后如果它被碰撞,就开始重新检查它。根据游戏中可能出现的情况,你也可以忽略表面下的方块

不过,每个游戏循环进行一百万次检查可能是合理的。此外,对于你的游戏类型,你可能不需要每帧都检查;如果你在每一帧都做一部分,或者在一个较慢的线程中运行块物理,与渲染和播放器物理分开,这可能不会引起注意

实际上,优化是一种最好在最后适得其反的方法,而不是从一开始就进行设计。最好的计划是以最简单的方式编写游戏物理代码,让基本代码正常工作并调试,如果速度不够快,在观看帧速率的同时开始尝试优化