1 遊戲開發中的可配置性
一: 需求**
與其他業務需求不同,或者更突出的是,遊戲邏輯開發需要有極強的可配置性。主要原因在於
1 遊戲後端工程師僅僅是實現了一套邏輯框架,框架中具體的數值是有策劃配置的
2 類似npc對話的具體內容由策劃配置
3 有一些行為由策劃配置(程式僅僅給出乙個解決方案,組合成什麼樣的行為由策劃決定,如
我們專案中的怪物行為樹)。其他類似一些副本,場景時間,技能觸發時間等,都可以通過這種
方式處理。缺點是函式呼叫不太好追蹤,如果不熟悉**,除錯困難。使用場景簡單說就是
特定事件發生後,會怎麼處理,這裡的處理函式做成匯出,通過配置找到指定的函式,這樣的話
就可以組合不同的函式來匹配不同的事件。
解決方案
1 針對每個模組數值類,屬性類的配置,可以通過excel檔案或者ini檔案,json檔案等方式設定,
實際使用中包括物品,裝備,技能等等,大部分配置屬於這種方式,由程式和策劃溝通好即可。
2 如npc對話類的配置,在專案中採取的是lua方式。lua作為粘合語言,在遊戲中作為乙個可配接的
模組,可以很好的解決這一需求。
npc對話的格式為:
title:「需要幫助嗎」
可選項: 1 內容@lua函式名 2 內容@lua函式名 3 內容@lua函式名…
當玩家選中npc,伺服器將上面所有內容傳送給客戶端,客戶端顯示出函式名外的其他部分
當玩家選中具體項,客戶端返回(1.2.3)具體哪一項的內容,伺服器解析到函式名,由lua處理
所以乙個npc 對話的lua類似於
可以選擇一項啊
1 領取寵物@getpet
2 領取獎勵@getprize
3 領取任務@gettask
再用lua實現getpet,getprize,gettask即可
3 第三種配置目的在於提供一些行為函式,策劃根據這些函式可以組合成乙個完整的物件。因而這一配置
需要根據字串找到相應的函式,專案中實現了這一模組,所有匯出函式採用統一的格式,通過函式名
找到函式位址(getproaddress)。
通訊階段總結(2)
以下是在通訊階段遇到的問題的部分總結,或者說是需要注意的地方。1 埠被占用 在測試程式時,有時會發現telnet 不上伺服器,這時應該首先懷疑是埠出了問題。一般來說埠數1024 以下的埠會被系統占用,系統開放的埠從0 65535 這時我們就應該選擇1024 之後的埠才不會出問題。2 死迴圈 我們在寫...
前端學習階段總結(2)
原始值 首先,先來說一下棧,棧的特點為先入後出。採用動態一維陣列來儲存棧。所謂動態,指的是棧的大小可以根據需要增加。原始值位於棧內,也遵循先入後出的特點。重點是 賦值為copy的關係。例如 請大家看到這裡停下來想一想,輸出的a,b的值分別是什麼?b是否會隨著a的改變而改變?試驗後,想必都可以得到20...
階段總結 2011 總結
今天晚上 09級的軟體學院的學生就要進行畢業聚餐,學生給我打 讓我參加。接到學生的 我很矛盾,這是我帶的第一屆學生,學生的學習時間只有兩年,而我也參加工作兩年了。學生畢業了,我也到了該總結的時候了。我在一所普通的高校工作,這所高校也是我的母校,研究生畢業後本來已經簽到西安中興了,可是耐不住家人的勸說...