遊戲開發需要的背景知識

菠蘿小笨笨發表於2018-06-05

遊戲的發展

      現在公認的第一款電子遊戲(也就是主機遊戲),是 1952 年面世的。遊戲玩的是井字棋,6 年後才出現了簡陋的網球遊戲。
    下面這幅圖就是井字棋遊戲,儘管它與 1952 年的遊戲畫面還是有所出入,但是遊戲內容是一樣的。
                                    這裡寫圖片描述
      此後,就進入了“雅達利”時期。隨後的《太空侵略者》,是最經典的一款遊戲。在這之後,我們耳熟能詳的任天堂紅白機,釋出了《吃豆人》《大金剛》等遊戲。再之後,就進入了各種遊戲主機競相綻放的階段。
      在電腦遊戲方面,第一款電腦遊戲是 1962 年面世的《太空戰爭》。到 1980 年之後,隨著電腦技術的日趨成熟,電腦遊戲的畫面才開始有了逐漸趕超電子遊戲的態勢。到 2005 年之後,隨著電腦圖形硬體的發展,電腦遊戲的發展進入了加速期。

電子遊戲的優勢

      集合了當時高精尖的圖形顯示卡技術,純粹為遊戲所設計。比如索尼的 PS 系列。

電腦遊戲的優勢

      能更換顯示卡和硬體。當顯示卡升級換代的時候,理論上,只要主機板支援,你就可以更新;而電子遊戲主機是固化的硬體,只能靠購買新的版本。

遊戲的種類

從硬體來講,大致可以分為四大類。

      第一類是主機遊戲,業界稱為Console Game。比如微軟的 Xbox 系列、索尼的 PS 系列、任天堂的 Switch、N64、Wii 等。這類遊戲的硬體可以插在電視機或者螢幕上。以前,遊戲的載體一般是光碟、卡帶,現在也可以直接從網上下載。
      這些公司還相應推出了掌上游戲機,比如任天堂的 3DS、NDS、GBA,索尼的 PSP、PSV 等。掌上游戲機的推出,讓玩家隨時隨地可以玩上游戲。由於是專業的遊戲機,比之手機上的遊戲,有更好的操作感,同時也更能體驗到遊戲的樂趣。

      第二類是電腦遊戲。電腦遊戲品類繁多,有 PC 客戶端遊戲,比如《夢幻西遊》《魔獸世界》《星際爭霸》《GTA》等;還有 HTML5 網頁遊戲、Flash 遊戲等等。

      第三類是移動遊戲。包括 Pad 遊戲、手機遊戲。手機遊戲目前品類繁多,包括 App 遊戲、HTML5 遊戲,以及微信釋出的小遊戲。

      第四類是移動遊戲電視機遊戲。隨著安卓系統的興起,電視盒子的出現,出現了一種不需要遊戲主機卻能在電視螢幕上直接玩的遊戲,這就是電視機遊戲。但這類遊戲一般需要用電視遙控器玩,而且由於電視盒子的機能限制,畫面甚至可能比不上手機遊戲,所以只適合閒暇的時候偶爾玩一下。

遊戲開發使用的程式語言

      在最早期的遊戲開發中,比如任天堂的《FamiCom》(我們俗稱《紅白機 FC》)、《Super FamiCom》(我們俗稱《超任 SFC》),都是使用匯編語言進行開發的。早期由於 8 位機能限制,程式設計師們為了優化遊戲速度、提升遊戲畫面,無所不用其極,甚至到了奇技淫巧的地步。到了後期的遊戲(比如《無賴戰士》《足球小將》等),已經將機能挖掘到了極限。到了 16 位機後(任天堂《SFC》、世嘉的《MD》),才逐步使用C 語言進行程式設計。到了 32 位機之後,基本都是使用C/C++ 語言進行程式設計。

遊戲開發學習起步

      想要開發手機遊戲,對技術人員要求很高。手遊有兩種,一種是傳統意義上的原生開發手遊,一種是微信小遊戲和網頁小遊戲。
      遊戲引擎可以購買也可以自己開發。原生手遊的話,用購買的成熟引擎做的話,除錯起來就會比較困難。畢竟要在手機跑,出問題再改,再跑,加上手機記憶體和硬體限制,不如電腦端可以隨時除錯。其次,手遊的開發需要考量更多資源的分配和佔比,釋出的包就是一個考驗,誰也不會下載一個三四百兆的安裝包。
      電腦遊戲開發便捷。事實上,只要開發遊戲,就一定離不開電腦,不管是主機遊戲,還是掌上游戲、移動遊戲,開發一定是在電腦上(或者專用開發電腦);其次,搞明白了電腦遊戲的開發流程和知識之後,其他遊戲的開發也一通百通。

2D 遊戲(特指客戶端遊戲)的剖析和講解

      2D 遊戲涉及最基本的圖形、影象知識。從畫面方面考慮,開發 2D 遊戲只需要你知道 X 和 Y 的位置即可,其他深層次的知識,引擎都可以替你完成。想要製作 3D 畫面,你需要掌握更多的知識,特別是幾何知識,這是毋庸置疑的。對於初學者來說,我們首先需要掌握核心的開發流程,至於過於細節的知識,可以在有了一定基礎之後再進行擴充學習。
      2D 遊戲涉及最核心的網路呈現過程。網路資料在客戶端和伺服器端之間傳輸,經過伺服器端計算的資料返回給客戶端,客戶端進行呈現。

2D 遊戲的型別

1. 橫版遊戲

      經典遊戲《超級瑪麗》就是一款橫版過關遊戲。橫版遊戲,是 2D 遊戲可以實現的最基本的內容。橫版遊戲最主要的特點是它的畫面,這種 2D 平面的畫面只有左右兩側畫面可以控制,玩家體驗通常比較順暢。還有前幾年大火的《水管鳥》、耳熟能詳的《魂鬥羅》,以及 Steam 上的《返校》等等,都是橫版 2D 遊戲。

2. 俯視視角遊戲

      俯視視角的遊戲。比如 FC 上的《勇者鬥惡龍》《大航海時代》等等。這類的遊戲提供一個空中俯視的視角給玩家,能很清晰地看到遊戲中呈現的所有地圖和區域。在區域中,主角可以給玩家呈現四個、六個或者八個方向的旋轉和移動。在橫版遊戲中,玩家只能左右或者上下進行移動,而俯視角的遊戲則可以移動四個、六個或八個方向。比如,在《GTA2》中,可以朝各個方向移動,並且通過縮放實現了主角的上下跳躍的視覺呈現。

3. 斜 45 度角的視角遊戲(“偽 3D”遊戲)

      斜 45 度角的視角遊戲。我們看到大量的網頁遊戲、Flash 遊戲、一些早期所謂的 2.5D MMO 遊戲,都是這種型別的視角。這種視角下的遊戲,也被俗稱為“偽 3D”遊戲。我們可以通過八個或者六個方向進行操作。地圖和建築物都是斜 45 度角的,做得好的遊戲可以進行縮放,所以看起來就像是 3D 的畫面。

      到了 2D 斜 45 度角的後期,我們都使用 3D 建模,然後把它轉成 2D 圖形來進行製作。因為在 2D 角度下,有一個很細節的問題,那就是左右手腳的交換。也就是說,如果角色右手拿著武器,往左邊走,當它在往右側走的時候,為了節省資源和程式設計的方便,會對人物進行映象繪製,這就變成了左手拿著武器了。
      到了後期的 2D MMO 遊戲中,我們會通過 3D 建模,製作大量的非映象圖片來契合左右手的限制。比如主角騎的坐騎中,左右腳被坐騎遮擋,我們可以通過 3D 建模將各種模型的腳和坐騎製作在一起,以解決左右腳或者裝備被遮擋的問題。

      不管是開發 2D 遊戲還是 3D 遊戲,你首先需要理解什麼是遊戲引擎。以目前的技術手段,開發一款完整的遊戲已經不是特別難的事情,只要你有一款強大的引擎,然後將焦點 focus 在你所要實現的邏輯上,只需要配置一些圖片、關卡、音樂,就能很快地實現一款遊戲。

      但是,如果不明白遊戲的總體開發邏輯和實現細節,在開發過程中出現了問題將會變得很棘手。如果瞭解和明白了遊戲開發的本質、網路傳輸的基礎知識,那麼對於其他遊戲的開發,比如移動端,比如 HTML5 端,比如小遊戲的開發,則會變得更容易。因為,知道了遊戲開發的底層知識和開發邏輯之後,幾乎所有的遊戲都是以這樣的結構和邏輯進行開發的。

      不管何種型別、何種平臺的遊戲,其開發的順序和手段幾乎是一樣的。而對於我們初學遊戲開發的人來說,首先需要掌握的是開發流程,在有了一定基礎之後,再學習細節的知識,就會如虎添翼。

相關文章