關于版本優化的相關建議很多人經常說:我和別人是一樣的版本,為什么我的游戲卡,他的游戲不卡,是不是你們引擎不行?其實道理很簡單。拋開服務器質量的緣故,以及引擎自身的不足,版本導致的游戲卡占了很大的比重。下面就如何對版本進行優化做一點簡要的說明。僅供大家參考。
【關于M2的相關設置】
1、M2選項-性能設置-怪物處理控制-處理間隔。
數字越大,怪物行動越遲鈍,CPU占用越低。
數字越小,怪物行動越靈活,CPU占用越高。
這里的CPU的高低,大家都明白,是決定游戲是不是卡的緣故之一。
2、很多游戲爆出裝備的時候。事無巨細,甚至某種85合擊的版本一瓶太陽水掉落在地上,也要全服公告。這樣的文字提示,肯定也會給M2增加負擔,建議取消這些無意義的物品掉落提示。
【關于怪物的刷新】
D:\Mirserver\Mir200\Envir目錄下的MonGen.TXT文本為怪物刷新腳本。這個腳本看起來很簡單。[地圖 坐標X 坐標Y 怪物名字 刷新范圍 刷新數量 刷新時間]表面上看按照這個格式對號入座即可了,其實不然。
很多人寫版本圖省事,所有的怪物一律統一刷新時間,BOSS全部30分鐘一刷新,小怪全部10分鐘刷新一次。如果你全部設置了10分鐘一刷新,那么M2每10分鐘就要全局的檢測一次,目前所有游戲里存在的10分鐘刷新的怪物數量與MONGEN中設置的是否相符。如果不相符會補齊,要在一個時間內同時做出這么多的檢測,M2的負擔可想而知.建議將這些怪物的刷新時間分散開,比如11分鐘 12分鐘。這樣M2在一個時間內執行的檢測與補充就會少一些,運算負擔就會減少一些。
有些人寫版本把一個地圖內所有的怪物刷新坐標點全部設置在一個位置。這樣的話,M2的分析處理能力勢必會被拖累。,刷新坐標點也都區分開,一個坐標不要刷新太多的怪物。否則你也會出現,本來設置刷100只怪,結果只有60只。
還有一些版本只有50~60個人玩,但是刷怪設置了5~6萬只怪,那么平均折合一個人要消滅掉1000只怪,這現實嗎。肯定不可能的。沒事兒的時候大家可以對比一下,游戲在刷新1萬只怪所產生的CPU占用大小與刷新5萬只怪所戰勝的CPU占用大小,那絕對是5倍的數值。
還有關于游戲自助刷怪升級的腳本,這個腳本千萬盡量不要存在在游戲里,這個是一個坑爹的功能。尤其刷怪練級的腳本。當幾個刷怪NPC在哪里不停的刷的時候,M2負擔極大,游戲不可能不卡。
【關于機器人腳本】
D:\Mirserver\Mir200\Envir\Robot_def目錄下為機器人腳本。
AutoRunRobot.txt為觸發命令腳本
RobotManage.txt為執行命令腳本
當觸發命令腳本中一秒一執行的命令出現的情況下、游戲就會變卡,并且游戲里玩家越多,將會余越卡,建議大家取消掉1秒一執行的機器人腳本,如果有必要存在的話,那么修改為5秒,乃至10秒等延長時間。
【關于個人定時器】
很多版本中的個人定時器使用的很不科學、上線就開始觸發個人定時器,搞一個安全區在線泡點,并且一秒一執行,當人多的時候一起執行當然會非常卡。尤其玩家在帶著個人定時器等計時命令的時候,在進行PK或者打怪等動作的時候,就需要通過游戲網關向M2不停的傳送數據,M2在不停的分析數據反饋給游戲網關上的玩家,這樣一來,M2的負擔大了,游戲自然就變卡了。
建議取消:安全區泡點,將泡點最好劃分開不同地圖,盡量一個泡點地圖里不要存在太多的人。這樣游戲就不會那么卡了。
另外:很多人的個人定時器都是1秒一循環。然后給100萬經驗。建議大家轉換個思路,修改為5秒一循環,給500萬經驗。這樣循環的次數少了,M2的負擔就減輕了。
【關于GOTO的使用】
GOTO越多,游戲的循環會越多。有些版本表面看著很簡潔。使用了很多GOTO,其實這樣一來循環就會很多。大家都知道當計算出現死循環的時候,系統是直接崩盤,那么游戲出現死循環的時候,會直接M2死掉。能用DELAYGOTO替代的盡量用這個替代,不能用這個替代的盡量用其他思路取代。
能在當前腳本完成的功能盡量不要#CALL到別處完成。減少GOTO使用率對于版本優化是一個很重要的一步。
盡量優化版本,而不是通過修改M2(!Setup.txt) ScriptGotoCountLimit參數,讓GOTO一直執行,太多GOTO會使M2直接關閉
【關于版本中的NPC】
有的GM總說自己的游戲加載的時候好慢,或者關閉的時候好慢。這些人的游戲里NPC刷新達到600~700個。這些NPC有多少是沒有用的?有多少NPC是玩家一輩子都點擊不到的?加載這些東西,然后在保存這些NPC產生的數據,會不浪費時間嗎?如果這些NPC里留下一個小小的后門,你找出來是不是也浪費你的腦細胞啊?
【關于查看游戲中玩家的私聊記錄】
不建議開啟
|
|