專利名稱:通過(guò)腳本開(kāi)發(fā)電腦游戲的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電腦游戲的開(kāi)發(fā)方法,尤其涉及一種通過(guò)腳本開(kāi)發(fā)電 腦游戲的方法,屬于推算技術(shù)領(lǐng)域。
技術(shù)背景腳本是批處理文件的延伸,是一種以純文本格式保存的程序, 一般來(lái) 說(shuō)的計(jì)算機(jī)腳本是確定的一系列控制計(jì)算機(jī)進(jìn)行運(yùn)算操作動(dòng)作的組合,在 其中也可以實(shí)現(xiàn)一定的邏輯功能,腳本需要通過(guò)主程序或系統(tǒng)程序解釋執(zhí) 行。并且腳本比較接近自然語(yǔ)言,可以不經(jīng)編譯而是解釋執(zhí)行,利于快速 開(kāi)發(fā)或一些輕量的控制。正是因?yàn)槟_本的簡(jiǎn)單靈活,所以在軟件開(kāi)發(fā)中已經(jīng)被非常普遍地使用,并涌現(xiàn)了 Lua、 Python、 PHP等知名腳本語(yǔ)言。腳本近幾年又被大規(guī)模地應(yīng)用在游戲開(kāi)發(fā)中,比如任務(wù)、AI、 GUI等游戲功能。目前游戲里使用腳本主要有Lua、 Python兩種,如果想要在游戲程序里使用這些腳本,就必須實(shí)現(xiàn)腳本和程序之間互相通信的中間層,比如函數(shù)調(diào)用、對(duì)象訪問(wèn)等。同時(shí)還存在一個(gè)嚴(yán)重的問(wèn)題,盡管這些腳本相對(duì)來(lái)說(shuō)比較簡(jiǎn)單方便,但是還是需要程序員來(lái)編寫(xiě),有一定的難度。并且這些腳本本身也是通用語(yǔ)言,功能比較龐雜,而大多數(shù)功能并不是游戲開(kāi)發(fā)所需要,同時(shí)游戲需要的功能它們又缺乏。因此需要一種能和游戲程序良好結(jié)合,同時(shí)簡(jiǎn)單易用的方法來(lái)實(shí)現(xiàn)游戲的開(kāi)發(fā)制作。 發(fā)明內(nèi)容4本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,提供一種通 過(guò)腳本開(kāi)發(fā)電腦游戲的方法。本發(fā)明的目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn)通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,涉及電腦游戲主程序,其中首先通 過(guò)腳本編輯器調(diào)用腳本弓l擎;隨后腳本弓(擎根據(jù)用戶操作自動(dòng)生成腳本, 并對(duì)腳本進(jìn)行解釋和排錯(cuò),構(gòu)成語(yǔ)法樹(shù),然后通過(guò)腳本引擎的虛擬機(jī)功能 進(jìn)行語(yǔ)法樹(shù)執(zhí)行,展示腳本在電腦游戲中的執(zhí)行情況;最后電腦游戲主程 序通過(guò)腳本弓l擎解釋執(zhí)行腳本實(shí)現(xiàn)游戲邏輯。上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中所述的對(duì)腳本進(jìn)行解釋 包括對(duì)腳本進(jìn)行詞法分析、語(yǔ)法分析和語(yǔ)義檢查。進(jìn)一步地,上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中所述的詞法 分析是從左到右讀取腳本的字符流,并分離、識(shí)別出一個(gè)個(gè)記號(hào),列出各 個(gè)記號(hào)的正則表達(dá)式,根據(jù)正則表達(dá)式構(gòu)造不確定的有限自動(dòng)機(jī),將不確 定的有限自動(dòng)機(jī)轉(zhuǎn)換成確定的有限自動(dòng)機(jī)。更進(jìn)一步地,上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中所述的語(yǔ) 法分析是把詞法分析生成的記號(hào),分組形成語(yǔ)法短語(yǔ)即語(yǔ)法樹(shù),語(yǔ)法分析 戶,循的原則是,辨語(yǔ)言的語(yǔ)法規(guī)則。更進(jìn)一步地,上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中所述的語(yǔ) 義檢査是通過(guò)語(yǔ)法分析獲得的語(yǔ)法樹(shù)來(lái)確定腳本的意義,并檢查腳本是否 有語(yǔ)義錯(cuò)誤,為語(yǔ)法樹(shù)執(zhí)行做好準(zhǔn)備。更進(jìn)一步地,上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中電腦游戲 主程序?yàn)槟_本提供接口函數(shù),包括對(duì)電腦游戲的對(duì)象屬性讀寫(xiě)、玩家和電 腦游戲的交互、技能和任務(wù)操作、道具和裝備操作、數(shù)據(jù)類型轉(zhuǎn)換、電腦 游戲邏輯功能的接口 ,并且需要把這些接口函數(shù)注冊(cè)到腳本弓l擎中。器設(shè)有管理和編寫(xiě)腳本的可視化操作界面,該操作界面上集成了電腦游戲 主程序提供的功能接口和腳本支持的各種語(yǔ)法功能接口 ,對(duì)腳本語(yǔ)義邏輯 進(jìn)行動(dòng)態(tài)展示。
再進(jìn)一步地,上述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其中所述的腳 本編輯器采用的是MVC模型,腳本編輯器分為詞法分析單元、語(yǔ)法分析 單元、語(yǔ)法樹(shù)單元,其視圖界面包括主界面視圖、函數(shù)視圖和新建修改項(xiàng) 視圖,各視圖均對(duì)應(yīng)于各自的控制單元。
本發(fā)明技術(shù)方案的突出的實(shí)質(zhì)性特點(diǎn)和顯著的進(jìn)步主要體現(xiàn)在能和 游戲程序良好結(jié)合,在函數(shù)調(diào)用、數(shù)據(jù)訪問(wèn)等腳本和程序的交互上不再需 要中間層,并把一些接口函數(shù)和腳本語(yǔ)句集成在腳本編輯器里,可以直接 操作編輯器自動(dòng)生成腳本,使得腳本開(kāi)發(fā)變得非常簡(jiǎn)單。同時(shí),不容易產(chǎn) 生錯(cuò)誤, 一般的策劃人員就能編寫(xiě)腳本。綜上所述,使用該腳本系統(tǒng)可以 簡(jiǎn)化游戲腳本開(kāi)發(fā),減少程序員的數(shù)量,大幅提高游戲開(kāi)發(fā)效率。腳本實(shí) 現(xiàn)了函數(shù)調(diào)用、變量和常量、字符串處理、條件判斷、算術(shù)邏輯運(yùn)算等功 能,并且該腳本系統(tǒng)的語(yǔ)法和C語(yǔ)言完全一致。由此可見(jiàn),本發(fā)明為本領(lǐng) 域的技術(shù)進(jìn)步拓展了空間,實(shí)施效果好。
本發(fā)明的目的、優(yōu)點(diǎn)和特點(diǎn),將通過(guò)下面優(yōu)選實(shí)施例的非限制性說(shuō)明 進(jìn)行圖示和解釋。這些實(shí)施例僅是應(yīng)用本發(fā)明技術(shù)方案的典型范例,凡采 取等同替換或者等效變換而形成的技術(shù)方案,均落在本發(fā)明要求保護(hù)的范 圍之內(nèi)。這些附圖當(dāng)中,
圖1是本發(fā)明的整體流程示意圖2是腳本引擎執(zhí)行流程示意圖3腳本編輯器的工作截圖。
具體實(shí)施例方式
如圖l、圖2所示,通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,涉及電腦游戲主程 序1 ,其為腳本2提供需要調(diào)用的電腦游戲數(shù)據(jù)訪問(wèn)和用于邏輯調(diào)用的功能
接口,該方法的特別之處在于首先通過(guò)腳本編輯器3調(diào)用腳本引擎4;隨
后腳本弓|擎4根據(jù)用戶操作自動(dòng)生成腳本2,并對(duì)腳本2進(jìn)行解釋和排錯(cuò), 構(gòu)成語(yǔ)法樹(shù),然后通過(guò)腳本引擎4的虛擬機(jī)功能進(jìn)行語(yǔ)法樹(shù)執(zhí)行,展示腳 本在電腦游戲中的執(zhí)行情況;最后電腦游戲主程序1通過(guò)腳本引擎4解釋 執(zhí)行腳本實(shí)現(xiàn)游戲邏輯。
同時(shí),電腦游戲主禾驕1通過(guò)腳本引擎4,向腳本2提f對(duì)妾口函數(shù),包 括對(duì)電腦游戲的對(duì)象屬性讀寫(xiě)、玩家和電腦游戲的交互、技能和任務(wù)操作、 道具和裝備操作、數(shù)據(jù)類型轉(zhuǎn)換等電腦游戲邏輯功能接口。進(jìn)一步來(lái)看, 前述的腳本引擎4執(zhí)行中的解釋涉及對(duì)腳本2進(jìn)行詞法分析5、語(yǔ)法分析6、 語(yǔ)義檢査7。參考圖2所示首先字符流經(jīng)過(guò)詞法分析5構(gòu)成一個(gè)記號(hào)流, 隨后記號(hào)流通過(guò)語(yǔ)纟去分析6構(gòu)成語(yǔ)法樹(shù),然后對(duì)語(yǔ)法樹(shù)進(jìn)行語(yǔ)義檢査7,獲 取正確的語(yǔ)法樹(shù),最后來(lái)執(zhí)行該語(yǔ)法樹(shù)即可。
具體來(lái)說(shuō),詞法分析5的主要方式就是從左到右地讀腳本的字符流, 即讀取腳本里所包括的字母、數(shù)字、運(yùn)算符、分隔符以及一些專用字符, 并分離、識(shí)別出一個(gè)個(gè)記號(hào)CToken)。根據(jù)編譯原理,詞法分析5主要是列 出各個(gè)記號(hào)的正則表達(dá)式,根據(jù)正規(guī)式構(gòu)造不確定的有限自動(dòng)機(jī),將不確 定的有限自動(dòng)機(jī)轉(zhuǎn)換確定的有限自動(dòng)機(jī)等步驟,根據(jù)有限自動(dòng)機(jī)就可以實(shí) 現(xiàn)詞法分析5程序。
比如,當(dāng)編程人員輸入int^l+2,則進(jìn)行詞法分析5的結(jié)果就是
*類型關(guān)鍵字int
*標(biāo)示符a;
7*賦值=; *數(shù)字1; *加號(hào)+ *數(shù)字2。
語(yǔ)法分析6就是把詞法分析5生成的記號(hào)(TokerO流分組形成語(yǔ)法短語(yǔ) 即語(yǔ)法樹(shù)(Syntax tree),同時(shí)語(yǔ)法分析6所遵循的原則是程序語(yǔ)言的語(yǔ)法規(guī) 則。
所述的語(yǔ)義檢查7是使用語(yǔ)法分析6獲得的語(yǔ)法樹(shù)來(lái)確定源程序的意 義,并檢査程序是否有語(yǔ)義錯(cuò)誤,為語(yǔ)法樹(shù)執(zhí)行做好準(zhǔn)備。具體來(lái)說(shuō),語(yǔ) 義檢査7的一個(gè)工作就是進(jìn)行類型檢查,檢査每個(gè)算符是否就有語(yǔ)言規(guī)范 的運(yùn)算對(duì)象。比如"b + 4",在語(yǔ)義檢查7時(shí)會(huì)檢査"b"的類型,如果"b" 是整型,貝U"b + 4"依然有效,如果是"b"是實(shí)型,則會(huì)將整型"4"轉(zhuǎn)換為"4.0"。
為了在最大程度上便于用戶編輯,腳本編輯器3設(shè)有管理和編寫(xiě)腳本2 的可視化操作界面,該操作界面上集成了電腦游戲主程序1提供的功能接 口和腳本2支持的各種語(yǔ)法功能接口 ,也就是說(shuō)接口函數(shù)和常用的語(yǔ)句都 集成在編輯器的操作界面內(nèi),開(kāi)發(fā)人員只需要操作界面就可以很方便的把 這些函數(shù)和語(yǔ)句添加到腳本里。通過(guò)腳本編輯器3能對(duì)腳本2語(yǔ)義邏輯進(jìn) 行動(dòng)態(tài)展示,給用戶一個(gè)所見(jiàn)即所得的環(huán)境,即如圖3所示。另外編輯器 通過(guò)調(diào)用腳本引擎4對(duì)腳本2進(jìn)行解釋和排錯(cuò)。
腳本編輯器3能夠模擬腳本執(zhí)行過(guò)程,展示腳本在電腦游戲中的執(zhí)行 情況,主要是模擬執(zhí)行腳本中的交互菜單邏輯,編輯人員可以在編輯器里 執(zhí)行菜單,從而檢查和編輯菜單內(nèi)容。
具體來(lái)說(shuō),所述的腳本編輯器3采用的是MVC模型,設(shè)有界面視圖、 函數(shù)視圖和新建修改項(xiàng)視圖,每個(gè)視圖都對(duì)應(yīng)各自的控制單元。當(dāng)腳本編輯器3載入一個(gè)腳本2文件的時(shí)候,會(huì)調(diào)用詞法分析單元和 語(yǔ)法單元對(duì)文件進(jìn)行解析,把解析結(jié)果傳遞給語(yǔ)法樹(shù),并通知主界面視圖 去載入語(yǔ)法樹(shù),顯示在主界面視圖上;需要保存當(dāng)前的腳本2文件時(shí),腳 本編輯器3將語(yǔ)法樹(shù)輸出到腳本2文件中即可;當(dāng)腳本編輯器3添加一個(gè) 項(xiàng)時(shí),首先通過(guò)語(yǔ)法分析單元去分析該項(xiàng),然后將分析結(jié)果添加到語(yǔ)法樹(shù) 中的相應(yīng)位置;當(dāng)刪除一個(gè)項(xiàng)時(shí),只需要對(duì)語(yǔ)法樹(shù)中相應(yīng)的節(jié)點(diǎn)刪除即可。 同時(shí),當(dāng)腳本編輯器3的視圖展開(kāi)或收起某一個(gè)條件開(kāi)關(guān)時(shí),語(yǔ)法樹(shù)會(huì)重
新分析該子樹(shù),將該子樹(shù)的可見(jiàn)信息顯示在視圖內(nèi),同時(shí)將對(duì)話信息顯示 在菜單列表里。進(jìn)一步來(lái)看,當(dāng)點(diǎn)擊某一個(gè)菜單列表里的選項(xiàng)的時(shí),語(yǔ)法 樹(shù)會(huì)通過(guò)語(yǔ)義映射表,査到相應(yīng)的節(jié)點(diǎn),并通知主界面控制模塊將當(dāng)前選 擇項(xiàng)切換到相應(yīng)的節(jié)點(diǎn)。
并且,從圖3看以看出,本發(fā)明所采用的腳本編輯器3支持中文模式, 即函數(shù)名可用中文顯示,主界面視圖會(huì)將語(yǔ)法樹(shù)中函數(shù)轉(zhuǎn)換成相應(yīng)的文字 說(shuō)明,以供策劃去編輯,當(dāng)策劃編輯之后,主界面視圖會(huì)通知詞法和語(yǔ)法 分析單元對(duì)相應(yīng)的修改部分重新分析并修改語(yǔ)法樹(shù)。同時(shí),腳本編輯器3 支持査找和替換接口,便于策劃可以在整個(gè)語(yǔ)法樹(shù)中査找所需要的關(guān)鍵字。
采用本發(fā)明后,能和游戲程序良好結(jié)合,在函數(shù)調(diào)用、數(shù)據(jù)訪問(wèn)等腳 本2和程序的交互上不再需要中間層,并把一些接口函數(shù)和腳本2語(yǔ)句集 成在腳本編輯器3里,可以直接操作編輯器自動(dòng)生成腳本2,使得腳本開(kāi)發(fā) 變得非常簡(jiǎn)單。同時(shí),不容易產(chǎn)生錯(cuò)誤, 一般的策劃人員就能編寫(xiě)腳本。 綜上所述,使用該腳本2系統(tǒng)可以簡(jiǎn)化游戲腳本開(kāi)發(fā),減少程序員的數(shù)量, 大幅提高游戲開(kāi)發(fā)效率。
9
權(quán)利要求
1、通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,涉及電腦游戲主程序,其特征在于首先通過(guò)腳本編輯器調(diào)用腳本引擎;隨后腳本引擎根據(jù)用戶操作自動(dòng)生成腳本,并對(duì)腳本進(jìn)行解釋和排錯(cuò),構(gòu)成語(yǔ)法樹(shù),然后通過(guò)腳本引擎的虛擬機(jī)功能進(jìn)行語(yǔ)法樹(shù)執(zhí)行,展示腳本在電腦游戲中的執(zhí)行情況;最后電腦游戲主程序通過(guò)腳本引擎解釋執(zhí)行腳本實(shí)現(xiàn)游戲邏輯。
2、 根據(jù)權(quán)利要求1所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于所述的對(duì)腳本進(jìn)行解釋包括對(duì)腳本進(jìn)行詞法分析、語(yǔ)法分析和語(yǔ) 義檢査。
3、 根據(jù)權(quán)利要求2所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于所述的詞法分析是從左到右讀取腳本的字符流,并分離、識(shí)別出 一個(gè)個(gè)記號(hào),列出各個(gè)記號(hào)的正則表達(dá)式,根據(jù)正則表達(dá)式構(gòu)造不確定 的有限自動(dòng)機(jī),將不確定的有限自動(dòng)機(jī)轉(zhuǎn)換成確定的有限自動(dòng)機(jī)。
4、 根據(jù)權(quán)利要求2所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于所述的語(yǔ)法分析是把詞法分析生成的記號(hào),分組形成語(yǔ)法短語(yǔ)即 語(yǔ)法樹(shù),語(yǔ)法分析所遵循的原則是程序語(yǔ)言的語(yǔ)法規(guī)則。
5、 根據(jù)權(quán)利要求2所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征在于所述的語(yǔ)義檢査是通過(guò)語(yǔ)法分析獲得的語(yǔ)法樹(shù)來(lái)確定腳本的意 義,并檢査腳本是否有語(yǔ)義錯(cuò)誤,為語(yǔ)法樹(shù)執(zhí)行做好準(zhǔn)備。
6、 根據(jù)權(quán)利要求1所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征在于電腦游戲主程序提供腳本調(diào)用的接口函數(shù),包括對(duì)電腦游戲的對(duì) 象屬性讀寫(xiě)、玩家和電腦游戲的交互、技能和任務(wù)操作、道具和裝備操 作、數(shù)據(jù)類型轉(zhuǎn)換、電腦游戲邏輯功能的接口,并且需要把這些接口函 數(shù)注冊(cè)到腳本引擎中。
7、 根據(jù)權(quán)利要求1所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于腳本編輯器設(shè)有管理和編寫(xiě)腳本的可視化操作界面,該操作界面 上集成了電腦游戲主程序提供的功能接口和腳本支持的各種語(yǔ)法功能 接口,對(duì)腳本語(yǔ)義邏輯進(jìn)行動(dòng)態(tài)展示。
8、 根據(jù)權(quán)利要求1所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于腳本編輯器模擬腳本執(zhí)行過(guò)程,展示腳本在電腦游戲中的執(zhí)行情 況,即模擬執(zhí)行腳本中的交互菜單邏輯,編輯人員在編輯器里執(zhí)行菜單, 從而檢查和編輯菜單內(nèi)容。
9、 根據(jù)權(quán)利要求1所述的通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,其特征 在于所述的腳本編輯器采用的是MVC模型,腳本編輯器分為詞法分 析單元、語(yǔ)法分析單元、語(yǔ)法樹(shù)單元,其視圖界面包括主界面視圖、函 數(shù)視圖和新建修改項(xiàng)視圖,各視圖均對(duì)應(yīng)于各自的控制單元。
全文摘要
本發(fā)明涉及一種通過(guò)腳本開(kāi)發(fā)電腦游戲的方法,屬于推算技術(shù)領(lǐng)域。其涉及電腦游戲主程序,特點(diǎn)是首先通過(guò)腳本編輯器調(diào)用腳本引擎;隨后腳本引擎根據(jù)用戶操作自動(dòng)生成腳本,并對(duì)腳本進(jìn)行解釋和排錯(cuò),構(gòu)成語(yǔ)法樹(shù),然后通過(guò)腳本引擎的虛擬機(jī)功能進(jìn)行語(yǔ)法樹(shù)執(zhí)行,展示腳本在電腦游戲中的執(zhí)行情況;最后電腦游戲主程序通過(guò)腳本引擎解釋執(zhí)行腳本實(shí)現(xiàn)游戲邏輯。該方法能和游戲程序良好結(jié)合,在函數(shù)調(diào)用、數(shù)據(jù)訪問(wèn)等腳本和程序的交互上不再需要中間層,可以直接操作編輯器自動(dòng)生成腳本,使得腳本開(kāi)發(fā)變得非常簡(jiǎn)單且不容易產(chǎn)生錯(cuò)誤,一般的策劃人員就能編寫(xiě)腳本。
文檔編號(hào)G06F9/44GK101634940SQ20081002080
公開(kāi)日2010年1月27日 申請(qǐng)日期2008年7月25日 優(yōu)先權(quán)日2008年7月25日
發(fā)明者陸利民 申請(qǐng)人:蘇州市蝸牛電子有限公司