當前位置:首頁 » 編程軟體 » lua腳本和Q腳本

lua腳本和Q腳本

發布時間: 2024-12-14 22:20:53

編程語言中的腳本語言這么多,請問哪個最好

我認為腳本語言最好的是python和lua,它們都比較輕量級和簡單易學

python和lua的優點

簡單易學

開源

啟動快、熱更新、移植性強

嵌入性強

輕量級

依賴少

和c++交互性強

python和lua都是嵌入性強的語言,號稱膠水語言,能夠便捷的嵌入到c++中運行。用c++開發大型項目時,有的數據或者代碼需要頻繁改動,這個時候腳本語言就派上了用場。

python和lua比較

python更傾向於開發工具,因為python提供了大量的功能,語法糖也是相當多,並且能夠做到快速開發。

lua更傾向於嵌入到c++項目中,做熱更代碼非常方便,還有就是非常干凈,幾乎不包含額外的功能,精簡到極致。

我們做游戲開發經常會用到lua腳本,客戶端方便熱更新,而伺服器作為輔助腳本使用,比如一些AI、scene、技能腳本等。



總結

python和lua都是很好的腳本語言,在具體的開發中做出合理的選擇才是至關重要。

⑵ 游戲開發中常用哪種腳本語言

隨著《魔獸世界》(以下簡稱wow)在世界范圍內流行,腳本漸漸被人們所熟知。由於wow強大的自定義界面系統,Lua這一腳本語言一舉成名。x0dx0ax0dx0a其實早在Lua腳本語言被大眾所熟知以前,游戲業內人士就已經開始使用腳本來開發游戲了。我們熟悉的很多國內的網路游戲大都運用了腳本開發,比如網游的長青樹「夢幻西遊和《大話西遊2就大量應用了腳本技術。特別是《大話西遊2》,其實現基於Lua腳本游戲開發的時間要遠早於《魔獸世界》。在腳本技術上,國內與國外其實是站在同一起跑線上的,並不存在什麼差距,這也為國內游戲產業趕超國外游戲產業提供了強有力的技術保證。x0dx0ax0dx0a在單機游戲時代,腳本這個詞幾乎很少出現,那麼,為什麼在網路游戲時代它卻成了業界的寵兒呢?原因是多方面的。x0dx0ax0dx0a單機游戲時代,無論游戲主機還是PC機,它們的性能都非常低下,從而需要具有較高執行效率的編譯型語言對機器的性能進行「壓榨」。隨著科技發展和硬體性能的不斷提升,腳本逐漸被開發者所接受並利用,但這並不是腳本流行起來的決定性因素,真正的原因還在於游戲市場有這方面的需求。x0dx0ax0dx0a網路游戲時代的市場競爭激烈、變化莫測,如果延用單機時代一年半載才出一個新版本的開發方式,必然會被游戲行業激烈的市場競爭所淘汰。正是這種游戲市場需求旺盛和開發工具效率底下之間的矛盾,促使腳本語言迅速地發展起來。腳本的興起使得傳統編譯型語言(asngC/C )的性能優勢在硬體功效大幅攀升的今天已經不復存在。x0dx0ax0dx0a除了市場和硬體這兩個因素之外,還有一點我們不能忽略。那就是用C/C 進行游戲開發的高成本和高項目風險。隨著java/.net逐漸流行,學習C/C 編程語言的人越來越少,而網路游戲市場的需求卻越來越龐大,在程序人才大量匱乏的情況下,造成了c,C 人才的高成本。即便是有能力僱傭大量C/C 程序員的公司,在開發游戲的過程中,也不能無視C/C 的高級特性和高度靈活性帶來的高項目風險。C/C 是易學難精的編程語言,在開發大型項目的時候由於程序員的水平參差不齊,所以極易造成溝通不暢。不僅如此,c,C 濫用的高級特性也容易引入大量bug。正是由於這些原因,游戲公司開始在游戲中使用腳本,希望通過腳本來解決這些高成本、高風險的問題。x0dx0ax0dx0a二.腳本的現狀x0dx0ax0dx0a腳本不僅解決了c/C 無法解決的開發效率難題,還降低了開發的成本和風險。因此腳本技術在游戲業內蓬勃發展起來,並且已經成為游戲業中不可或缺的一環。縱觀當前腳本技術現狀,形勢一片大好,不僅語言百家爭鳴,而且書籍種類也越來越多;不僅在游戲業界開花結果,在web等其它應用領域也大放異彩。x0dx0ax0dx0a首先,我們來看看目前比較流行的腳本:Python、Lua、ruby和Erlang。Python和Lua是網路游戲開發的中堅力量;ruby憑借 rubyonrails的web開發框架的強勁力量,其在游戲業的發展前途亦不可小視;Erlang在高並發性上的原生優勢吸引了無數追求高性能網游伺服器的開發人員的目光。x0dx0ax0dx0a其次,我們來看看書籍方面。大家都知道,文字對語言的普及起到了催化劑的作用,甚至可以看作是語言的有機組成部分。Python經過基金會的多年經營而得到NASA、Google重用的原因,就是由於其相關書籍種類比較豐富;Ruby隨著RoR的流行,這兩年行情看好,書籍也出版得越來越多了;Erlang是典型的少眾語言,但隨著多核時代的來臨和高並發網路應用的需求,Erlang有著光明的發展前景,現在<>等書也已經在策劃出版了;反觀Lua,雖然目前越來越流行,但由於它晦澀的介面設計和缺乏大型應用的支持,使得相關書籍寥寥無幾。x0dx0ax0dx0a最後,我們把焦點重新聚集到游戲開發行業中,其實不難發現,除了前文提到的《魔獸世界》和網易經典「西遊系列」使用了腳本外,現在大多數比較流行的程序也都使用了腳本,如騰訊的QQgame))和搜狐的《天龍八部》等。不僅如此,現今的游戲引擎也都提供了腳本介面,無論是商業的unreal引擎還是開源的 OGRE,無一例外。x0dx0ax0dx0a三.腳本的優勢x0dx0ax0dx0a腳本之所以能夠在游戲業中找到自己的一席之地,是因為網路游戲市場需要一個快速開發方案來避免C/C 開發帶來的項目高成本和高風險。那麼,腳本相對於C/C 這類編譯型語言到底有什麼優勢呢?x0dx0ax0dx0aI易於學習,代碼可維護性強x0dx0ax0dx0a腳本的語法通常都非常簡單,也沒有太多高階的特性,學習的門檻較C/C 低得多,比如Python可能只需要花一個下午即可學會。這使得游戲開發公司可以招聘完全沒有腳本、編程經驗的新手,通過低成本的培訓,他們便能迅速地走上工作崗位。除易於學習外,腳本代碼也有較強的可維護陛(盡管寫出沒有人看得懂的Lua代碼也非難事)。因為腳本沒有很多高階特性(如c 里的模板元編程就是高階特性),所以腳本程序員就有更多的精力去架構、模式、重用和測試等工作,從而提高了代碼的可維護性。相應地,正因為沒有那麼多讓人困惑的高階特性,也使得腳本代碼「簡潔」不少。x0dx0ax0dx0a2.降低開發成本x0dx0ax0dx0a如上所言,由於腳本易於學習,游戲開發公司可以大量起用新手,這正是降低成本的有效手段。那麼如何來確保新手所寫代碼的質量呢?眾所周知,新手無論用什麼語言寫程序肯定會出現bug,但用C/C 和Python做比較,可以看出,一個新手用C/c 編寫出的程序所出現的bug肯定會比用Python編寫出現的bug要多。由於c程序需要編譯,而腳本程序(大部分)都可以直接解釋執行,所以在排除 bug方面腳本也佔有一定的優勢,這也使腳本在降低成本的同時能夠更好地保證代碼質量。x0dx0ax0dx0a3.形成人才壁壘x0dx0ax0dx0a軟體開發行業是一個頗為動盪的行業,無數的程序員都在跳槽和謀劃跳槽的狀態中生活,使用腳本開發形成人才壁壘是游戲業減少人才流動的有效手段。因為現在腳本除了在游戲業中非常流行外,並沒有在其它行業形成廣泛應用(雖然在web開發方面也有燎原之勢,但終究不如在游戲業中的地位高)。這就使得游戲程序員很少會考慮非游戲行業的職位,但其它行業的程序員卻可能會因為腳本的易學習性而轉投游戲業。腳本除了能有效形成行業間的人才壁壘外,也能有效地形成企業間的人才壁壘。由於現有的腳本種類繁多,不同公司往往有不同的選擇,甚至有些公司使用自己開發的腳本語言,所以程序員從公司A跳槽到公司B可能要學習使用另一種腳本,這就提高了跳槽的成本,從而減少了人才的流動。x0dx0ax0dx0a四.腳本的發展趨勢x0dx0ax0dx0a依照目前趨勢來看,腳本語言一定會更加的普及,而且會逐漸滲透到其它行業中。隨著網路游戲從業人員數量的增長,腳本程序員也一直增加,而且Web2、0熱潮引起的網路需求,也促成了一批批新腳本程序員的誕生。網路游戲市場就像一個正在滾動的雪球,推動著腳本的普及。x0dx0ax0dx0a隨著腳本在游戲業中越來越流行,市場對生產效率的需要也會相應提高。腳本雖然在一定程度上緩解了生產效率與生產工具之間的矛盾,但仍然不夠完善。由於市場競爭日趨激烈,而網路游戲在很多功能上的實現又都相差無幾,如網路、資料庫、圖形甚至部分邏輯,這必然會引起網路游戲生產的組裝化一一大量中間件相互組合形成新的網路游戲。從目前來看,Bigwofld、PhysX和Unreal等都是比較流行的網路游戲中間件。腳本語言則是粘合各個中間件的良好膠水語言,所以隨著網路游戲的生產組裝化,腳本將有更大的發展空間。x0dx0ax0dx0a那麼,當腳本發展到如日中天的時候,可能取代C/C 這些編譯型語言嗎?筆者認為不會。腳本語言和編譯型語言在生產效率和執行效率上各擅勝場,網路游戲既需要能快速應變的腳本,也需要能快速執行以提供更絢麗游戲效果的編譯型語言。未來,它們之間一定會保持長久的和諧互補關系,相輔相成。x0dx0ax0dx0a五.結語x0dx0ax0dx0a綜上所述,網路游戲時代是上帝賜予腳本語言發展的絕好時機,腳本語言很快將迎來光芒四射的時代。腳本語言擁有編譯型語言無可比擬的生產效率優勢,所以它們將互補互助並肩奮戰在游戲的最前線。

⑶ 腳本語言有哪些

  • 腳本語言:腳本語言又被稱為擴建的語言,或者動態語言,是一種編程語言,用來控制軟體應用程序,腳本通常以文本(如ASCII)保存,只在被調用時進行解釋或編譯。

  • 語言分類:

  1. Shell腳本:此類腳本用於自動化工作控制,即啟動和控制系統程序的行為。大多的腳本語言解釋器也同時是命令行界面,如Unix shell和MS-DOS COMMAND.COM。其他如AppleScript,可以為系統增加腳本環境,但沒有命令行界面。具體分類有:

    4NT

    AppleScript

    ARexx (Amiga Rexx)

    bash

    csh

    DCL

    JCL

    ksh

    Cmd.exe batch (Windows, OS/2)

    Command.com batch (DOS)

    REXX

    tcsh

    sh

    Winbatch

    Windows PowerShell

    Windows Script Host

    zsh

  2. GUI腳本:GUI出現帶來一種專業的控制計算機的腳本語言。它在用戶和圖形界面,菜單,按鈕等之間互動。它經常用來自動化重復性動作,或設置一個標准狀態。理論上它可以用來控制運行於基於GUI的計算機上的所有應用程序,但實際上這些語言是否被支持還要看應用程序和操作系統本身。當通過鍵盤進行互動時,這些語言也被稱為宏語言。

    具體分類有:

    AutoHotkey

    AutoIt

    Expect

  3. 應用程序定製:許多大型的應用程序都包括根據用戶需求而定製的慣用腳本語言。同樣地,許多電腦游戲系統使用一種自定義腳本語言來表現NPC(non-player character,non-playable character,non-player class)和游戲環境的預編程動作。此類語言通常是為一個單獨的應用程序所設計,雖然它們貌似一些通用語言(如QuakeC, modeled after C),但它們有自定義的功能。具體分類:

    Action Code Script

    ActionScript

    AutoLISP

    BlobbieScript

    Emacs Lisp

    Game Maker Language

    HyperTalk

    IPTSCRAE

    IRC script

    Lingo

    Maya Embedded Language

    mIRC script

    NWscript

    QuakeC

    UnrealScript

    Visual Basic for Applications

    VBScript

    ZZT-oop

  4. web編程腳本:應用程序定製的腳本語言中有一種重要的類別,用於提供WEB頁面的自定義功能。它專業處理互聯網通信,使用網頁瀏覽器作為用戶界面。當然,大多現代WEB編程語言都比較強大可以做一些通用編程。具體分類:

    ColdFusion (Application Server)

    Lasso

    Miva

    SMX

    IPTSCRAE-一些網路開發團隊用於創建論壇的工具

  5. 文本處理語言:處理基於文本的枝喚激記錄是腳本語言最早的用處之一。如Unix's awk最早是設計來幫助系統管理員處理調用UNIX基於文本的配猛襪置和LOG文件。PERL最早是用來產生報告的,現在它已經成了全面成熟的語言。

    具體分類:

    Awk

    Perl

    sed

    XSLT

  6. 通用動態語言:一些語言,比如Perl,從一門腳本語言發展成了更通用的編程語言。由於「解釋執行,內存管理,動態」等特性,它們仍被稱為腳本語言。但它們已經用於應用程序編寫,用戶也不把它們看作腳本語言。

    APL

    Dao

    Dylan

    Groovy

    Lua

    MUMPS (M)

    newLISP

    Nuva

    Perl

    PHP

    Python

    Ruby

    Scheme

    Smalltalk

    SuperCard

    Tcl (Tool command language)

  7. 程序語言:少數的語言被設計通過嵌入應用程序來取代應用程序定製的腳本語言。開發者(如使用C等其它系統語言)包入使腳本語言可以控制應用程序的hook。這些語言和應用程序定製的腳本語言是同種用途,但優鏈磨點在於可以在應用程序之間傳遞一些技能。

    具體分類:

    Ch (C/C++ interpreter)

    Dao

    ECMAScript 亦稱 DMDScript, JavaScript, JScript

    GameMonkeyScript

    Guile

    ICI

    Lua

    RBScript (REALbasic Script)

    Squirrel

    Tcl

    Z-Script

  8. JavaScript直到現在仍然是網頁瀏覽器內的主要編程語言,它的ECMAScript標准化保證了它成為流行的通用嵌入性語言。Tcl作為一種擴展性語言而創建,但更多地被用作通用性語言,就如同Python, Perl, Ruby一樣。Q語言是在VBScript的基礎上發展起來,專用於按鍵精靈系列產品,成為一門更接近「漢語」習慣的腳本語言。

    BeanShell (scripting for Java)

    CobolScript

    Escapade (server side scripting)

    Euphoria

    F-Script

    Ferite

    Groovy

    Gui4Cli

    Io

    KiXtart

    Mondrian

    Object REXX

    Pike

    Pliant

    REBOL

    ScriptBasic

    Shorthand Language

    Simkin

    Sleep

    StepTalk

    Visual DialogScript

⑷ 為什麼將lua作為游戲腳本

就我個人的理解來看,使用LUA作為腳本語言有三個好處:
1、輕量級
LUA只包括一個精簡的核心和最基本的庫。這使得LUA體積小、啟動速度快,從而適合嵌入在別的程序里。
2、可配置性、可擴展性
LUA並不象其它許多"大而全"的語言那樣,包括很多功能,比如網路通訊、圖形界面等。但是LUA可以很容易地被擴展:由宿主語言(通常是C或C++)提供這些功能,LUA可以使用它們,就像是本來就內置的功能一樣。
3、兼容性
LUA由標准C編寫而成,幾乎在所有操作系統和平台上都可以編譯,運行。

這些都是LUA本身所具備的一些特質。而這些特質正好就決定了LUA的廣泛使用:
1、輕量級
沒人希望自己的應用程序需要附加幾十M甚至幾百M的庫類文件才能運行。如果一個應用程序這么做了,那麼它很難做到Run Anywhere。當然,這個Run Anywhere只是這么一說。
2、可配置性、可擴展性
在游戲研發的過程中,修改是必不可少的過程。如果每次修改都需要從底層做起,那必定是一個非常繁瑣的過程。而LUA的可配置、擴展正好可以解決這一問題。
3、兼容性
游戲只是游戲,不能決定玩家的機器配置,更不能決定玩家的操作系統。如果因為游戲與用戶的操作系統不兼容導致游戲銷量下降,我想,這肯定是不被允許的。

所以,具備了以上三個特點的LUA,沒有不作為游戲腳本使用的理由。

熱點內容
安卓如何登錄雲服務平台 發布:2025-03-12 14:12:35 瀏覽:520
神奇青蛙安卓版在哪裡下載 發布:2025-03-12 14:05:12 瀏覽:529
曙光牌路由器登錄密碼是多少 發布:2025-03-12 13:51:36 瀏覽:99
舞蹈培訓源碼 發布:2025-03-12 13:34:04 瀏覽:741
電腦與伺服器之間快速傳輸文件 發布:2025-03-12 13:26:55 瀏覽:955
ftp上的文件在伺服器 發布:2025-03-12 13:26:53 瀏覽:416
linux關閉445埠 發布:2025-03-12 13:20:47 瀏覽:219
加密語句表情 發布:2025-03-12 13:17:36 瀏覽:821
電腦伺服器響應不了 發布:2025-03-12 13:16:02 瀏覽:897
vmwarenat外網訪問 發布:2025-03-12 13:06:31 瀏覽:47