您好,登錄后才能下訂單哦!
前言
很早之前就有做游戲的想法,感覺做游戲真的很酷!但由于時間和技術上的種種限制,沒有去實現,最近終于下決心去學習這方面的知識。
那么,就從今天起,開啟Android的游戲之旅。
第一篇還不涉及到游戲的技術細節,算是游戲變成的一些常識。
以故事開始
故事勾畫出了游戲的動作,目的和流程。故事寫的越詳細,游戲開發的時候寫編碼就會越容易。
故事為什么重要
因為故事是整個游戲實現的基礎,從開始到結尾。
必須要意識到的是一個idea一定要完整,它的每個方面都必須認真地想清楚。
理想的話,你的代碼應該是擁有足夠的可擴展性的,那樣你能夠很有效地去操縱它-特別是在后期你想要增加關卡或者boss到游戲中的時候。
當你在編碼的時候,如果有一個完整的游戲故事,則能夠實時對應。
如果你現在腦袋中有一個關于游戲的故事的話,現在就寫下一個草稿。當你完成游戲的時候,你可以用游戲和它對比一下。
OpenGL和2D
OpenGL和3D的牽扯比較多,但是,渲染2D畫面它也很擅長。實際上,OpenGL渲染和操縱2D圖像比Android內置的方法還要有效。Android的內置API對大部分的應用開發已經足夠好了,但是對于游戲,它更追求效率,OpenGL是最好的方式。
一個典型的游戲運行方式
繪制背景;
如果需要的話移動背景;
繪制文字;
繪制武器,×××等等;
移動每個角色;
播放背景樂和音效;
接受輸入設備的輸入;
跟蹤角色和背景的運動軌跡,確定他們沒有走到不改去的地方。
繪制動畫;
確保物體的運動軌跡符合預期;
記錄玩家得分;
管理網絡;
建立菜單。
游戲引擎
游戲引擎是普遍適用的,必須讓它能夠用在多種情形,可能的話,它應該是可以適用于不同游戲的,這和游戲代碼剛好相反。對于游戲代碼,就像他的名字那樣,它只是針對某個特定地游戲。
游戲引擎需要做的事:
圖形渲染;
動畫;
聲音;
碰撞檢測;
人工智能;
物理;
線程和內存管理;
網絡;
命令翻譯。
游戲引擎通常由低級語言編寫。低級語言提供了一個更直接地方式和硬件連接。一個游戲引擎需要把游戲代碼傳遞給硬件。這樣,游戲就可以跑得更快,操作起來也有更好的體驗。
一個游戲引擎不會為某個游戲做事,比如,它不會因為控制圖像渲染就在屏幕上畫一個小貓,但是它允許你繪制任何事物。畫小貓是游戲代碼來做的,它窒只需要將它想要的傳遞給引擎。
因此你將會在游戲引擎中看到下面的方法:
DrawFunyKitten();
同時,你也會在游戲代碼中看到類似DrawCharacter(funyKitten);的語句。
關于游戲代碼
游戲跑的就是游戲代碼,他不同于游戲引擎,能夠適用多個游戲,它通常是獨一無二的。
當你開發一款小游戲的時候,游戲引擎代碼和游戲代碼可能會契合地很緊密,很難將他們分開。但是理解兩者的關系還是非常重要的。
非常建議你將兩者清晰地分開,這能夠增強你的代碼的可重用性,并且能提高你的開發技巧。另外,一定要避免Lazy code和lazy coding practices,比如代碼不寫注釋,沒有縮進。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。