亲,欢迎光临天天书吧!
错缺断章、加书:站内短信
后台有人,会尽快回复!
天天书吧 > 都市言情 > 春寒料峭时的相遇 > 第331章 多线程逻辑
  • 主题模式:

  • 字体大小:

    -

    18

    +
  • 恢复默认

那一段时期夫妻俩的生活虽然很紧凑,木晨曦每天都要忙着处理《星梦森林夜》的各种各样的杂事,完全已经没有之前他自己开发游戏时候的那般自在了。

以前他可以自己安排自己的事情,可以坐下来写代码一写写一整天,也可以用整块整块的时间来画素材,写文本。

现在不可以了,并不是他不需要再写代码,而是有很多向外对接的事情需要他自己去处理。

文本和设计有沈时玖在做,代码有小满做,他们两个都不擅长和外面的合作方谈判对接以及协调。

他们又都很看中沈时玖的这个设计点子,想把这个游戏做好,甚至已经开始考虑采抢先体验模式先上线。

因此对外的很多杂事,都是木晨曦在对接处理,而他还要负责总体进度的推进,还要随时保持着对开发成本的敏感。

方敏抒知道做生意做事业要细心,但是游戏行业她不熟。

木晨曦跟她说,游戏这个东西很容易因为开发团队自我膨胀,自己给自己画饼,而导致系统过于庞杂,实现难度过大,最后死于成本暴增,所以他必须随时考虑着,什么功能要,什么功能不要,什么细节可以花钱花功夫去做,什么细节可以靠视觉欺骗糊弄过去。

玩家是去玩游戏的,注意力只会放在游戏的主要方向上,因此那些增加氛围感和细节的部分,就可以考虑用简单的办法去糊弄。

所谓的优化,很多时候其实也就是大型糊弄技术。

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的散热风扇呼呼转起来,游戏的帧率也开始下降了。

木晨曦松了一口气,“我觉得这个性能是可以满足设计要求的了。游戏不复杂,主要是为了减轻玩家的负担,自动化的逻辑多一些。你觉得呢?九?”

沈时玖说,“性能肯定是够了。”

他此刻心里是庆幸,庆幸这个游戏有好朋友一起来搞,不然他自己不知道要琢磨到什么时候才能解决掉这个技术问题。

木晨曦和小满却对此并不在意,个个游戏都有坑,坑坑不一样,都是爬过坑的人,也就不怕坑了。

“来吧,”木晨曦说,“看看你的文案。”

“好。”

沈时玖正要去拿,小满却反对道,“看什么看,几点了,下班了!”

众人这才看了时间,都已经快九点半了。

这时木晨曦的手机响了,小天后的电话打了进来。

另外俩人早见惯了这对恩爱夫妻,窃窃笑着看他接电话。

木晨曦一接起来就说,“我们刚搞完,马上就下来。”

电话那头的敏敏说,“我已经上来了。”

“啊?”

他们抬起头就看见敏敏拿着电话,笑盈盈地出现在孵化园大厅的另一头。