作者mistwvearn (Denyrmo)
看板RPGMaker
标题[问题]VX的平行并列处理之流畅度问题...
时间Mon Feb 8 17:25:40 2010
正好看到有人提到vx的地图事件过多会影响游戏效能就顺便上来问一下...
个人目前正在用vx做一款「不思议迷宫」类型的游戏。
因为语法不很熟,
所以基本上是用事件编辑器+RGSS混着作
目前进度大概只完成随机迷宫、敌人AI的行动判断和基本控制
不过在给朋友测试的时候却遇到了lag(不流畅)的问题...
游戏中只使用了两个平行并列处理:
1.随时更新并比较主角的座标,用来判定主角「是否移动过」,
用来连动小地图的描绘,还有轮到敌人行动的判定。
2.用来检测自订按键是否被按下,例如asd等呼叫自制选单的按钮。
地图事件方面,设置了20个地面道具、和20个敌人角色共40+n个地图事件
(n是其他零星的少数地图事件,不超过10个)
但是跑起来却是意外的顿...不知道有没有什麽能够优化的方法或建议?
附上目前的进度档案以资诊断(直接试跑档,不含RTP)
http://www.megaupload.com/?d=9CA904RK
按键:
A呼叫选单(目前只完成「道具」项目)(道具介面目前也只能用z交换或搬移道具位置)
S斜向移动、D原地转向、Q切换小地图显示、
W显示全迷宫地图(处理大概会花上2-3秒,基本上只是懒得拿掉的测试用按键..)、
E刷空讯息栏
以上,有请各位前辈帮忙监定看看能怎麽优化,感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.168.111.44
推 rod24574575:有时候并行处理跑不动时,我会放个等待0.1秒 02/08 17:59
→ rod24574575:在会一直重复执行的部份,通常能稍微纾缓一下 02/08 18:00
→ rod24574575:执行时的LAG程度
这招有效,在两个平行并列都放了个6祯的等待,情况有确实改善。
不过朋友的意见好像还是不够顺 囧
如果再把等待祯数提高到10祯的话,按键反应会变很迟钝(容易按了没有反应)
总之还是先谢过哩XD
1F:→ dephille:地面上的事件好像影响速度蛮多的。 02/08 19:08
2F:→ dephille:KGC software那边有一个地图轻量化脚本,不知有没有用... 02/08 19:10
呣,如果是的话「マップ軽量化 - KGC_MapLightening」这个脚本的话有放进去了
不过不知道是不是我一开始做的时候就先放的关系,不知道差在哪XD
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/08 23:35)
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/08 23:37)
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/08 23:38)
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/09 00:57)
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/09 02:31)
3F:推 exaliceyuan2:不知道有没有直接侦测↑↓←→是否被按到的事件呢XD? 02/09 19:01
4F:→ exaliceyuan2:这样的话只有在↑↓←→被按的时候才会处理 02/09 19:01
5F:→ exaliceyuan2:也许会快很多...吧XD? 02/09 19:01
6F:→ exaliceyuan2:不过我不知道有没有这种事件拉XD 02/09 19:02
7F:→ exaliceyuan2:最近都一直在写剧本没碰RM...orz 02/09 19:02
8F:→ exaliceyuan2:还有放等待时间是为了让小地图的处理不要太频繁吧? 02/09 19:03
9F:→ exaliceyuan2:所以好像不用两个事件都放XD? 02/09 19:04
刚刚想了一下才读懂您的意思
这方法可以整整省掉一个平行处理,大感谢XD
目前以e大的方法,精省到只有一个平行并列处理
「侦测是否按下包含↑↓←→在内的其他自订按键」
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/10 00:17)
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/10 00:35)
10F:推 exaliceyuan2:也许你可以先缩小问题范围?先关掉其中一个事件 02/10 00:36
11F:→ exaliceyuan2:然後看有没有改善很多,再针对拖垮效能的那个事件 02/10 00:37
12F:→ exaliceyuan2:作更深入的研究呢XD? 02/10 00:37
13F:推 exaliceyuan2:我相信如果只有小地图功能不会累格啦XD 02/10 00:44
14F:→ exaliceyuan2:因为我以前就看过RM03'的作品有小地图且不累格的XD 02/10 00:44
刚刚把小地图暂时移掉测试,看起来小地图没啥影响 囧
每个事件都暂时移除过实验後,
推测影响最大的似乎是每一步都要「分别计算、并让每只怪作动作」的这部份...
我再来想想看能怎麽处理这部份...
十分感谢回文的诸位先进指导(__ __)
(如果还有想到别的精简方法,也仍请不吝指教^^")
顺带一问,假定AB两事件
A事件共100行指令
B事件本身只有10行指令,但是会接连呼叫事件C.D.E.F...最後执行的指令总数同是100行
那麽B事件跑起来是否会比A事件更为耗时/吃资源呢?
※ 编辑: mistwvearn 来自: 118.168.111.44 (02/10 01:28)
15F:推 exaliceyuan2:会多一点点,就像recursive通常比loop还要慢一点点 02/10 11:04
16F:→ exaliceyuan2:不过如果不是很致命的多且分成CDEF写比较好懂的话, 02/10 11:05
17F:→ exaliceyuan2:分开来写还是比较好XD 比较好debug和扩充功能 02/10 11:06