模拟游戏如何优化?《医院计划》开发者分享
导语:在可能的条件下,只有当影响数值的变化时,我们才会尝试运行更为苛刻的计算,最好的例子可能是房间和电梯,当玩家们放置一个电梯或者墙体的时候,我们会运行泛洪填充算法,它可以标记电梯和房间可以使用哪些图块, 在可能的条件下,只有当影响数值的变化时,我们才会尝试运行更为苛刻的计算,最好的例子可能是房间和电梯,当玩家们放置一个电梯或者墙体的时候,我们会运行泛洪填充算法,它可以标记电梯和房间可以使用哪些图块,这在随后会加速寻路,而且可以用于向玩家展示哪个房间目前是不可用的。 分散、延迟的更新 某些情况下隔段时间运行特定更新是有意义的,我们使用的方法有以下几个: 有些更新只需要在每帧在角色的一部分运行,比如病人一半的行动脚本只在比较奇怪的帧更新,另一半则在普通帧更新(同时动画和动作都可以流畅运行)。 在特定情况下,尤其是角色限制但需要调用比较大量代码时,更新只在特定时间内运行,比如每秒一次。 ![]() 最昂贵、有时候也最普通的口令是每个病人的检查评估,这里需要衡量很多因素,比如一个部门里的哪个职员正在忙、哪个设备目前被预约。这个信息对于所有的病人也是不寻常的,因为他们的主治医师和他们的语言能力也是有影响的。有时候你需要检查的东西有很多,所以更新只在少数帧运行,而且在下一帧继续。 结论与心得 优化一款带有大量互动元素的建造模拟游戏是个持续的过程,通过使用Unity里的工具集,并且解决最糟糕的障碍,成为了我在研发过程中的常规任务。 虽然游戏研发总有提高的空间,但我们对于目前的结果是满意的,游戏的运行符合我们原定的目标,玩家们也经常给游戏做模组,极大超出了原有角色的限制。 或许值得一提的是,即便是和我曾经从事过的3A游戏相比,我觉得《医院计划》也是我见过最复杂的玩法逻辑,所以很多问题是特定项目才出现的,不过,预留足够的时间做优化是任何项目都需要做的。 来源:GameLook (编辑:D游戏网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |