自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

淺析LUA中游戲腳本語言之魔獸世界

移動開發(fā) iOS
早在Lua腳本語言被大眾所熟知以前,游戲業(yè)內(nèi)人士就已經(jīng)開始使用腳本來開發(fā)游戲了。我們熟悉的很多國內(nèi)的網(wǎng)絡(luò)游戲大都運用了腳本開發(fā),

LUA游戲腳本語言之魔獸世界是本文要介紹的內(nèi)容,隨著《魔獸世界》(以下簡稱wow)在世界范圍內(nèi)流行,腳本漸漸被人們所熟知。由于wow強大的自定義界面系統(tǒng),Lua這一腳本語言一舉成名。

其實早在Lua腳本語言被大眾所熟知以前,游戲業(yè)內(nèi)人士就已經(jīng)開始使用腳本來開發(fā)游戲了。我們熟悉的很多國內(nèi)的網(wǎng)絡(luò)游戲大都運用了腳本開發(fā),比如網(wǎng)游的長青樹“夢幻西游和《大話西游2就大量應(yīng)用了腳本技術(shù)。特別是《大話西游2》,其實現(xiàn)基于Lua腳本游戲開發(fā)的時間要遠早于《魔獸世界》。在腳本技術(shù)上,國內(nèi)與國外其實是站在同一起跑線上的,并不存在什么差距,這也為國內(nèi)游戲產(chǎn)業(yè)趕超國外游戲產(chǎn)業(yè)提供了強有力的技術(shù)保證。

在單機游戲時代,腳本這個詞幾乎很少出現(xiàn),那么,為什么在網(wǎng)絡(luò)游戲時代它卻成了業(yè)界的寵兒呢?原因是多方面的。

單機游戲時代,無論游戲主機還是PC機,它們的性能都非常低下,從而需要具有較高執(zhí)行效率的編譯型語言對機器的性能進行“壓榨”。隨著科技發(fā)展和硬件性能的不斷提升,腳本逐漸被開發(fā)者所接受并利用,但這并不是腳本流行起來的決定性因素,真正的原因還在于游戲市場有這方面的需求。

網(wǎng)絡(luò)游戲時代的市場競爭激烈、變化莫測,如果延用單機時代一年半載才出一個新版本的開發(fā)方式,必然會被游戲行業(yè)激烈的市場競爭所淘汰。正是這種游戲市場需求旺盛和開發(fā)工具效率底下之間的矛盾,促使腳本語言迅速地發(fā)展起來。腳本的興起使得傳統(tǒng)編譯型語言(asngC/C )的性能優(yōu)勢在硬件功效大幅攀升的今天已經(jīng)不復(fù)存在。

除了市場和硬件這兩個因素之外,還有一點我們不能忽略。那就是用C/C 進行游戲開發(fā)的高成本和高項目風(fēng)險。隨著java/.net逐漸流行,學(xué)習(xí)C/C 編程語言的人越來越少,而網(wǎng)絡(luò)游戲市場的需求卻越來越龐大,在程序人才大量匱乏的情況下,造成了c,C 人才的高成本。即便是有能力雇傭大量C/C 程序員的公司,在開發(fā)游戲的過程中,也不能無視C/C 的高級特性和高度靈活性帶來的高項目風(fēng)險。C/C 是易學(xué)難精的編程語言,在開發(fā)大型項目的時候由于程序員的水平參差不齊,所以極易造成溝通不暢。不僅如此,c,C 濫用的高級特性也容易引入大量bug。正是由于這些原因,游戲公司開始在游戲中使用腳本,希望通過腳本來解決這些高成本、高風(fēng)險的問題。

二、腳本的現(xiàn)狀

腳本不僅解決了c/C 無法解決的開發(fā)效率難題,還降低了開發(fā)的成本和風(fēng)險。因此腳本技術(shù)在游戲業(yè)內(nèi)蓬勃發(fā)展起來,并且已經(jīng)成為游戲業(yè)中不可或缺的一環(huán)??v觀當(dāng)前腳本技術(shù)現(xiàn)狀,形勢一片大好,不僅語言百家爭鳴,而且書籍種類也越來越多;不僅在游戲業(yè)界開花結(jié)果,在web等其它應(yīng)用領(lǐng)域也大放異彩。

首先,我們來看看目前比較流行的腳本:Python、Lua、ruby和Erlang。Python和Lua是網(wǎng)絡(luò)游戲開發(fā)的中堅力量;ruby憑借rubyonrails的web開發(fā)框架的強勁力量,其在游戲業(yè)的發(fā)展前途亦不可小視;Erlang在高并發(fā)性上的原生優(yōu)勢吸引了無數(shù)追求高性能網(wǎng)游服務(wù)器的開發(fā)人員的目光。

其次,我們來看看書籍方面。大家都知道,文字對語言的普及起到了催化劑的作用,甚至可以看作是語言的有機組成部分。Python經(jīng)過基金會的多年經(jīng)營而得到NASA、Google重用的原因,就是由于其相關(guān)書籍種類比較豐富;Ruby隨著RoR的流行,這兩年行情看好,書籍也出版得越來越多了;Erlang是典型的少眾語言,但隨著多核時代的來臨和高并發(fā)網(wǎng)絡(luò)應(yīng)用的需求,Erlang有著光明的發(fā)展前景,現(xiàn)在<<ProgrammingErlang>>等書也已經(jīng)在策劃出版了;反觀Lua,雖然目前越來越流行,但由于它晦澀的接口設(shè)計和缺乏大型應(yīng)用的支持,使得相關(guān)書籍寥寥無幾。

最后,我們把焦點重新聚集到游戲開發(fā)行業(yè)中,其實不難發(fā)現(xiàn),除了前文提到的《魔獸世界》和網(wǎng)易經(jīng)典“西游系列”使用了腳本外,現(xiàn)在大多數(shù)比較流行的程序也都使用了腳本,如騰訊的QQgame))和搜狐的《天龍八部》等。不僅如此,現(xiàn)今的游戲引擎也都提供了腳本接口,無論是商業(yè)的unreal引擎還是開源的OGRE,無一例外。

三、腳本的優(yōu)勢

腳本之所以能夠在游戲業(yè)中找到自己的一席之地,是因為網(wǎng)絡(luò)游戲市場需要一個快速開發(fā)方案來避免C/C 開發(fā)帶來的項目高成本和高風(fēng)險。那么,腳本相對于C/C 這類編譯型語言到底有什么優(yōu)勢呢?

I、易于學(xué)習(xí),代碼可維護性強

腳本的語法通常都非常簡單,也沒有太多高階的特性,學(xué)習(xí)的門檻較C/C 低得多,比如Python可能只需要花一個下午即可學(xué)會。這使得游戲開發(fā)公司可以招聘完全沒有腳本、編程經(jīng)驗的新手,通過低成本的培訓(xùn),他們便能迅速地走上工作崗位。除易于學(xué)習(xí)外,腳本代碼也有較強的可維護陛(盡管寫出沒有人看得懂的Lua代碼也非難事)。因為腳本沒有很多高階特性(如c 里的模板元編程就是高階特性),所以腳本程序員就有更多的精力去架構(gòu)、模式、重用和測試等工作,從而提高了代碼的可維護性。相應(yīng)地,正因為沒有那么多讓人困惑的高階特性,也使得腳本代碼“簡潔”不少。

2、降低開發(fā)成本

如上所言,由于腳本易于學(xué)習(xí),游戲開發(fā)公司可以大量起用新手,這正是降低成本的有效手段。那么如何來確保新手所寫代碼的質(zhì)量呢?眾所周知,新手無論用什么語言寫程序肯定會出現(xiàn)bug,但用C/C 和Python做比較,可以看出,一個新手用C/c 編寫出的程序所出現(xiàn)的bug肯定會比用Python編寫出現(xiàn)的bug要多。由于c程序需要編譯,而腳本程序(大部分)都可以直接解釋執(zhí)行,所以在排除bug方面腳本也占有一定的優(yōu)勢,這也使腳本在降低成本的同時能夠更好地保證代碼質(zhì)量。

3、形成人才壁壘

軟件開發(fā)行業(yè)是一個頗為動蕩的行業(yè),無數(shù)的程序員都在跳槽和謀劃跳槽的狀態(tài)中生活,使用腳本開發(fā)形成人才壁壘是游戲業(yè)減少人才流動的有效手段。因為現(xiàn)在腳本除了在游戲業(yè)中非常流行外,并沒有在其它行業(yè)形成廣泛應(yīng)用(雖然在web開發(fā)方面也有燎原之勢,但終究不如在游戲業(yè)中的地位高)。這就使得游戲程序員很少會考慮非游戲行業(yè)的職位,但其它行業(yè)的程序員卻可能會因為腳本的易學(xué)習(xí)性而轉(zhuǎn)投游戲業(yè)。腳本除了能有效形成行業(yè)間的人才壁壘外,也能有效地形成企業(yè)間的人才壁壘。由于現(xiàn)有的腳本種類繁多,不同公司往往有不同的選擇,甚至有些公司使用自己開發(fā)的腳本語言,所以程序員從公司A跳槽到公司B可能要學(xué)習(xí)使用另一種腳本,這就提高了跳槽的成本,從而減少了人才的流動。

四、腳本的發(fā)展趨勢

依照目前趨勢來看,腳本語言一定會更加的普及,而且會逐漸滲透到其它行業(yè)中。隨著網(wǎng)絡(luò)游戲從業(yè)人員數(shù)量的增長,腳本程序員也一直增加,而且Web2、0熱潮引起的網(wǎng)絡(luò)需求,也促成了一批批新腳本程序員的誕生。網(wǎng)絡(luò)游戲市場就像一個正在滾動的雪球,推動著腳本的普及。

隨著腳本在游戲業(yè)中越來越流行,市場對生產(chǎn)效率的需要也會相應(yīng)提高。腳本雖然在一定程度上緩解了生產(chǎn)效率與生產(chǎn)工具之間的矛盾,但仍然不夠完善。由于市場競爭日趨激烈,而網(wǎng)絡(luò)游戲在很多功能上的實現(xiàn)又都相差無幾,如網(wǎng)絡(luò)、數(shù)據(jù)庫、圖形甚至部分邏輯,這必然會引起網(wǎng)絡(luò)游戲生產(chǎn)的組裝化一一大量中間件相互組合形成新的網(wǎng)絡(luò)游戲。從目前來看,Bigwofld、PhysX和Unreal等都是比較流行的網(wǎng)絡(luò)游戲中間件。腳本語言則是粘合各個中間件的良好膠水語言,所以隨著網(wǎng)絡(luò)游戲的生產(chǎn)組裝化,腳本將有更大的發(fā)展空間。

那么,當(dāng)腳本發(fā)展到如日中天的時候,可能取代C/C 這些編譯型語言嗎?筆者認為不會。腳本語言和編譯型語言在生產(chǎn)效率和執(zhí)行效率上各擅勝場,網(wǎng)絡(luò)游戲既需要能快速應(yīng)變的腳本,也需要能快速執(zhí)行以提供更絢麗游戲效果的編譯型語言。未來,它們之間一定會保持長久的和諧互補關(guān)系,相輔相成。

綜上所述,網(wǎng)絡(luò)游戲時代是上帝賜予腳本語言發(fā)展的絕好時機,腳本語言很快將迎來光芒四射的時代。腳本語言擁有編譯型語言無可比擬的生產(chǎn)效率優(yōu)勢,所以它們將互補互助并肩奮戰(zhàn)在游戲的最前線。

小結(jié):淺析LUA游戲腳本語言之魔獸世界的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!

責(zé)任編輯:zhaolei 來源: 博客園
相關(guān)推薦

2011-08-25 11:02:04

2011-08-25 10:40:21

Lua游戲

2011-08-25 14:26:40

LUA數(shù)據(jù)文件

2011-06-22 14:07:42

Lua

2011-08-22 18:00:53

Lua語言

2011-08-22 16:59:28

Lua

2011-08-22 17:41:23

LUA 腳本 語言

2011-08-22 18:08:09

Lua腳本

2011-08-23 09:44:28

LUA腳本

2011-08-25 09:55:27

2009-08-17 10:08:24

2010-07-16 12:52:35

JVMJVM腳本語言Groovy

2009-06-10 08:41:15

Linux腳本語言

2010-02-24 14:04:32

Python腳本語言

2011-08-25 11:44:21

LUA腳本魔獸世界

2011-09-01 17:46:22

MySQL ProxyLua腳本

2010-02-26 09:33:51

Python腳本

2012-07-16 11:23:18

LinuxWindows腳本語言

2009-09-15 10:10:32

丁磊魔獸世界

2011-08-16 10:03:45

Groovy編程語言Web
點贊
收藏

51CTO技術(shù)棧公眾號