[問題]VX的平行並列處理之流暢度問題...

看板RPGMaker (RPG製作大師 - RPG Maker)作者 (Denyrmo)時間15年前 (2010/02/08 17:25), 編輯推噓4(4013)
留言17則, 2人參與, 最新討論串1/1
正好看到有人提到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:59rod24574575:在會一直重複執行的部份,通常能稍微紓緩一下 02/08 18:00 rod24574575:執行時的LAG程度 這招有效,在兩個平行並列都放了個6禎的等待,情況有確實改善。 不過朋友的意見好像還是不夠順 囧 如果再把等待禎數提高到10禎的話,按鍵反應會變很遲鈍(容易按了沒有反應) 總之還是先謝過哩XD

02/08 19:08, , 1F
地面上的事件好像影響速度蠻多的。
02/08 19:08, 1F

02/08 19:10, , 2F
KGC software那邊有一個地圖輕量化腳本,不知有沒有用...
02/08 19:10, 2F
呣,如果是的話「マップ軽量化 - 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)

02/09 19:01, , 3F
不知道有沒有直接偵測↑↓←→是否被按到的事件呢XD?
02/09 19:01, 3F

02/09 19:01, , 4F
這樣的話只有在↑↓←→被按的時候才會處理
02/09 19:01, 4F

02/09 19:01, , 5F
也許會快很多...吧XD?
02/09 19:01, 5F

02/09 19:02, , 6F
不過我不知道有沒有這種事件拉XD
02/09 19:02, 6F

02/09 19:02, , 7F
最近都一直在寫劇本沒碰RM...orz
02/09 19:02, 7F

02/09 19:03, , 8F
還有放等待時間是為了讓小地圖的處理不要太頻繁吧?
02/09 19:03, 8F

02/09 19:04, , 9F
所以好像不用兩個事件都放XD?
02/09 19:04, 9F
剛剛想了一下才讀懂您的意思 這方法可以整整省掉一個平行處理,大感謝XD 目前以e大的方法,精省到只有一個平行並列處理 「偵測是否按下包含↑↓←→在內的其他自訂按鍵」 ※ 編輯: mistwvearn 來自: 118.168.111.44 (02/10 00:17) ※ 編輯: mistwvearn 來自: 118.168.111.44 (02/10 00:35)

02/10 00:36, , 10F
也許你可以先縮小問題範圍?先關掉其中一個事件
02/10 00:36, 10F

02/10 00:37, , 11F
然後看有沒有改善很多,再針對拖垮效能的那個事件
02/10 00:37, 11F

02/10 00:37, , 12F
作更深入的研究呢XD?
02/10 00:37, 12F

02/10 00:44, , 13F
我相信如果只有小地圖功能不會累格啦XD
02/10 00:44, 13F

02/10 00:44, , 14F
因為我以前就看過RM03'的作品有小地圖且不累格的XD
02/10 00:44, 14F
剛剛把小地圖暫時移掉測試,看起來小地圖沒啥影響 囧 每個事件都暫時移除過實驗後, 推測影響最大的似乎是每一步都要「分別計算、並讓每隻怪作動作」的這部份... 我再來想想看能怎麼處理這部份... 十分感謝回文的諸位先進指導(__ __) (如果還有想到別的精簡方法,也仍請不吝指教^^") 順帶一問,假定AB兩事件 A事件共100行指令 B事件本身只有10行指令,但是會接連呼叫事件C.D.E.F...最後執行的指令總數同是100行 那麼B事件跑起來是否會比A事件更為耗時/吃資源呢? ※ 編輯: mistwvearn 來自: 118.168.111.44 (02/10 01:28)

02/10 11:04, , 15F
會多一點點,就像recursive通常比loop還要慢一點點
02/10 11:04, 15F

02/10 11:05, , 16F
不過如果不是很致命的多且分成CDEF寫比較好懂的話,
02/10 11:05, 16F

02/10 11:06, , 17F
分開來寫還是比較好XD 比較好debug和擴充功能
02/10 11:06, 17F
文章代碼(AID): #1BRzYNm4 (RPGMaker)
文章代碼(AID): #1BRzYNm4 (RPGMaker)