Project1

标题: 【插件】优化事件过多造成的卡顿(2024.6.25更新) [打印本页]

作者: kyjoke    时间: 2024-4-9 21:41
标题: 【插件】优化事件过多造成的卡顿(2024.6.25更新)
本帖最后由 kyjoke 于 2024-9-11 15:19 编辑

通过重写事件的更新函数,分出渲染帧和逻辑帧,
并且使用曼哈顿算法来判断事件和玩家的距离。
距离越远的事件刷新频率将成倍降低,从而实现动态资源管理
用人话来说,在距离玩家远处的事件,
可能十帧才运行一次内部逻辑,而在玩家近处的事件则实时更新
同时为了让玩家肉眼无法察觉,哪怕这个事件十帧有九帧不运行
也会一直更新事件的图像和移动,来让玩家觉得运行流畅



-2024.6.25更新v1.3-修复了插件会导致所有事件停止更新



以下是我设计的压力测试,可以看到一共是126个事件组成的怪海。这不但加了QABS战斗系统
更添加了

Qsight 会让AI判断前方的障碍物
QPathfind 会让AI进行寻路

大家都知道寻路算法和视线算法有多么的消耗资源

在不开插件的情况下 即使在怪海的边缘帧数也只有3-5帧

而在开了插件的情况下 怪海边缘帧数稳定在50帧左右 即使被怪包围帧数也在20帧左右浮动



KY_Optimize.zip (1.42 KB, 下载次数: 105, 售价: 5 星屑)
作者: 余杭    时间: 2024-4-9 22:00
事件里面
this._trigger === 4
表示这事件的当前事件页为并行
作者: kyjoke    时间: 2024-4-9 22:11
余杭 发表于 2024-4-9 22:00
事件里面
this._trigger === 4
表示这事件的当前事件页为并行

OK待会我测试更新一下
作者: 灯火长明    时间: 2024-5-6 12:08
本帖最后由 灯火长明 于 2024-5-6 12:11 编辑

楼主代码写的有点问题,我给优化了下

{7631EA62-D63E-41af-8281-9501FD049C98}.png (112.38 KB, 下载次数: 21)

{7631EA62-D63E-41af-8281-9501FD049C98}.png

作者: 清澈淌漾    时间: 2024-5-6 12:54
这种量我建议你参考东方的弹幕算法去做,把一片有规律的怪变成一个实例去更新,而不是一个单位一个实例
作者: kyjoke    时间: 2024-5-7 14:18
清澈淌漾 发表于 2024-5-6 12:54
这种量我建议你参考东方的弹幕算法去做,把一片有规律的怪变成一个实例去更新,而不是一个单位一个实例 ...

这很蛋疼,因为rm光是维持渲染就消耗了大量的性能,我已经试过了维持渲染但是还是会非常卡,所以只能暴力的优化一下(除非优化渲染层)。至于你说的把一片有规律的怪变成一个实例去更新我感觉要重写很多东西,而且事件的逻辑非常复杂,我目前只能尝试维持事件的正常移动
作者: kyjoke    时间: 2024-5-7 14:20
本帖最后由 kyjoke 于 2024-5-7 14:29 编辑
灯火长明 发表于 2024-5-6 12:08
楼主代码写的有点问题,我给优化了下


好的,感谢。话说刚刚看了大佬你的任务插件帖子为啥作废了?我还在用你这插件还等着你更新呢
作者: Angie丨    时间: 2024-5-7 21:23
大佬有没有对所有事件优化卡顿的版本?事件多了,地图大了,就非常卡,特别是ABS敌人战斗
作者: kyjoke    时间: 2024-5-7 23:36
Angie丨 发表于 2024-5-7 21:23
大佬有没有对所有事件优化卡顿的版本?事件多了,地图大了,就非常卡,特别是ABS敌人战斗 ...

这版本不就是对所有事件吗?我预计在下个版本加个标签过滤器来过滤不需要被优化的事件(比如说发射的子弹)
作者: kyjoke    时间: 2024-5-8 22:07
好了,重大更新好吧。现在渲染帧分离完善了,哪怕距离很远也不会看起来一卡一卡的
作者: 马铃薯条    时间: 2024-5-9 10:42
牛逼啊大佬
作者: 灯火长明    时间: 2024-5-9 17:38
kyjoke 发表于 2024-5-7 14:20
好的,感谢。话说刚刚看了大佬你的任务插件帖子为啥作废了?我还在用你这插件还等着你更新呢 ...

我重构了个用于mz的任务插件,mv的话不打算兼容了
作者: zimu97    时间: 2024-6-26 19:41
这个插件我好像用不了
作者: kyjoke    时间: 2024-6-26 20:40
zimu97 发表于 2024-6-26 19:41
这个插件我好像用不了

...你不会指的是mz吧?这个插件重写的地方有点太多了
作者: 盏月ZY    时间: 2024-7-27 19:40
好东西,试试看
作者: kyjoke    时间: 2024-8-1 02:18
盏月ZY 发表于 2024-7-27 19:40
好东西,试试看

有bug,修不好()先别用
作者: l734273398    时间: 2024-8-20 14:33
大佬,可以用在MZ不
作者: kyjoke    时间: 2024-8-24 09:21
l734273398 发表于 2024-8-20 14:33
大佬,可以用在MZ不

我只能说。。应该不行,而且肉眼看起来非常奇怪。我最近是没什么思路把这个改好了,要不是论坛不能删帖我早删了




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