Project1

标题: 关于游戏越来越卡顿的问题(已解决) [打印本页]

作者: kittyblain    时间: 2018-6-21 17:35
标题: 关于游戏越来越卡顿的问题(已解决)
本帖最后由 kittyblain 于 2018-6-22 00:02 编辑

事件党一个,还做的是动作射击类的游戏,游戏做了几年,各种公共事件普通事件已经很多很多了,导致
游戏运行起来越来越慢,不知道有没有什么方法可以解决一下呢?

是不是某些执行内容特别容易让游戏卡顿?比如频繁更换角色的行走图,或者频繁的等待几秒之类?
作者: RaidenInfinity    时间: 2018-6-21 20:10
本帖最后由 RaidenInfinity 于 2018-6-21 21:54 编辑

更换行走图和等待并不是造成卡顿的原因。
基于事件的动作射击类游戏,并行事件用得很多,对吧?

造成卡顿的主要问题在于并行事件(不管是公共还是地图上的)。它的存在对游戏的运行来说是一个累赘。
(这也是为啥能用脚本就用脚本,不会脚本也得学脚本,尽量避免万恶的并行事件)
为什么呢?事件指令都是由一个“解释器”来处理的。地图里内置了一个主要的解释器,主要是处理当前触发中的事件(自动,碰撞,按确定键等)。
一个解释器同时只能处理一个事件。并行事件之所以叫并行就是要同时运行多个事件的指令。那要怎么办?一个并行事件一个解释器呗。
20个并行事件就20个解释器。多起来这就卡了。当然,再深入的原因是有的,就怕看不懂。

第二个造成卡顿的问题,就是同一地图上的事件数量过多,虽然不太明显。为什么呢?
每个事件的每一页,每帧(一秒有60帧,也就是16.67微秒。如果游戏无法在一帧内完成逻辑判定和绘制操作,就会出现肉眼可见的卡顿)都会有一次判定(直到找到适合的页面为止)。20个事件,每个4页的话,(最多)就80次了。如果是并行的话,噢,那会更糟。

所以解决方法是什么?
一,就是少用并行事件也少在地图里放事件。虽然貌似对于已经在制作后期的游戏来说很困难,但这是没办法的事情。
二,你可以尝试使用“防卡脚本”。这类脚本插件的主要功能是“冻结”屏幕外的事件。但是如果同一画面中很多事件,那可能会帮不了多少。
Theo - 终极防止卡顿 https://rpg.blue/forum.php?mod=viewthread&tid=405900
MOG - 防止事件卡顿 https://rpg.blue/forum.php?mod=viewthread&tid=404764

作者: kittyblain    时间: 2018-6-21 23:07
RaidenInfinity 发表于 2018-6-21 20:10
更换行走图和等待并不是造成卡顿的原因。
基于事件的动作射击类游戏,并行事件用得很多,对吧?

一个事件里有一个解释器,那么是不是可以通过把大量功能尽量放到一个事件页里来运行来减少事件总数量
来减轻运算压力呢?能用一个事件就不要分成两个?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1