編程遊戲開發:如何開發製作一款遊戲?你需要做哪些準備?

2020-12-10 騰訊網

關於遊戲開發,需要對從一開始到最後開發一款遊戲的一般過程有所了解。一般不是一個完整的,一步一步的指導完成的結果。你還需要自己找出相當多的東西才能有一個遊戲。

第一步:選擇遊戲庫

遊戲庫具有的功能:

一種加載和呈現圖像的方法

一種加載和播放音頻的方法

基本圖像處理(旋轉等)

原始繪圖功能(圓、線、矩形、點等)

渲染文本的能力

跟蹤時間和等待的能力

創建和控制線程的能力(但不是必需的)

第2步:定義概念——創意

所有的遊戲都從這裡開始,只是一個人頭腦中的想法。

首先,想出一個遊戲的主意。一旦你有一個簡單的想法,擴展它。

例如,如果它是一個棋盤遊戲,目標是什麼/你如何贏?規則會是什麼樣子?等等,如果你的遊戲中會有人物或故事,那就創造他們吧。確保你有一個相當明確的概念,你的遊戲將是什麼,當它結束。遊戲越複雜,你就越應該在一開始就計劃好,這樣你就不用在編碼的時候擔心遊戲本身了。記住,你的遊戲會隨著你的創造而進化。

第三步:規劃你的引擎

如果你正在製作一個棋盤遊戲或者基本的街機遊戲,你可以完全跳過這個遊戲,只需對你的遊戲進行編程。然而,對於更複雜的遊戲,您可能需要考慮使用預先製作的引擎,或者編寫自己的「引擎」。

遊戲引擎到底是什麼?雖然它們在結構和整體功能上差異很大,是提供更高級別功能(如物理、資源處理和遊戲實體管理)的超級功能庫。

選擇使用存在引擎還是創建自己的引擎,這取決於您實際想要做多少編程。使用預先製作的引擎將簡化您作為程式設計師的工作,編寫遊戲/事件腳本比其他任何事情都要簡單。

為什麼我要說計劃而不是選擇?嗯,很有可能你不會做下一個老捲軸,並因此,可以創造你自己的「引擎」的種類。請記住,您將不會創建下一個「虛幻引擎」,您編寫並打算重用的大部分代碼(正如引擎的要點一樣)最終將與您的遊戲邏輯交織在一起,因此不可能很容易地重用。考慮到這一點,不要擔心如果你的「引擎」部分依賴於遊戲的特定代碼,這就會發生。不要專注於構建一個完全可重用、超級健壯的框架,而是要確保代碼具有可讀性、組織性和功能性。首先專注於製作遊戲,然後嘗試創建可移植模塊。如果您一定要編寫有用的、可重用的東西,那麼資源管理器和其他各種實用程序類就是很好的起點。

步驟4:編寫引擎(如果你是自己做的話)

現在是開始編寫引擎的時候了,前提是這是您選擇的路線。這不一定意味著遊戲本身,而是核心渲染、物理和文件處理;本質上是用來構建遊戲的函數和類。

簡單的遊戲並不需要太多的框架,只需直接使用遊戲庫編程即可。大型遊戲中最重要、最被忽視的組件之一是資源管理器。資源管理器是一個類,它負責加載資源(考慮圖形和聲音),確保只加載一次資源,並在不再需要資源時卸載資源。

引擎/框架的另一個重要方面是接口。當您編寫遊戲本身的邏輯時,編寫主遊戲循環不需要花4個小時,因為您搜索了數百個更新函數,試圖找出您實際需要的函數。保持簡潔。如果你能夠用一個或兩個函數調用來更新所有的遊戲邏輯,然後再用一兩個函數來渲染場景,那麼你就在正確的軌道上了。利用面向對象的原則,例如繼承和純虛擬基類(想想接口)是創建具有良好結構的框架的好方法。

步驟5:媒體(音頻和圖形)

到現在為止,你至少已經考慮過你想讓這個遊戲看起來像什麼樣子,有了一套媒體可以使用。大量的免費圖形和聲音效果僅僅是谷歌搜索的地方。Audacity和GIMP是編輯您所獲得或創建的任何內容的不可缺少的工具。

第六步:寫遊戲

一旦您選擇了一個引擎或使用您自己的框架,您就可以實際編寫遊戲邏輯本身。理想情況下,在花費無數個小時之前,您至少已經完整地閱讀了一篇文章,您將永遠不會回到創建一個「引擎」的過程中,這個「引擎」超越了它的角色,幾乎無法使用,但不足以獨立運行。您的框架應該提供一個基礎,用於構造對象交互(但不一定定義它),並處理所有渲染和其他低級細節,如物理。遊戲邏輯本身將定義對象交互(例如,通過定義GameObject的子類)、遊戲規則(例如什麼構成輸贏)、遊戲的初始狀態(首先加載哪個地圖、您從哪個項目開始,等等),並包含主遊戲迴路。

遊戲的主迴路到底是什麼?簡單地說:這是一個循環,主循環。想想看,在玩遊戲的時候,什麼東西會被不斷重複,這些就是這個神秘的循環中包含的東西。例如,每次迭代遊戲都應該更新所有的對象,然後將它們全部繪製到屏幕上。除了更新和繪圖之外,主循環還可能負責計時。對用戶來說,更新太多的遊戲看起來非常快,而且很可能太難了。以光速思考桌球。理想情況下,這個循環將使用您先前創建的框架,並且非常簡單。

第七步:從裡面取點東西

創建一個獨立於遊戲邏輯的框架的主要原因是為了讓您學會編寫可重用的代碼。

初學者放棄項目的主要原因之一是他們花費了大量的時間和精力試圖為他們的遊戲「編寫一個引擎」,但是他們還不知道一個好的引擎甚至包括了什麼,或者一個結構/界面是否真的能工作。在浪費了所有的時間之後,他們沒有什麼可展示的,然後灰心喪氣並因此退出。

通過首先編寫遊戲,然後編寫可重用的代碼,理想情況下,您將得到一些您可以看到的東西。這是對你的努力的一個實實在在的獎勵,也是一個繼續努力工作的理由。

在遊戲中考慮加入這些:

可以嘗試用遊戲代碼製作可移植模塊。

編寫了一個非常棒的資源管理器或出色的類來處理鍵盤輸入,讓它們完全可移植。

步驟8:打包和分發

將所有所需文件打包到一個壓縮文件、壓縮存檔或可執行安裝程序中,並發送給每個人!

相關焦點

  • 開發製作一款棋牌遊戲程序軟體需要做哪些事情
    事實上,開發製作一款棋牌遊戲程序軟體需要做的事情還是挺多的,但很多製作開發棋牌遊戲程序軟體的小夥伴並不知曉這一點。對於製作開發棋牌遊戲程序軟體這件事,更多的還是停留在棋牌遊戲程序軟體產品的製作開發上。針對這樣的情況,小編將棋牌遊戲程序軟體的製作開發進行了整理。
  • 自學編程5小時 如何靠遊戲開發軟體做出一款遊戲
    其實我們甚至不需要藉助什麼遊戲引擎,Steam上的遊戲開發軟體《RPG Maker》就能讓你做出一款小品級的RPG遊戲。  第一代虛幻引擎還集成了一個關卡編輯器UnrealEd,允許開發者即時更改遊戲內的關卡布局。儘管當時《虛幻》與當時的兩大FPS霸主——《雷神之錘》和《毀滅戰士》——是競爭關係,但虛幻引擎依然獲得了射擊遊戲之父約翰·卡馬克的稱讚。  2002年美國軍方為了宣傳徵兵開發了一款名為《美國陸軍》的遊戲,其使用的正是與之一起發布的虛幻2引擎。
  • 問答:遊戲製作需要具備哪些能力?大學生應如何準備呢?
    遊戲設計師,在國內一般叫遊戲策劃。與我想像中不同的是,其實在這個崗位的大多數人並不需要創意十足的去想某個玩法,創建某個系統,建立什麼特別新意的東西,而是較為機械的做著流水線一般的工作,而其中的大部分都是配表。所謂的配表就是程序將很多東西寫好了然後你只需要把對應的數值,屬性或者你需要的東西改一改填進去就好。而且大部分是別人讓你怎麼做,然後你就根據別人的想法去進行一個實現的過程。
  • 開發一款棋牌遊戲軟體需要考慮到哪些因素?
    對於大部分棋牌遊戲運營商來說,想要獲得成功自然不能盲目的選擇棋牌遊戲產品,必須對棋牌遊戲產品的情況有深度的了解。那麼,開發一款棋牌遊戲軟體需要考慮到哪些因素呢?一、棋牌遊戲的定位棋牌遊戲的定位主要看著兩個方面,目標玩家和目標市場。在開發棋牌遊戲之前,一定要先了解清楚棋牌遊戲開發的目的,這樣才能針對性地進行開發,從而製作出優秀的棋牌遊戲產品。
  • 遊戲引擎開發的學習路線
    首先你寫邏輯是在引擎的基礎上寫的,其次如果你對引擎一無所知,非常不利於你去深入理解邏輯開發。相反,如果你對引擎有深入的研究,你調用引擎提供的接口時可以很清楚地知道其內部是如何實現的,這樣有助於寫一些引擎的輔助功能算法,提升自己的編程能力。
  • 一個遊戲是如何被開發出來的:從立項到Beta,遊戲開發全流程解析
    我在知乎回答「想要自己做一款遊戲,需要學習哪些知識」下面簡單列舉了四個能力,分別是:程序、設計、美術、音樂。
  • 打完這個免費遊戲就能獨立開發app了!從幼兒園到成人都適合的編程遊戲精選
    而且,這三款APP恰好涵蓋了不同年齡段不同特點的孩子——從4、5歲想要編程啟蒙的幼兒園小朋友,到準備培養編程興趣的小學生,再到希望能夠深入研究編程的中學生甚至成年人,都能找到適合自己、輕鬆上手的那一款!
  • 3DM《遊戲開發工作室》完整漢化下載 體驗開發遊戲
    《遊戲開發工作室》(Game Dev Studio)是一款集合了遊戲編程元素的模擬經營類遊戲。該遊戲擁有像素級的畫風,與以往不同之處在於,玩家既需要在工作室的經營發展方面作出思考與籌劃,又需要在遊戲開發過程中做一名總策劃。
  • 學遊戲編程開發好找工作嗎?薪資待遇怎麼樣?
    隨著遊戲產業的發展前景蒸蒸日上,越來越多的人開始學習遊戲編程開發,想著未來幾年從事遊戲編程開發工作。但同時也有很多小夥伴比較擔心學習遊戲編程開發,後面不好找工作,那麼學遊戲編程開發真的不好找工作嗎?薪資待遇怎麼樣呢?下面黑鯨教育給大家分享一下。
  • 我做遊戲開發這八年
    到了大一的暑假時,校團委突然找網絡部幫忙做網站,而師兄們準備畢業的、準備考研的,都沒啥時間。因此這重任落到了我一個人頭上,我也不知道那麼多成員為啥選中了我,也沒想那麼多。我暑假放假前1個月,外加暑假2個月,整個3個月時間開始瘋狂學習HTML、CSS、Javascript、PHP、MySQL,然後3個月時間從學習到開發完成了校團委的任務,製作了一個CMS網站。這三個月時間讓我覺得編程原來這麼有趣。
  • 《鑄時匠》的背後故事:一款遊戲開發到最後沒錢了怎麼辦?
    在記憶的屏障中,曾經熟悉的聲音已漸漸遠去……《鑄時匠》(Clocker)是一款與時間相關的解謎類的遊戲。它有著其獨有的時間機制,唯美的手繪畫風,有趣的謎題以及一段迷離的劇情。遊戲採用了雙主角的敘事手法,玩家可以通過控制父親和女兒兩個不同的角色來解謎過關。
  • 不會代碼也能開發遊戲?Steam上架傻瓜式開發軟體,關鍵還免費
    遊戲開發也一樣,以前需要代碼才能開發製作而成,現如今都不需要了,直接編輯就OK,Steam商城這次就上架了一款完全免費的傻瓜式遊戲開發軟體《GameGuru》,就算你不會編程一樣能輕鬆上手,屬於門檻低上限高的一款軟體。如果你對遊戲開發感興趣,又苦於不會編程,那這款開發軟體你確實可以嘗試下!
  • 從逃離到成為遊戲開發,40歲了我才學會編程
    我們剛得到它的時候,我父親在地下室裡錄了很多磁帶,但我不知道為什麼會有這麼多的遊戲。我最喜歡的一款遊戲叫做《Gateway to Apshai》(一款戰鬥電子遊戲),這是一種類 Rogue 的遊戲(迷宮探索式電子遊戲)。後來他解釋說,他是用 Forth 實現的。
  • unity3d遊戲引擎開發的遊戲都有哪些?
    Unity3d是目前主流的遊戲開發引擎,它提供了一個整合的編輯器、跨平臺發布、地形編輯、著色器,腳本,網絡,物理,版本控制等特性。Unity3d可以開發桌面版、web版、手機版的遊戲,是一個非常理想的三維遊戲開發平臺。
  • 你喜歡的2D遊戲《鏟子騎士》是用3D引擎開發製作的
    不知道各位是否還記得2D像素動作遊戲《鏟子騎士》呢?這款遊戲給人最初的印象就是完美還原了8位機時代的畫面和音效,那麼如果告訴你說這個遊戲2D點陣的畫面是用3D引擎開發製作的,你會相信嗎?近日,一個名為Boundary Break的視頻節目找到了《鏟子騎士》的開發商Yacht Club Games,雙方首次對外展示了一款2D遊戲是如何使用3D遊戲引擎開發製作的。在這段視頻中,我們首次看到完全不同的視角下的《鏟子騎士》,對於喜歡這款遊戲的玩家來說非常珍貴。
  • 遊戲開發完整學習路線!就是一門實時渲染的藝術!
    但是,當然一開始最好儘可能是貼合自己的專屬領域和程式語言,這樣能儘快地在這個領域持有一席之地。 無論你選擇哪個平臺,遊戲開發這個浩大的工程都離不開遊戲引擎,所以這裡都有二條路線讓你選擇: 只使用遊戲引擎; 使用遊戲引擎並深入學習遊戲引擎原理。
  • Unity遊戲開發 向量在遊戲開發中的應用(一)
    ,我們在學校學完向量的知識後,只知道向量的基本知識,但對於如何將所學到的向量知識運用到實際的遊戲開發中卻不知所措。不知道讀者朋友曾經玩過安卓上一款比較火的跳躍遊戲沒有,遊戲名字叫《塗鴉跳躍》,英文名為「Doodle Jump」,遊戲截圖如下:
  • 《使命召喚:黑色行動 CW》主創專訪:如何在家開發遊戲
    不過 Raven 工作室通過巧妙地解決方案在家中繼續《黑色行動 CW》的開發,最終力挽狂瀾,按原定計劃完成了項目開發。最終,《使命召喚:黑色行動 CW》得以在 11 月 13 日順利發售。本文將帶你揭秘主創團隊是如何在疫情影響下,在家中開發出這樣一款 3A 大作。
  • 做遊戲簡單?你知道自主研發一款高質量遊戲,到底有多難?
    先平復一下你們的心情,其實從遊戲編程的角度來看,王者榮耀的水平是非常可以的,它解決了很多遊戲方面的技術難題,真的公開的話,很多遊戲公司是可以受益的。所以,我認為,我國的遊戲編程水平已經有了比較大的提升了。很多人就會問了,既然遊戲編程水平提高了,那麼,為什麼我國還是做不出像3A那樣的高質量遊戲呢?
  • 編程貓Kitten物理引擎開發小遊戲《夢幻灌籃高手》
    一、創作緣由在很早以前,我曾經使用微軟的C#+Silverlight 2+Farseer物理引擎編寫過一個投籃小遊戲,而如今正使用Scratch開發遊戲教學軟體,那麼能否也使用少兒編程工具重新實現一款投籃小遊戲呢?因為Scratch本身並沒有提供物理引擎,所以有了兩個想法。