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

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

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

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

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

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

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

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

相关推荐

07-23 14:04
东北大学 C++
既然这样,为什么不点击就送呢
牛马88号:因为你合适。但有很多笔试就挂了、通过了再排序的
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务