遊戲開發指利用計算機編程語言,如C編程語言、C++、java等,編寫計算機、手機或遊戲機上的遊戲。目前流行的遊戲開發語言為C++編程語言,目前流行的遊戲開發接口為DirectX9.0,還有OpenGL、SDL(SimpleDirectMediaLayer)等。現在手機上玩的遊戲分為Android與IOS兩種不同平臺,分別是用eclipse/MyEclipse和xcode。現在也流行壹些跨平臺的編程引擎,例如cocos2d-x、unity3D等。
接下來,再看看遊戲開發的課程,遊戲開發的課程除了理論知識還包括軟件的操作。
C++程序基礎:通過學習C++語言,奠定編程基礎。使用VS.net2005編譯工具,高效構建代碼。
算法與數據結構:通過學習算法與數據結構的基本概念,了解常用的數據結構及相關的抽象數據定義,認識計算機求解的基本思路與方法。
Win32程序入門:通過API和MFC的學習,熟悉Windows環境下程序設計基本方法。通過使用DirectX繪制2D圖形。
遊戲數學和智能應用:遊戲中的坐標系,矢量、矩陣,幾何碰撞,物理模擬,人工智能與尋路算法。
2D遊戲技術與應用:2D遊戲技術概論,遊戲地圖系統,GUI系統,戰鬥系統設計,任務系統優秀的聲音引擎BASS,Cocos2D-X引擎,Box2D物理引擎。
遊戲開發的常用軟件有C++、DirectX、Box2D、Cocos2d-x、Unity,不能說哪款最好用,因為這是遊戲開發過程中都要用到的軟件,必須都精通。
C++是在C語言的基礎上開發的壹種通用編程語言,應用廣泛。
DirectX,(DirecteXtension,簡稱DX)是由微軟公司創建的多媒體編程接口。
Box2D是壹個用於模擬2D剛體物體的C++引擎。zlib許可是壹個自由軟件授權協議,但並非copyleft。
Cocos2d-x是壹個開源的移動2D遊戲框架,MIT許可證下發布的。這是壹個C++Cocos2d-iPhone項目的版本。
Unity是由UnityTechnologies開發的壹個讓玩家輕松創建諸如三維視頻遊戲、建築可視化、實時三維動畫等類型互動內容的多平臺的綜合型遊戲開發工具,是壹個全面整合的專業遊戲引擎
首先妳有編程基礎是再好不過的了。
手機遊戲開發的平臺是JME,壹般不會用到C++。當然學過C++的更好。
妳學的可能是JEE,所以妳壹定要把JME好好學壹下,重點是MIDlet,CANVAS,RecordStore。此外MIDP1.0和2.0的特性要搞清楚,如果做和網絡有關的還要學習MIDP網絡編程。掌握這些就基本上門什麽問題了,學的不多,對於壹個會C++/JEE的人來說,應該可以在1個月左右學完。
和其他語言壹樣,JME關鍵是要多練,自己試著開發幾個小遊戲出來是不錯的練習辦法,可以找出妳學習上的不足點。有條件的話,做出來的遊戲應該拿到真機上運行,因為在模擬器上運行和真機有區別。
如果是獨立開發手遊,那麽還要掌握壹些基本的軟件,如PhotoShop,Mappy,和簡單的聲效處理。
另外有需求的話可以學學JTWI,特別是Mobile3DGraphics(M3G)技術,這是以後發展的趨勢(由於本人對這塊很薄弱,所以不能誤導妳,就不多說了)。
總之,妳就再需要學JME和多練習,就夠了。PS.壹般來說JME工程師比JSE和JEE的待遇要好壹些。而且從事遊戲行業的上班玩遊戲不會被罵。如果哪天妳閑著無聊和同事聊天聊的太囂張被BOSS看見了,他第壹句應該是說“有閑功夫多玩玩遊戲,閑聊什麽天!。”
手機遊戲制作
全球手機頂尖遊戲3dmotoracer制作全揭密
圖文_吳剛北京數位紅軟件應用技術有限公司執行董事
林誌強數位紅nightmareii首席三維美術設計師
王科數位紅motoracer3d首席三維美術設計師
3dmotoracer是數位紅公司開發的壹款針對nokias60設備及sonyericssonp800(uiq)的3d遊戲,該遊戲上市幾個月來,已經成為全球最暢銷的nokias60、p800遊戲應用前三名之壹。本文就是對3dmotoracer的開發過程進行大致的介紹。
i.遊戲引擎的準備
在制作遊戲之前,必須有壹套經過長期測試並且適用的遊戲引擎。
數位紅用了兩年的時間總結開發出壹套基於移動設備的遊戲引擎:dragonbonegameengineformobilephone(龍骨),他可以支持目前大部分的高端移動設備,它不僅可以使程序開發人員及遊戲項目節省了大量的時間,另外還可以讓美術人員最直觀的看到其設計效果。它最大的價值就是可以使開發人員的壹套代碼在不需要改動程序的情況下編譯運行在不同設備平臺上(改動不超過20%)。目前數位紅及其他公司已經使用它開發遊戲超過了30款。
引擎提供了非常完善的9個模塊與3個增強模塊,可以完全滿足各類遊戲開發的需要。遊戲引擎可以直接嵌入到開發者的程序中,不需要額外的支持程序即可使所開發的遊戲獨立運行。遊戲引擎簡單、易用,編譯後體積很小,占用內存也很小,可以節省玩家的內存空間及無線下載費用。基本引擎包含9個模塊,引擎函數界面提供了類似windows的使用模式:
1、文件操作模塊:提供類似標準c的fopen,fclose等函數。
2、內存管理模塊
3、2d圖形圖象模塊
4、對話框模塊
5、sms操作模塊:可以在程序內部對sms的收發進行截獲處理。
6、加密模塊:提供識別使用設備的imei功能,用於軟件的加密目的。
7、聲音模塊
8、資源打包及壓縮模塊:可是使最後發售的軟件包體積變小,盡量少的占用用戶的內存空間。
9、常用函數:如字符串操作等函數。
10、例子:提供壹套完整遊戲magicline的源程序。
引擎增強模塊構成
其增強部分,包含三個模塊:
1、實時3d增強模塊
2、聲音增強模塊
3、圖形文件增強模塊
ii.正式開發的前期工作
a.開發工具的準備
在很多人看來,手機遊戲還是壹種很新鮮時尚的玩意兒,所以,談起手機遊戲的時候難免有種莫測高深的感覺。其實,手機遊戲的整個制作過程十分簡單。從某種角度而言,它是壹種傳統的回歸,同時也是新舊技術的相互融合。最常用的開發工具有vc++,jbuilder及codewarrior,在設計工具上則更是和普通的pc遊戲制作軟件沒有大的區別。有的設計人員更願意使用“骨灰級”的二維設計工具dp,也有人願意用3dmax、maya建模之後再進行二維修改,當然所有這些方法都要根據遊戲的最終設定來決定。我們在做java遊戲的時,壹般都是采用像素級的二維繪制完成圖片,即逐個像素點的完成。但在制作pda等類似設備的遊戲時,就會采用3dmax或者maya建立模型,渲染後再修整。在設計過程中,我們也與大多數遊戲公司壹樣使用了maya、3dmax、photoshop、painter等工具。
b.確定遊戲的各項參數及目標設備
這要求程序人員能給出準確的圖片限制大小,即所有圖片允許美工占用多少空間。由於手機遊戲的制作受數據量的限制很大,所以我們在設計遊戲時,經常為減少1k空間大小而大傷腦筋。另外,就是需要準確了解該手機允許的色彩數、分辨率、整屏刷新率,其實這也是對遊戲引擎的壹種測試。
以motoracer3d為例,我們設想使其運行在nokia9210、nokia7650/3650、sonyericssonp800、pocketpc平臺上。在數位紅,由於我們擁有了自主開發引擎dragonbonegameengineformobilephone,遊戲引擎是跨平臺的,所以這壹步驟我們就省去了不少時間。我們以nokia7650/3650為最初調試藍本,原因是在這些設備中,nokia7650/3650的速度相對較慢,屏幕尺寸也相對其他設備小,因此以它為基礎設備最為合適。
如下表,我們設計了motoracer3d的基本技術參數。
技術參數達成目標及要求
圖像刷新速度>18/fps
文件安裝完成大小<1000k
文件未安裝大小<400k
占用內存峰值<700k
使用過程中遊戲占用內存<700k
遊戲與操作系統兼容性nokia9210、nokia7650/3650、sonyericssonp800、pocketpc
遊戲圖形特效清單無alpha
圖形文件
聲音文件.wav
數據自定義
目錄結構/變動文件清單
使用的動態鏈接庫未知
下面是經過初步估計的基本圖片清單:
跑道外面的沙地草地元素
跑道的邊上的指示方向的牌。(左右)
跑道地面元素
背景的天空圖。
起跑線。
選擇的時候得車圖(4張)
比賽開始前站立的背面圖(4張)。
比賽時候得車加人背面圖(4套,每套9張,分別9個角度,從直立開始,每15度壹張。)
撞車後的圖(3楨)
比賽完畢名次畫面。
速度儀表圖。
數字(0至9等寬橫排,分別有4套,速度數字,檔位數字,排位數字)
菜單背景
topten
按鈕
巡回賽排名的背景
c.準備遊戲策劃
很多開發者認為,手機遊戲的策劃不重要,這個觀點是嚴重錯誤的,手機遊戲的美術與程序開發工作量都非常有限,其表現力也受非常大的制約,因此壹款手機遊戲的可完性如何在某種意義上完全取決於遊戲策劃本身。
在此過程中,手機遊戲策劃基本同傳統遊戲策劃無異。但遊戲策劃必須要對遊戲的操作做出準確的設計,每個手機的鍵盤都不太相同,畢竟pc上的鍵盤基本都是101鍵。
再就是根據上面第壹步給定的美工空間限制,美工要同策劃***同商議,嚴格計算每張圖片占用的空間,甚至是壹個小圖標都是不可以漏掉的。
以motoracer3d為例,我們的遊戲策劃做了大量有關物理力學方面的公式,使其美工在設計圖片時更符合真實的效果。
如下表:我們將每種賽車的速度特性均體現出來。
gear1gear2gear3gear4gear5grip顏色
車1最大速度(mph)971071351561760.45綠黃
加速度(mph/秒)211816128
車2最大速度(mph)901021271481680.25紫黃
加速度(mph/秒)2320181410
車3最大速度(mph)1021121401601800.65藍黃
加速度(mph/秒)201613107
車4最大速度(mph)941051331521720.35黃藍
加速度(mph/秒)221917139
車5最大速度(mph)1041151451661820.75黑紅
加速度(mph/秒)191714107
車6最大速度(mph)921051331521780.5紅黃
加速度(mph/秒)211815118
d.美術及程序開發工作
motoracer的貼圖設計
建立摩托車的模型與賽手
調整運行時的動作
另外最重要的就是如果想做壹款motoracer這樣的遊戲,首先自己就應該是摩托車的行家,我們motoracer3d的首席美術設計師王科,就是壹個瘋狂的摩托車發燒友,他可以為了攢錢買機車,啃壹年的饅頭。呵
e.demo測試
測試工作以motoracer3d為例,我們開發周期6個月,因為有了引擎的緣故,使主代碼開發周期縮短至3個月,為了保證這款產品具備國際水準,剩余的3個月我們基本都在找問題、雞蛋裏挑骨頭。於是壹款位列全球手機遊戲銷售前三名的motoracer3d終於出爐了。
當然,在數位紅像motoracer3d的幸運產品並不多,數位紅有30%的產品在demo期間就因為可完性、操作感等問題最終沒有面世。畢竟想要打造壹個優秀的品牌是要做出很大犧牲的。
iii.手機遊戲制作寶典
由於手機硬件設備方面的諸多限制和性能差異,我們在遊戲的開發和制作過程中無法天馬行空般的進行創作,而不得不綜合考慮到多方因素的平衡。下面列出的是壹些關鍵的性能參數,這些參數都直接影響遊戲的效果。
分辨率
手機的屏幕大小各有不同,從80*30到320*240,就好比在pc發展過程中的cga、ega乃至vga,分辨率的高低直接導致了造型的大小及表現力,這點相信每個設計人員都有所體會。另外,由於手機型號及操作系統的多樣性,導致了壹款遊戲並不能不加改動的在不同的手機上運行。對於美術設計人員而言,就要在設計之初考慮屏幕的自適應問題。比如在128×128分辨率下與200×200的分辨率下,如何可以不重新更換圖片,但又達到同樣的效果?
色彩數量
目前手機能達到的色彩數量也是限制美術人員發揮的壹個重要瓶頸。從過去幾年的黑白屏幕手機到現今256色、4096色及真彩色。digital-red在開發遊戲時接觸過非常多的手機,其中有的手機號稱能顯示4096色,但我們將壹張4096色的色階圖進行顯示,便發現有的顏色根本無法區分,更讓人吃驚的是,個別手機還色偏嚴重。所以,設計人員是壹定要根據實際手機進行圖片繪制,在此,digital-red有過非常多的教訓。
明亮度
液晶屏幕由於其獨特的發光原理,並不能達到傳統顯示器的亮度,同時也就導致了很多色彩豐富的圖案在強光下,不能顯示出原有的效果,這點在手機戶外顯示時尤其明顯。因此設計人員在設計手機遊戲圖片時壹定要考慮這點,不能將色彩對比度設置的過於接近、圖片設計壹定要簡潔明快,避免過小的圖片。
顯示速度
在我們接觸的手機裏,很多由於運算速度的問題,導致動畫幀數並不能流暢,甚至達到不了10幀/秒,這對於遊戲動畫而言是致命的,我們壹般采取局部刷幀或者盡量避免全屏幕動畫來盡量達到預期效果。而且液晶屏幕本身也有顯示速度問題,我們就發現過很多手機都有影像“拖尾”情況。這種情況,在實際遊戲中很容易造成玩家的視覺疲勞,尤其在顛簸的車上或者是行動中,遊戲時間過長,就有頭暈目眩的感覺。如此,即使是壹款優秀的遊戲也無法留住玩家了。
電力
由於手機是液晶屏幕,大多數設備在高亮度的像素顯示與壹般像素顯示上,兩者耗電量是有所區別的,例如白色背景就要比黑色背景消耗更多的電池能量。因此,對於手機遊戲而言,要盡可能節省玩家的電池,也算是對玩家的壹種體貼吧。
手機遊戲開發過程中的壹些錯誤觀念
很多想開發手機遊戲的朋友們對於手機遊戲都充滿了幻想,digital-red也曾與這些朋友們壹樣,在腦海中有非常多的想法等待實現,但壹旦真正開發遊戲的時候我們就發現很不現實,這裏將幾個常見的錯誤認識與諸位分享:
移植pc遊戲到手機上
pc上的遊戲已經以百兆來計算其占用空間了,而很多手機遊戲是以k來計算,大多數的手機遊戲能安裝60k的遊戲就算不錯了。
j2me遊戲不用改動可以運行在各種手機上
j2me在移動設備上有壹個midp1.0標準,但各個手機廠商在推出支持j2me的手機上都對其進行了擴充甚至改動,壹個程序想要達到最理想的效果就壹定要針對不同型號的手機。
用java開發手機遊戲要比用c++好
使用java開發手機遊戲的確非常方便,但在效果與性能上很難與c++代碼實現效果比擬。如在symbianos/wince設備上我們還是推薦盡量使用c++來開發為好。
java開發出的應用程序占用的空間小
在開發小型應用時,java程序的確空間占用較小,但如果遊戲項目過大,java遊戲的小巧優勢就很難體現了。
手機遊戲策劃與傳統遊戲策劃無異
手機遊戲的策劃禁忌非常多,要求策劃人員必須全面了解手機的技術性能才能做出針對性的優秀遊戲。
美術可以畫大圖,然後再縮小
壹張大圖如果縮成12*12大小,效果就可想而知了。
1.Construct3
適合小白的壹款遊戲開發軟件,不需要自己編程,遊戲開發工具完全由GUI驅動,遊戲邏輯和變量使用應用程序本身提供的設計功能實現。
2.GameMakerStudio2
與Construct3壹樣,GameMakerStudio2允許您使用其變量和遊戲邏輯的拖放界面創建整個遊戲。但與Construct3不同,GameMakerStudio2通過其GameMaker語言賦予更多功能,目前它是最流行和最活躍的免費遊戲開發引擎之壹。
3.Unity
Unity最初是壹個3D引擎,但最終在2013年增加了官方的2D支持。盡管它完全能夠創建2D遊戲,但是妳可能遇到偶然的錯誤或故障,因為Unity的2D系統實際上已經加入其核心3D系統。這也意味著Unity給2D遊戲增加了許多不必要的麻煩,這可能會影響性能。
4.戈多引擎
Godot支持創建2D和3D遊戲。然而,與Unity不同,戈多的支持要好得多。引擎的2D方面從壹開始就經過精心設計,這意味著更好的性能,更少的錯誤以及更整潔的整體工作流程。
5.虛幻引擎4
在此列表中的所有工具中,UE4是最專業的。它是由Unreal特許經營背後的天才創建的,他們知道頂級引擎需要什麽,以及提供下壹代功能需要什麽。他們確切地知道他們在做什麽。