作者gonzdevour (吞食)
看板WarCraft
標題[WE]SLK優化的故事
時間Sat Jul 12 07:32:42 2008
SLK優化,
簡單來說就是將魔獸地圖裡的物件資料轉換為SLK與TXT格式的程序。
由於魔獸處理SLK資料比處理WE本身所建立的物件資料快得多,
因此經過SLK優化的地圖,讀取時間就能大大縮減。
幾張熱門地圖如OS、先前的三國、信長,各自在某版本後讀取速度突飛猛進,
就是SLK優化程式的成果。
這種優化方式應該可溯源於俄國人True.Rus,
一開始他的做法並不是將所有物件資料轉換為SLK,
而是將地圖資料中零亂的字串正確排列至.txt檔,
(這裡印象可能有錯)
因為魔獸讀取整理好的.txt檔,仍然比直接讀取WE生成的地圖資料快速,
所以創造了DotA Allstars 5.84c的高速讀取傳說。
然而由於True.Rus的盜圖行為,他的努力不被官方承認,
Allstars官網甚至明文規定,討論涉及5.84c者必刪。
OS5.84c之謎持續了好一段時間,
接著True.Rus在某些WE討論區透露了他的方法。
(他也公開發佈自己的工具叫作Inliner,不過那是很後來的事。)
我認為理論是一直存在的,MPQ的運作早被一些玻璃渣的老玩家摸透,
只是當時還沒有人投入實作,而True.Rus又以當紅的OS為目標,所以一舉成名。
方法公開後,其他的高手開始對加速讀取感興趣,於是推動了Widgetizer的誕生。
Widgetizer,SLK優化程式的第一個成品,作者PitzerMike。
這件工具對英語系WEer而言是天大的福音,
更精確地說,這幾乎成為OS量身訂作的優化工具。
我幾乎是剛完成的時候就一直跟著相關的討論串,
然而很明顯該程式對藍綠大戰毫無效果。
它有兩項致命的限制:
1. 它不支援非英語系地圖
2. 它不支援超過4級的技能優化
雖然很多人要求PitzerMike修改為可支援Unicode,
並且希望能夠處理超過4級技能的問題,
然而PitzerMike兄總是不為所動,
因此依Widgetizer問世而受益的地圖,有名的大概就只有NOTD跟OS兩張。
(不知為何,對戰地圖總是出現自然獨占現象也就罷了,
但使用新技術所得到的掌聲也會全歸熱門地圖所有,
無論國內外皆如此。)
這時有些人開始尋找如何讓此程式用於非英語地圖的方法,
然而高手經常諱莫如深,能google到的討論鳳毛麟角,
最後我是從hobill手上拿到一份做法,
但一來該做法繁複到不合乎地圖改版的時間效益,
二來也沒聽說過哪張非英語地圖運用該做法得到成功,
所以我是以放棄作結。
(其間一個比較特別的事件是中國那邊有人釋出了Widgetizer的漢化版,
興沖沖地實驗後發現只有介面漢化,同樣毫無效果。)
Widgetizer釋出是2006年1月的事,
漢語WE使用者能夠真正進行SLK優化,則要到2007年9月:
U9,中國目前最有名的WE討論站所在處,
發佈了名為「U9MapOpt」的SLK優化器。
即使從討論串的人氣上看不太出來,但我認為這是一個極具代表性的工具。
它解決了上述的語系問題和技能等級問題。
當然,或許受限於魔獸的讀取方式,所謂等級問題的解決方法,
是把前4級轉換為SLK,其他仍然放回WE生成資料中,
但這不妨礙它確實地使讀取速度增快許多的結果。
U9MapOpt的作者Shasure(南南)非常認真,
每一則BUG回報都會回覆處理,
因此U9MapOpt從初版的物件消失與斷線分流各式問題中走了出來,
成為一個穩定的SLK優化程式,
以台灣的熱門地圖來說,三國以及前些日子的新版信長都是使用這個程式。
最近此程式做了一些介面簡化,改稱為「U9優化精靈」,
同時增加了MPQ鎖圖的新功能。
http://bbs.uuu9.com/viewthread.php?tid=1375231&extra=page%3D1
基本上,三國以及信長前幾版,1.22會讀取到一半就跳出,
與這個優化程式脫不了關係。
由於U9優化精靈的新版本已修正此BUG,所以三國的問題應該很快就會解決。
最後,我想介紹一款名為Wc3MapMax++的軟體。
雖然可能對Shasure來說很抱歉,但事實擺在眼前,
2008年6月以後,U9地圖優化精靈就已經不再是U9最好的SLK優化程式。
Red_Wolf,老狼,中國WE界非常資深的超級高手之一,
(有趣的現象是:超級高手會留下教學與工具,
圖卻常常一張完整的都做不出來......)
他本來把Wc3MapMax++初版當作玩WE最後的創作,
最近似乎又燃起鬥志,稍微積極地更新起來。
U9優化精靈的使用耗時甚久,以藍綠為例須約10分鐘完成,
而且U9優化精靈目前不支援WTS優化,所以join game時會產生明顯的停頓;
反之Wc3MapMax++可同時進行WTS優化,最近又完成了圖檔、模型檔等等的壓縮功能,
所以在地圖容量、讀取加速、進入遊戲三方面都有明顯的優勢。
此外,對地圖作者來說,同樣重要的是優化時間,
Wc3MapMax++的作業僅耗時約8秒!
優化時間極小,對於作者自己進行地圖測試的好處很大,
像藍綠這樣物件與觸發數量以千百計的地圖,
在WE上直接按下test map後,原始檔大概需要15分鐘才會載入完成,
這段時間電腦被占著完全無法動作,造成時間的高度浪費。
如果優化只需要8秒,那麼優化後再進行測試就變成可行的方案。
雖然我沒有跟FN確認過,
但信長最新的幾個版本很可能就是使用Wc3MapMax++;
證據是信長的新版進入1.22後並未出現如同三國的優化問題。
不過Wc3MapMax++畢竟沒有U9官方工具的地位,
所以總是被U9的廢水淹沒,今天去找已經掉到第三頁以後了:
http://bbs.uuu9.com/viewthread.php?tid=1357749&extra=page%3D3
我不清楚上述兩位U9的優化程式作者對彼此的看法是什麼,
希望他們能夠持續地良性競爭,如此後來的WEers才有更多好東西可用。
以上,就是SLK優化的故事。
一般來說,地圖作者都是一個人,
所謂的「製作團隊」只存在於玩家的想像中;三國、信長不外如是。
然而,一張地圖的完成往往包含許多無名英雄的智慧結晶,
這種只為熱血不求回報的集體創作,乃是WE最重要的精神。
兩年多以來,SLK優化的進展可為明證。
--
うまれて、すみません。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.54.190
※ 編輯: gonzdevour 來自: 203.73.54.190 (07/12 07:34)
推 ahinetn123:大推!!! 07/12 07:35
推 boyen3:好文 07/12 07:39
推 Kendai:推推 07/12 07:41
推 Luckyo:讚! 07/12 07:45
推 gaflight:推倒...阿不.....推爆 07/12 07:45
推 blackjack0s:卻常常一張完整的都做不出 ← 中肯 07/12 07:48
→ blackjack0s:高手都要留下教學 devour要留下ai教學嗎 我看不太懂囧 07/12 07:50
推 robinzzz:大推! 07/12 07:56
推 HypocritePro:推 優化程式為我所不及的領域 在熱心前輩幫助下受益 07/12 08:01
→ HypocritePro:良多 非常感激!!! 07/12 08:02
推 B0Y0:好像看小說 推推 07/12 08:06
推 NEOERIC:推阿 07/12 08:25
推 Drunkenman:可是我玩信長D2版有時還是讀不進去.. 07/12 08:26
推 svcchaos:大推 看你的文章好順暢好有趣 忍不住一口氣讀完 07/12 08:28
推 ilove305mmm:推 07/12 08:51
推 mw1128:推 07/12 08:56
推 vice909:推~大大的增加了我對地圖優化的知識 07/12 08:58
推 maplemeowcat:讓我不自覺的就按了推阿 07/12 09:08
推 mein:推一個 受教了 07/12 09:11
推 lafel:推 07/12 09:53
推 yourboss:長知識推 07/12 10:06
推 pikaaco:推 07/12 10:07
推 wotupset:不推 有違鄉民魂啊 07/12 10:09
推 Gemani:推 07/12 10:32
噓 gjack:討厭"優化"這種對岸用法,為了少打一字,不願用"最佳化"一詞? 07/12 10:33
推 kuolarry:樓上想紅也別這樣 優化不一定是最佳化吧 07/12 10:35
推 lafel:樓樓上...你不覺得優化這詞用的還不錯嗎? 07/12 10:36
推 elic:推推推 07/12 10:38
推 etgees:GOOD 07/12 10:49
推 kevinlai29:幫推~~ 優化哪裡錯?! 其實我按end了... 07/12 10:50
推 eva7493:意義上優化可能比較合 因為不會是最佳XD 07/12 10:51
→ eva7493:雖然我也不太喜歡對岸詞彙@@ 07/12 10:51
推 TaiwanFlight:"優化" 比"最佳化"有感覺阿 07/12 10:54
→ gonzdevour:幾年前我也是看到「漢化」就倒彈;但仔細思考後會發現, 07/12 10:55
→ gonzdevour:中國的某些詞語使用方式似乎較為精確。 07/12 10:56
推 srewq:大推!!!!!! 07/12 10:59
推 SGBA:推 07/12 11:01