張慶員
(遼河油田通信公司,遼寧 盤錦 124010)
早期的游戲開發受技術所限,基本上都是為專用設備開發的能充分發揮那些并不算先進的計算機設備的運算能力。即使這樣也只能擁有非常簡陋的畫面,并運行在比較低的速度上,甚至運行起來還不是很穩定。
那時候的游戲開發人員使用的大都是匯編語言,有些甚至要依靠機器碼來完成工作。一個游戲的最初創意,到畫面設計,到程序編制都由一個人完成。游戲開發人員往往要在有限的內存空間里面放置盡可能多的功能與數據,有時候還不得不自己動手完成一些奇特的動畫效果。在這個游戲編程的史前時代,游戲開發人員最大的敵人并非自己源源不絕的創意,而是那些大大限制自己創意發揮的計算機運算能力。
游戲開發領域的一大主要特點就是需求頻繁變動,相對商用軟件以市場為導向的開發需求變動趨勢,游戲開發的需求主要依賴十游戲設計人員對游戲形式天馬行空的想象,在想象的過程中需求的頻繁變動是難以避免的。從某種程度上說,正是游戲內容的巨大變化造就了游戲的可玩性,而軟件的價值所在。
敏捷軟件開發 (Agile Software Development)是指符合敏捷軟件開發宣言所宣揚的軟件開發核心價值觀的一組全新的軟件開發方法和實踐,敏捷軟件因其有區別于傳統軟件工程的靈活性在近兩年被廣泛應用于商用軟件開發領域。以XP(Extreme Programming,極限編程)和SCRUM為代表的敏捷軟件開發方法,在否定傳統軟件工程以物為中心的錯誤觀念的基礎上,提出了以人為本的全新軟件開發理念。當今全世界的軟件開發領域都在經歷一場以敏捷為目標的開發思想上的深刻變革,無論是游戲業,還是我國的軟件開發工業都將受到這一巨大變革的影響。敏捷軟件開發宣言是以Kent Beck,Robert C.Martin,Martin Fowle:為首的一群軟件開發資深專家針對當前軟件開發過程中的主要問題,提出的一組核心價值觀。

SCRUM軟件開發過程
Sprint周期(Sprint cycle):為期1到4周的一個開發迭代周期,在周期開始時團隊配合用戶選定最優先的需求,并努力在周期結束時提供滿足該需求的可運行的軟件產品。每口Sprint周期(Daily sprint cycle):為其1天的開發迭代子周期,在每口工作開始前團隊成員需匯報自己前一天的工作成果,并公開描述自己當口的工作計劃。產品列表(Product backlog):該列表包含有用戶對產品功能的所有需求,并以需求的緊急程度和商業價值為依據排序。Sprint列表(Sprint backlog):在Sprint開始前從產品列表中根據重要程度和工作量選擇的若干需求項。該列表需經過團隊成員的討論進而將每個需求項分割為具體的工作任務,針對每個工作任務都需要進行工作量的估算。延燒圖(Burndown chart):表明項目剩余工作量的直觀圖表,用于向團隊成員展示當前項目的狀態。
XNA Game Studio 1.0只能以Visual C#2005 Express為運行平臺。XNA GameStudio 2.0則可以與Visual Studio 2005家族的任意一款IDE產品配合使用,包括Visual C#2005 Express以及Visual Studio 2005 Team System。未來將要推出的XNA Game Studio 3.0則需要配合Visual Studio 2008使用。在IDE方面,微軟公司自己出品的Visual Studio 2005與XNA配合使用是最好的。
MagicDraw
UML在近幾年中已經發展為軟件設計領域的行業標準,UML圖成為技術交流和文檔紀錄的主要工具敏捷軟件開發追求適度的設計,將具備自解釋能力的軟件代碼視為最重要的產品文檔。因此,在敏捷軟件開發方法中并不要求UML圖包含過多的細節,UML圖往往只記錄系統的整體概況,以表明系統的總體結構為主要目標。該框架的研究工作選用的M agicDraw繪圖軟件在名氣上可能不如Visio,Rational Rose等軟件,但是其功能卻非常強大。該軟件不但支持所有UML2.0規則下的圖形,而且'繪制操作為軟件開發工作專門簡化過,操作極其簡便。
SCRUM軟件開發方法本身的簡便性決定了該研發過程管理工作的簡單性。Excel表格處理軟件正好可以存儲SCRUM開發方法中的產品列表,通過ExcelVBA的功能擴展,Excel軟件可以自動記錄并生成研究工作進度所需的延燒圖。與Project等大型項目管理軟件相比,Excel與SCRUM軟件開發方法的需求恰好合適。該框架的研發計劃列表均使用Excel制作。
框架是為了加快某一特定領域應用程序的開發速度而研發的一種軟件工具。與傳統的應用程序類庫技術有所不同,框架定義了應用程序宏觀的結構,將應用程序中的具體細節留給開發人員實現。框架的開發與類庫的開發一樣,不但要解決特定領域的問題,而且這種解決方案還必須具備一定的可重用性。這是框架研發工作的核心,也是框架研發過程的難點。

為程序提供合理的可重用性主要有兩種方法:第一種方法要求程序的設計人員具備豐富的相關行業經驗,憑經驗來判斷某些程序功能的通用性,進而在總體設訓一的時候就將可伸縮性考慮進去。因為這種方法是從總體設計層次著手,依次添加其下各邏輯層次的內容,因此可以稱之為“自上而下”的框架研發方法。第二種方法要求程序設計人員實現該領域中比較常見的若干具體應用程序,然后使用重構技術將若干具體應用程序中公共的部分抽取出來,并將抽取的部分集合起來。
如前所述,該框架的研究工作采用SCRUM軟件開發過程,以迭代的方式研制基于XNA的2D游戲框架。在每個迭代周期中都將建立一個可以運行的基于XNA技術的簡單游戲,每個游戲都是某一特定類型游戲的代表,且都側重表現了游戲技術中較為常用的一個或幾個功能。
在游戲類型的選擇上同時包含規則復雜的游戲和規則簡單的游戲就可以同時照顧到針對初級玩家的游戲和針對高級玩家的游戲,同時包含磚塊式的游戲和連續式的游戲就可以同時照顧到簡單的游戲顯示技術和復雜的游戲顯示技術,同時包含動作游戲和解迷游戲就可以同時照顧到不同風格的游戲內容和游戲控制方法。因此,該框架在研究過程中覆蓋了十分廣泛的游戲內容。
本文首先簡要介紹了敏捷軟件開發方法的核心思想和部分重要實踐,緊接著介紹了SCRUM軟件開發過程的大體框架。這些內容是推動該框架研究工作的根本方法。其次介紹了該框架研發工作中使用的各類工具,內容包含編程工具、文檔工具、進度規劃工具等,這些工具為研究工作的完成提供了不可或缺的幫助。最后介紹了該框架的研制工作所使用的“自下而上”的框架研發方法,以及該方法的特點。同時還介紹了在研發過程中主要涉及的游戲類型及其對應的典型游戲和研發過程中的各研發重點。
[1]利斌.全球數字娛樂業崛起,電子出版,2002年
[2]李蕊.試析數字化時代電子游戲對電影的滲透,現代電影技術,2007年