用游戏引擎(如Unity)开发一款App应用有什么优势或劣势

游戏和普通的程序相比,最大的特点之一在于游戏循环。

现在除了gal这样的游戏以外,已经极少有等待玩家输入再进行响应的游戏了,简单点说,就是即使你不输入任何操作,游戏本身也是继续运行的,树叶会继续动,npc会走来走去,会有白天黑夜,而玩家只需要在原地挂机,实现这一切的基础就是游戏循环。

为什么一定需要这样一个循环呢?不用这样的循环每个角色就不能独立运行吗?当然是可以的。

不过我们来假设一下,如果每个角色和单元都是独立的时间线的话,那么很容易导致时间上的不同步,比如角色a每秒走1米,角***每秒走2米,但是角色a因为各种原因卡了一下,这1秒只走了0.5米,那么到下一秒的时候,这俩的运动就出现了不同步,而这在程序里是很常见的,内存命中的时候很难控制。因此在游戏里必然需要一个大循环,如果有了这个大循环,每一次都会在固定时间内对所有角色计算固定时长的变化量,多的不计算,少的加时间,这样一来不同步的问题就解决了。而这也是为什么至今游戏对多线程支持都不够好的原因所在——至少游戏的整体大循环必然是单线程运行的。

那么回到话题,一般情况下游戏引擎都会构建一个这样的整体大循环,unity也不例外,多数游戏通常以帧为单位进行计算,这样一来,每一帧需要产生什么改变都;需要进行计算——这直接导致了性能的持续占用,也就是耗电,而普通的app在极限情况下可以做成纯事件触发,也就是玩家不操作,程序不运算,动画音频全都可以分布在不同的线程里。

除了性能持续占用和多线程支持差以外,这个游戏循环当然还会造成一些其他的后果。

游戏引擎最大的优势当然是渲染,不过对于一般的app而言,完全是杀鸡用牛刀了。
想学习更多unity内容,可以加群 496038649,验证油条
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务