天天看點

《遊戲腳本的設計與開發》-目錄&序一,什麼是遊戲腳本二,為什麼要将遊戲腳本化三,遊戲腳本能夠實作哪些功能四,我要設計一款什麼樣的遊戲腳本五,準備工作

本系列文章目錄

章節 标題 連接配接
遊戲腳本簡介 http://blog.csdn.net/lufy_legend/article/details/8888787
第一章 基本功能
1.1 讀取和解析一個腳本檔案 http://blog.csdn.net/lufy_legend/article/details/8919823
1.2 文字顯示[Hello world] http://blog.csdn.net/lufy_legend/article/details/8948585
1.3 基礎文法(注釋,變量,函數,條件語句) http://blog.csdn.net/lufy_legend/article/details/8978154
1.4 圖檔的讀取顯示 http://blog.csdn.net/lufy_legend/article/details/9019695
1.5 顯示層,繪圖 http://blog.csdn.net/lufy_legend/article/details/9069425
1.6 按鈕,腳本的暫停和标簽 http://blog.csdn.net/lufy_legend/article/details/9110513
第一章總結 文字腳本的功能擴充和一個遊戲測試 http://blog.csdn.net/lufy_legend/article/details/9160841
第二章 戰棋類遊戲
2.1 快速顯示一張戰場地圖 http://blog.csdn.net/lufy_legend/article/details/9210753
2.2 軍隊降臨戰場 http://blog.csdn.net/lufy_legend/article/details/9267599
2.3 戰場上的尋路和移動 http://blog.csdn.net/lufy_legend/article/details/9404147
2.4 實體攻擊 http://blog.csdn.net/lufy_legend/article/details/9918169
第三章 RPG類遊戲
3.1 RPG地圖到底怎麼做? http://blog.csdn.net/lufy_legend/article/details/17417085
3.2 地圖遮擋和人物行走 http://blog.csdn.net/lufy_legend/article/details/17748629
3.3 加入多個人物以及對話實作 http://blog.csdn.net/lufy_legend/article/details/18184629
3.4 地圖跳轉 http://blog.csdn.net/lufy_legend/article/details/21322783
3.5 遊戲背包和任務系統 http://blog.csdn.net/lufy_legend/article/details/21942227
3.6 隊員清單和人物屬性 http://blog.csdn.net/lufy_legend/article/details/22661047
3.7 戰鬥系統之自動戰鬥(一) http://blog.csdn.net/lufy_legend/article/details/23744323
3.8 通過腳本來自由控制遊戲(一) http://blog.csdn.net/lufy_legend/article/details/39011709
第四章 待定

該項目github位址如下:

https://github.com/lufylegend/lsharp

從現在開始,我将通過一系列的文章,來講解一下遊戲腳本的設計和開發,這是一個比較大的話題,并不是一兩篇就能講完的,是以這可能是一個大坑,如果你不小心掉了進來,那就跟着我一點點的來了解一下吧。

一,什麼是遊戲腳本

    簡單說,遊戲腳本就是依據一定的格式編寫的可執行檔案,遊戲可以通過腳本中自定義的語句來執行相應的邏輯。

    舉個例子,舞蹈演員随着音樂翩翩起舞,其實音樂在這裡就擔當了腳本的角色,音樂裡記錄了每一個舞蹈動作,舞蹈演員根據自己的專業知識,将這些音樂轉換為優美的舞姿。

    遊戲也一樣,遊戲腳本裡記錄了遊戲的控制語句,遊戲引擎将這些控制語句進行解析,轉換為生動的遊戲畫面。

二,為什麼要将遊戲腳本化

    遊戲腳本,可以令我們的遊戲動态化,比如當我們開發了一款rpg遊戲,裡面的劇情,事件以及地圖等,我們如果将這些全部寫程序式裡,當然是可以的,但是一旦出現問題,哪怕幾個錯别字,我們需要先将這幾個錯别字改正,并且将整個程式重新編譯釋出一遍,這個過程是相當令人反感的,因為如果遊戲的程式跟着遊戲的内容不斷進行修改的話,那隻會使你的程式越來越複雜。但是如果我們将這些可重複的資料,都定義到遊戲程式之外的檔案裡面,當遊戲引擎開發完畢,我們的遊戲通過讀取這些外部檔案,來執行相應的劇情和事件,那麼,像上述當我們的遊戲出現了問題,我們隻需要改動這些外部檔案就可以了,并不需要重新編譯整個程式,這樣便使得我們的遊戲開發,變得便利簡潔。(熟悉我部落格的朋友們是不是看着這段話眼熟?我直接拷貝了《html5遊戲開發-零基礎開發RPG遊戲-開源講座》系列文章中的解釋)

    遊戲腳本化的另一個好處,就是将遊戲引擎和遊戲内容分離。遊戲的腳本語言,最大的有點就是簡單易懂,如果再為這個腳本語言提供了編輯器的話,就算是不會程式設計的人也能很容易上手使用。

三,遊戲腳本能夠實作哪些功能

    一個優秀的遊戲腳本,通常能控制遊戲中的一切。遊戲中所有可變的資料,都應該通過腳本來控制,例如RPG遊戲中的劇情任務,人物對話,不同角色的成長,道具的屬性,甚至遊戲中的按鈕等等。

四,我要設計一款什麼樣的遊戲腳本

    既然是自定義腳本,你可以任意絕對腳本的格式,比如我曾看到過下面一種腳本。

@@message 你好,歡迎來到腳本測試
@@drawgraph 50 100 human.png
           

上面的腳本第一行是一個打字機效果的對話内容的顯示,第二行是在坐标50,100的位置上顯示了一張圖檔,腳本中利用空格将每一行的腳本語句進行分割,然後通過分割後的第一個字元串作為指令的種類,不同的指令再進行不同的解析,最後通過畫面顯示出來。

    我在開發flash遊戲引擎的時候,設計了一款腳本引擎,叫做L#,并成功使用這個腳本開發了《三國記》系列遊戲,《三國記-亂世群雄》和《三國記-經典戰役版》。下面是遊戲中的兩個畫面

《遊戲腳本的設計與開發》-目錄&序一,什麼是遊戲腳本二,為什麼要将遊戲腳本化三,遊戲腳本能夠實作哪些功能四,我要設計一款什麼樣的遊戲腳本五,準備工作
《遊戲腳本的設計與開發》-目錄&序一,什麼是遊戲腳本二,為什麼要将遊戲腳本化三,遊戲腳本能夠實作哪些功能四,我要設計一款什麼樣的遊戲腳本五,準備工作

    L#除了預計提供的RPG,SLG兩大功能外,開發一些小應用也是很友善的,例如在L#中顯示一行文字隻需要下面一行腳本

Text.label(-,txt,Hello World !,280,230,30,#000000);
           

    為了提高flash端引擎的效率,最近打算使用Starling将flash端的L#腳本進行優化重構,順便打算在HTML5中實作一下L#腳本的開發。于是接下來我會把這一過程中的HTML5部分記錄下來,來說明一下如何具體來開發一款遊戲腳本,大家可以從中了解到如何開發一款大型的SLG遊戲和RPG遊戲。

五,準備工作

    1,lufylegend.js引擎下載下傳

    我在下面的開發過程是建立在HTML5遊戲引擎lufylegend.js的基礎上的,當然你用其他語言,如C,C#,java等也是一樣的,隻要了解了原理,實作過程都不是問題。

    下面是lufylegend.js引擎的官方網址

    http://lufylegend.com/lufylegend

    2,一個本地的伺服器

    因為涉及到腳本檔案的讀取,是以如果你也是跟着我用HTML5來實作這一過程的話,為了實作ajax讀取檔案,你需要在自己的電腦上安裝一個本地伺服器。我推薦你安裝xmapp,這個工具非常友善,安裝這個工具很簡單,你可以百度一下,或者到我的這個文章裡,下載下傳《HTML5 Canvas遊戲開發實戰》一書中的試讀章節,裡面第一章裡面有xmapp的安裝介紹。

http://blog.csdn.net/lufy_legend/article/details/8813053

這樣準備就緒之後,就可以開始腳本開發之旅了,下一篇中,我将介紹如何來讀取和解析一個腳本檔案,敬請期待。

轉載請注明:轉自lufy_legend的部落格

歡迎繼續關注我的部落格

http://blog.csdn.net/lufy_legend

繼續閱讀