设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 568|回复: 16
打印 上一主题 下一主题

[原创发布] 【插件】优化事件过多造成的卡顿(2024.5.8更新)

[复制链接]

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
跳转到指定楼层
1
发表于 2024-4-9 21:41:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 kyjoke 于 2024-5-8 22:09 编辑

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



-2024.5.8 优化了部分代码,
增加了备注过滤器,增加了维持事件正常移动
增加了一个清除未使用的bitmap的功能
完善了渲染帧逻辑,现在即使距离很远肉眼也看不出来事件变慢。

-2024.4.9更新v1.1-现在只对并行处理的事件生效(防止自动执行变慢)



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

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

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

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

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



卡顿优化Ver1.2.zip (2.51 KB, 下载次数: 44, 售价: 5 星屑)

评分

参与人数 5星屑 +100 +4 收起 理由
马铃薯条 + 1
迷糊的安安 + 100 塞糖
白嫩白嫩的 + 1 精品文章
青衣blackcloth + 1 精品文章
505681468 + 1 塞糖

查看全部评分

Lv3.寻梦者

梦石
0
星屑
3642
在线时间
584 小时
注册时间
2022-11-26
帖子
283
2
发表于 2024-4-9 22:00:16 | 只看该作者
事件里面
this._trigger === 4
表示这事件的当前事件页为并行
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
3
 楼主| 发表于 2024-4-9 22:11:37 | 只看该作者
余杭 发表于 2024-4-9 22:00
事件里面
this._trigger === 4
表示这事件的当前事件页为并行

OK待会我测试更新一下
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1220
在线时间
36 小时
注册时间
2021-11-20
帖子
14
4
发表于 5 天前 | 只看该作者
本帖最后由 灯火长明 于 2024-5-6 12:11 编辑

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

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

{7631EA62-D63E-41af-8281-9501FD049C98}.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4702
在线时间
654 小时
注册时间
2021-3-24
帖子
518
5
发表于 5 天前 | 只看该作者
这种量我建议你参考东方的弹幕算法去做,把一片有规律的怪变成一个实例去更新,而不是一个单位一个实例
全家活光光~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
6
 楼主| 发表于 4 天前 | 只看该作者
清澈淌漾 发表于 2024-5-6 12:54
这种量我建议你参考东方的弹幕算法去做,把一片有规律的怪变成一个实例去更新,而不是一个单位一个实例 ...

这很蛋疼,因为rm光是维持渲染就消耗了大量的性能,我已经试过了维持渲染但是还是会非常卡,所以只能暴力的优化一下(除非优化渲染层)。至于你说的把一片有规律的怪变成一个实例去更新我感觉要重写很多东西,而且事件的逻辑非常复杂,我目前只能尝试维持事件的正常移动

点评

比如10个事件都在做一件事,只有生命不一样,那就意味着你只用一个事件扩大碰撞面积并渲染出多个sp,差不多就这个思路  发表于 4 天前
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
7
 楼主| 发表于 4 天前 | 只看该作者
本帖最后由 kyjoke 于 2024-5-7 14:29 编辑
灯火长明 发表于 2024-5-6 12:08
楼主代码写的有点问题,我给优化了下


好的,感谢。话说刚刚看了大佬你的任务插件帖子为啥作废了?我还在用你这插件还等着你更新呢
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1257
在线时间
179 小时
注册时间
2021-3-19
帖子
9
8
发表于 4 天前 | 只看该作者
大佬有没有对所有事件优化卡顿的版本?事件多了,地图大了,就非常卡,特别是ABS敌人战斗
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
9
 楼主| 发表于 4 天前 | 只看该作者
Angie丨 发表于 2024-5-7 21:23
大佬有没有对所有事件优化卡顿的版本?事件多了,地图大了,就非常卡,特别是ABS敌人战斗 ...

这版本不就是对所有事件吗?我预计在下个版本加个标签过滤器来过滤不需要被优化的事件(比如说发射的子弹)
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
624
在线时间
98 小时
注册时间
2023-11-16
帖子
69
10
 楼主| 发表于 3 天前 | 只看该作者
好了,重大更新好吧。现在渲染帧分离完善了,哪怕距离很远也不会看起来一卡一卡的

点评

那就不用担心,毕竟这是按照事件为基准去判断玩家,而不是按照玩家为基准。玩家只有一个,所以不用进行筛选。  发表于 前天 16:01
这几个算法时间效率差异小,可以看作是三角型不同部分,会因为距离筛选出来的刷新分级不一样,导致的刷新执行效率差异,这是个刷新方案的差异  发表于 3 天前
毕竟算法问题我不是很懂,如果切比雪夫距离效率更高的话我会尝试的  发表于 3 天前
曼哈顿可能不如切比雪夫?  发表于 3 天前
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-11 02:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表