那一段时期夫妻俩的生活虽然很紧凑,木晨曦每天都要忙着处理《星梦森林夜》的各种各样的杂事,完全已经没有之前他自己开发游戏时候的那般自在了。
以前他可以自己安排自己的事情,可以坐下来写代码一写写一整天,也可以用整块整块的时间来画素材,写文本。
现在不可以了,并不是他不需要再写代码,而是有很多向外对接的事情需要他自己去处理。
文本和设计有沈时玖在做,代码有小满做,他们两个都不擅长和外面的合作方谈判对接以及协调。
他们又都很看中沈时玖的这个设计点子,想把这个游戏做好,甚至已经开始考虑采抢先体验模式先上线。
因此对外的很多杂事,都是木晨曦在对接处理,而他还要负责总体进度的推进,还要随时保持着对开发成本的敏感。
方敏抒知道做生意做事业要细心,但是游戏行业她不熟。
木晨曦跟她说,游戏这个东西很容易因为开发团队自我膨胀,自己给自己画饼,而导致系统过于庞杂,实现难度过大,最后死于成本暴增,所以他必须随时考虑着,什么功能要,什么功能不要,什么细节可以花钱花功夫去做,什么细节可以靠视觉欺骗糊弄过去。
玩家是去玩游戏的,注意力只会放在游戏的主要方向上,因此那些增加氛围感和细节的部分,就可以考虑用简单的办法去糊弄。
所谓的优化,很多时候其实也就是大型糊弄技术。
2d游戏也许它不怎么吃显卡显存,但是因为在图形方面省出来大量的资源,开发者也会把主意打到cpU身上去。
游戏里的单位多了,主循环运转一次,需要处理的数据量就多,依然会非常考验开发者的性能优化能力。
譬如,《Rimworld》里的殖民地有了十六个居民,养了五百只鸡,主循环执行一次,就要检查五百只鸡的状态,扣减饱食度,扣减营养值,然后根据数值的变化,由观察者observer来决定鸡的行为树或者状态机是不是需要切换。
这就是跑不了的五百次for循环。
如果是最原始复古的设计,for循环占用进程,那么势必会减少单位时间内的渲染次数。
渲染次数减少,对玩家来说,就是掉帧,卡顿。
如果还有对象没有及时回收,那又会导致内存泄露以至于最终游戏崩溃。
而为了实现在村子里养殖许多的鸡,就要想办法不让鸡的for循环干扰渲染,就要想办法利用cpU的并行能力。
那么就要走到多线程或者并发的道路上去。
用上了多线程或者并发之后,又会产生死锁,争用这样的问题,导致程序直接闪退或者卡死。
多线程的渲染是相似的,但多线程的游戏逻辑则各有各的多线程……
多线程的渲染有很多泛用性很广的解决方案,但是多线程的游戏逻辑是没有的,因为每个游戏的逻辑都不一样,那就只能是开发者自己去设计。
沈时玖当初因为游戏要处理的单位过多,而每个单位的复杂度又高,困在性能瓶颈上整年前进不了一步,最后近乎到了崩溃的边缘。
那段时间何心深有体会,经常吵架,搞得她一天天也疑神疑鬼的,一度以为两个人的感情要告吹,虽然最后发现是虚惊一场,但其实,她付出了很多坚持。
现在几个人一起来合作这个项目了,设计要求拔高了一些,最难的性能优化部分就落到了木晨曦的肩头上。
上一个小时也许还在和美术外包在沟通风格和素材细节,下一个小时可能就要开始琢磨算法了。这种在不同的心流间切换的感觉有时会很令人烦躁,但敏敏发觉自家老公对此很淡然。
也是,多难的日子他都过来了,这对他来说又算得什么呢?
这一段时期,木晨曦一周七天班地忙着,游戏也不玩了,电钢也不玩了,只要不驻唱和开演唱会,每天敏敏都要坐地铁去孵化园接他下班。杨小满对此“意见很大”,说自己见天儿吃狗粮,其实她自己有空的时候又带着警察哥跑博德之门的团。
整一个半斤八两。
而何心则并不和敏敏一起去孵化园接沈时玖,晚上他们下班的时候,何心一般都在忙。
这天孵化园里又只剩下他们三个人。
时间已经到了晚九点。
木晨曦吁了一口气,伸了个懒腰,然后按下了F5键。
“这一次应该没有什么问题了。”
小满在写脚本,累了一天本来也不是很专心,就扭头凑了过来,“那我看一看。”说完就掰了一下显示器。
沈时玖也停下了手里的活,“这次应该可以了吧?”
木晨曦搓着下巴,“我觉得应该可以了,看看结果。”
编译完成,屏幕边上出现了资源监视窗——
【内存788mb,cpU占用42%】
这是刚启动时的资源占用。
然后木晨曦进入游戏,打开了控制台,手指缓慢但有节奏地按着键盘,输入他们自己编制的控制台指令集。
【\/add -unit sheep 2000】(增加单位绵羊,2000只)
【\/unit status set -dead forbidden】(单位状态设置,禁止死亡)
屏幕上立刻出现了两千只绵羊,默认分配给玩家。
内存占用立刻来到1936mb,cpU占用也很快飙升到了58%。
三个人都看着游戏界面右上角的帧率,还是维持60帧没变。
木晨曦说,“感觉这次有戏。”
“cpU占用过六十五了。”小满说,“看看线程数。”
木晨曦切进cpU资源监视窗。
“哇哦,”沈时玖赞叹了一声,“七十六个线程,两千只绵羊也没卡。”
木晨曦嘴角挑了挑,“不错。”
小满说,“很不错了,这么复杂的逻辑做多线程,没有绷。”
木晨曦说,“那就再加压。木木镇同时处理的实例才几十个,这个游戏随随便便就上千了。”
小满说,“那试试,加吧,把鸡和鸭都加上去。”
他们又测了一阵,最后加到近五千个单位以后,线程数上了百,cpU的散热风扇呼呼转起来,游戏的帧率也开始下降了。
木晨曦松了一口气,“我觉得这个性能是可以满足设计要求的了。游戏不复杂,主要是为了减轻玩家的负担,自动化的逻辑多一些。你觉得呢?九?”
沈时玖说,“性能肯定是够了。”
他此刻心里是庆幸,庆幸这个游戏有好朋友一起来搞,不然他自己不知道要琢磨到什么时候才能解决掉这个技术问题。
木晨曦和小满却对此并不在意,个个游戏都有坑,坑坑不一样,都是爬过坑的人,也就不怕坑了。
“来吧,”木晨曦说,“看看你的文案。”
“好。”
沈时玖正要去拿,小满却反对道,“看什么看,几点了,下班了!”
众人这才看了时间,都已经快九点半了。
这时木晨曦的手机响了,小天后的电话打了进来。
另外俩人早见惯了这对恩爱夫妻,窃窃笑着看他接电话。
木晨曦一接起来就说,“我们刚搞完,马上就下来。”
电话那头的敏敏说,“我已经上来了。”
“啊?”
他们抬起头就看见敏敏拿着电话,笑盈盈地出现在孵化园大厅的另一头。