2004年11月27日 星期六

Flash遊戲程式規劃

玩Flash大概5年的時間,遊戲程式設計,也是現在最常做的事,
一樣的工作,每做個專案,就要想一次實在很累,怎麼讓自己的流程制式化?
先把現在的想法寫下來,也許明天又會有更好的想法也不一定

以下原文於2004/10/1張貼於神魂顛倒論壇
Flash遊戲程式規劃

在拿到一個遊戲的企劃案時,先分析遊戲中需要的程序與物件有哪些
什麼要開發成物件class?只要是再利用性高,且可獨立寫成"獨立物件'的就可把他寫成class,
1.物件的部分
如果可以完整獨立出來,就寫成class,譬如說,計時器,人物血計量表,亂數產生
器...,你可以考慮是否把判斷,或運動引擎也包含在class內,
舉個例子說,你的計時器可以是很單純的計時器,有啟動與停止功能,想知道現在計時器狀況
就判斷他的status變數,至於時間到要做什麼處理,則不管,這些處理程序,由遊戲中的程序
自己依計時器的status變數判斷自時處理,計時器自己只負責計時功能,另外你也可以把
callback功能定義在class內當class的method..當timeout,他會自己啟動

2.程序部分
就依遊戲不同,內容設計,以結構來說簡單你可以定義幾個function
init()初始化所有變數與物件
game_start()遊戲開始所要執行的事,譬如讓運動引擎開始跑,listener開始運作
stage_check()用來判斷目前關卡狀況
stage_finish()完成該關卡所要執行的工作,像成功過場動畫..,呼叫game_check判斷整個遊戲是否已經完成
stage_over()關卡失敗所要執行的工作,像失敗過場動畫..
game_check()判斷整個遊戲是否已經完成
game_finish()整個遊戲完成,成功所要做的工作
game_over()整個遊戲完成,失敗所要做的工作

3.詳細需求清單
在完成以上規劃,接下來就需要一份清楚的遊戲內容清單,包括

1.所有變數列表
可以讓你很清楚紀錄遊戲結構,譬如
game.counter.total_time:設定計時總時間長度..

2.實體instance列表
這是給設計人員看,才不會漏掉動畫沒做到,譬如
開場動畫
過場回饋
xx人物

3.聲音物件列表
聲音物件的控制,全部使用new Sound方式產生,這樣才方便做控制,這清單也是便於把所有
聲音資源整理清楚

4.Depth列表
把物件設定depth做一列表,以避免在設計時,設定錯誤讓一些物件跑不出來

在完成以上,基本上分工就已完成,程式人員即可分工各自寫所負責的class與程序
設計人員也可開始進行設計與聲音處理,在大家的工作完成後,其實整合的時間就不需要
很多即可完成

沒有留言: