日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

游戏开发中的脚本语言

發布時間:2023/12/31 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 游戏开发中的脚本语言 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文最初發表于《游戲創造》(http://www.chinagcn.com)2007年8月刊。版權所有,侵權必究。如蒙轉載,必須保留本聲明,和作者署名;不得用于商業用途,必須保證全文完整。
網絡版首次發表于戀花蝶的博客(http://blog.csdn.net/lanphaday),與雜志版本稍有不同,略作刪改。 id="alimamaifrm" style="WIDTH: 750px; HEIGHT: 110px" border="0" name="alimamaifrm" marginwidth="0" marginheight="0" src="http://p.alimama.com/cpacode.php?t=A&pid=mm_10108440_0_0&w=750&h=110&rn=1&cn=3&ky=&cid=251602&bgc=FFFFFF&bdc=E6E6E6&tc=0000FF&dc=000000" scrolling="no" frameborder="0" height="110" width="750"> 游戲中的腳本語言 網易廣州?????? 賴勇浩 http://blog.csdn.net/lanphaday 游戲業中的腳本 腳本不是游戲業的新技術,但腳本為業外的人所知悉,卻應歸功于《魔獸世界》(以下簡稱Wow)在世界范圍的流行。通過Wow偉大的自定義界面系統,Lua這一腳本語言一舉成名天下知。 雖然Lua的出名有點橫空出世的感覺,但游戲業內早就使用腳本來開發游戲了。即便是在國內,我們所熟悉的網游大多數是用腳本開發的。此前已有人士透露,網游的長青樹《夢幻西游》和《大話西游2》就大量應用了腳本技術;特別是《大話西游2》,比Wow早幾年做了基于Lua腳本的游戲開發。可以說,國內與國外在腳本技術上并不存在差距,大家都是站在同一起跑線上的,這為國內游戲行業趕超國際水平提供了強大的保障。 回顧過去,我們發現單機版游戲時代很少聽到腳本這個詞。那么,為什么在網游時代腳本成了業界寵兒?原因是多方面的。比如在單機時代,無論游戲機還是PC的性能都非常低下,需要具有更高執行效率的編譯型語言來“壓榨”機器性能。但硬件性能的提升并不是腳本流行開來的決定性因素,真正的原因是市場的需要。 網游時代的市場需求快速變化、競爭激烈,如果延用單機時代一年半載才出一個新版本的開發方式,那必然會被市場淘汰。正是這種快速變幻的市場需要和低效的開發工具之間的矛盾,引發了開發工具的革命——腳本語言風生水起。腳本的興起因為游戲業中傳統的編譯型語言(asm/C/C++)的性能優勢在硬件性能大幅攀升的今天已經不復存在。在網游時代,游戲業中的主要矛盾已經由性能低下的硬件與游戲執行效率之間的矛盾轉變為快速變化的市場需要與低效的開發工具之間的矛盾,腳本在網游時代的輝煌是歷史的必然。 除了市場和硬件因素外,還有一點不能忽略。那就是C/C++進行游戲開發的高成本性和高項目風險。隨著java/.net逐年流行,大學生中學習C/C++編程語言的人越來越少。物以希為貴,人亦如是。C/C++程序員新鮮血液補給少,而網游開始流行,巨大的網游市場需求造成大量的人才空缺,這時也就帶來了C/C++的高成本。即便是資本雄厚的公司,可以雇傭大量C/C++程序員開發游戲,也不能無視C/C++高級特性和高度的靈活性帶來的高項目風險。C/C++是易學難精的編程語言,應用在大型項目的時候極容易因為程序員的水平參差不齊而引起溝通不暢,還有濫用的高級特性也容易引入大量的bug。游戲公司希望找到一個方案以解決高成本、高風險的問題——這個方案就是在游戲中使用腳本。 腳本的現狀 腳本解決了C/C++無法解決的開發效率難題,而且降低了成本和風險。腳本在游戲業中就此蓬勃地發展了起來,現在腳本技術已經成為游戲業中不可或缺的一環。橫看當前腳本技術,一片大好形勢就如同八九點鐘的太陽。不僅語言百家爭鳴,而且書籍也層出不窮;不僅在游戲業開花結果,在web等其它應用也大放異彩。 首先,我們來看看現在比較流行的腳本: Python、Lua、ruby和Erlang。Python和Lua是網絡游戲開發的中堅力量;ruby憑借ruby on rails的web開發框架的強勁力量,不可小瞧它在游戲業的前途;erlang在高并發性上的原生優勢吸引了無數追求高性能的網游服務器的開發人員的目光。 然后讓我們來看看書籍和資料方面。大家都知道,文檔對語言的普及起到正向催化劑的作用,甚至可以看作是語言的有機組成部分,必不可少。Python經過基金會的多年經營和在NASA、Google得到重用的原因,書籍方面比較豐富;ruby隨著RoR的流行水漲船高,這兩年行情看好,書籍也出版得越來越多了;反觀Lua,雖然流行度一直走高,但出來的書卻沒有幾本,跟他苦澀的接口設計和缺乏針對大型應用的原生支持不無關系;Erlang是典型的少眾語言,但隨著多核時代的來臨和高并發網絡應用的需求,有著光明的發展前景,現在《Programming Erlang》等書已經在策劃出版了。 最后把焦點重新聚集到游戲開發行業中來,可以發現腳本言語已經在游戲業中開發結果,碩果累累。除了前文提到的《魔獸世界》和網易經典“西游系列”都使用了腳本外,現在大多數流行程序都使用腳本,如騰訊的《QQgame》和搜狐的《天龍八部》等。現在的游戲引擎也都提供了腳本接口,無論是商業的Unreal引擎還是開源的OGRE,無一例外。 腳本的優勢 腳本在游戲業中找到自己的一席之地,是因為網游市場需要一個快速開發方案來避免C/C++開發帶來的項目高成本和高風險。那么,具體而言腳本相對于C/C++這類編譯型語言有什么優勢呢? 一、易于學習、代碼可維護性強。通常腳本的語法都非常簡單,也沒有太多高階的特性,學習的門檻較C/C++低得多。如Python號稱只需要花一個下午即可學會。這使得游戲開發公司可以招聘完全沒有腳本編程經驗的新手,通過低成本的培訓,迅速走上工作崗位。除易于學習外,腳本代碼也有更好的可維護性(盡管寫出沒有人看得懂的Lua代碼也非難事)。因為腳本不會有很多高階特性(如C++里的模板元編程就是高階特性),所以腳本程序員有更多精力關注架構、模式、重用和測試,從而提高了代碼的質量;相應地,沒有那么多讓人困惑的高階特性,也使得代碼“簡潔”不少。 二、降低開發成本。如第一點所言,腳本易于學習,使得游戲開發公司可以大量應用新手,是降低成本的有效手段。那么如何來保證新手寫的代碼的質量呢?這需要我們辯證地看問題。從經驗上看新手寫的程序無論用什么言語,bug肯定不少。但一個C新手編寫的代碼和Python新手編寫的相同功能的代碼相比,C版本應該會有更多的bug。由于C程序需要編譯,而腳本程序(大部分)都可以直接解釋執行,所以在排除bug方面腳本也有先天的優勢,這使得腳本在低成本的同時能夠更好地保證代碼質量。 三、形成人才壁壘。軟件開發行業是一個動蕩的行業,無數的程序員都在跳槽和謀劃跳槽的狀態中過日子。使用腳本開發,形成人才壁壘是游戲業減少人才流動的有效手段。因為腳本現在除了在游戲業中大紅大紫外,并沒有在其它行業形成殺手級應用(雖然在web開發方面也有燎原之勢,但終究不似在游戲業中的地位高尚)。這就讓游戲程序員很少會考慮非游戲業的職位,而其它行業的程序員卻可能會因為腳本的易學習性轉投游戲業。腳本除了能有效形成行業間的人才壁壘外,也能有效地形成企業間的人才壁壘。因為現有的腳本種類繁多,不同公司往往有不同的選擇,甚至有些公司使用自己開發的腳本語言。程序員從公司A跳槽到公司B可能就要學習使用另一種腳本,這提高了跳槽的成本,從而使人才流動減少。 腳本的發展趨勢 依照目前的趨勢來看,腳本語言也一定會更加普及開來,而且會滲透到其它行業中去。隨著網游從業人員的增長,腳本程序員也一直相應地增長著,而且Web2.0熱潮引起的網絡需求,也促生了一批批新的腳本程序員。網游市場就像一個正在滾動的雪球,帶動著腳本的普及。 隨著腳本在游戲業中越來越流行,市場就會需要更高的生產效率。腳本雖然一定程度上緩解了市場與生產工具之間的矛盾,但仍然不夠徹底。由于市場競爭趨于激烈,而網游在很多功能實現都相差無幾:如網絡、數據庫、圖形甚至部分邏輯。這必然會催生網游生產組裝化——大量的中間件相互組合形成新的網游。從現在來看,Bigworld、PhysX和Unreal等都是比較流行的網游中間件。腳本語言是粘合各個中間件的良好膠水語言,所以隨著網游生產組裝化,腳本有良好的發展空間。 那么,當腳本發展到如日中天的時候,會取代C/C++這些編譯型語言嗎?我認為不會。腳本語言和編譯型語言在生產效率和執行效率上各擅勝場,網絡游戲既需要能快速應變的腳本,也需要能快速執行以提供更絢麗游戲效果的編譯型語言,在未來,它們之間會保持長久的和諧互補關系,相輔相成。 結語 綜上所述,網游時代是上帝賜予腳本語言的絕好時機,腳本語言很快將迎來自己光芒四射的世代。腳本語言擁有編譯型語言無可比擬的生產效率優勢,它們將并肩奮戰在游戲最前線。 作者簡介: 賴勇浩,現供職于網易廣州。現致力于游戲人工智能和高效Python開發的研究,喜在博客(http://blog.csdn.net/lanphaday)上分享心得。郵箱:lanphaday@126.com。

總結

以上是生活随笔為你收集整理的游戏开发中的脚本语言的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。