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

2020-12-09 騰訊網

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

第一步:選擇遊戲庫

遊戲庫具有的功能:

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

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

基本圖像處理(旋轉等)

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

渲染文本的能力

跟蹤時間和等待的能力

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

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

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

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

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

第三步:規劃你的引擎

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

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

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

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

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

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

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

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

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

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

第六步:寫遊戲

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

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

第七步:從裡面取點東西

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

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

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

在遊戲中考慮加入這些:

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

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

步驟8:打包和分發

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

相關焦點

  • 聊聊半衰期-艾利克斯:如何開發一款優秀VR遊戲
    編輯導語:艾利克斯,是一款第一人稱線性冒險遊戲,一共有11章節近30小時的遊戲時長。遊戲畫面強到令人髮指,流程各種高能震撼不斷,堪稱VR遊戲教科書,其中革命性的操作設計更是讓遊戲獲得了驚世駭俗的沉浸感。今天,本文作者為我們分析了艾利克斯,總結了應該如何開發一款優秀的VR遊戲?
  • 遊戲開發新手入門指南
    我經常被問及:一個具有很少甚至沒有編程經驗的人要如何開始遊戲製作。直到目前為止,我總是盡我所能一個一個解答。然而,問題的數量已經增長到了一個難以處理的水平,於是,我便決定把所有的建議匯總在一篇文章裡作為參考提供給人們。   這篇文章主要面向那些想開發自己的遊戲,但僅有一點點或沒有半點編程經驗的人們。實際上,我也假定讀者根本沒有任何的編程知識。
  • 《地獄之刃》開發復盤:如何用有限的預算做一款獨立3A遊戲
    2014年,Ninja Theory已經完成《鬼泣5》(DmC: Devil May Cry)的製作,開始研究新項目。Ninja Theory此前曾向發行商展示一款代號為Razer的「大型服務型遊戲」的項目原型,但該作未能獲得發行商的支持。馬修斯和開發團隊發現隨著行業的變化,Ninja Theory之類的中等規模工作室的生存空間變得越來越狹窄。
  • 遊戲開發5個階段學習路線給你準備好了!(含引擎/書籍資源)
    一、前言首先我們要知曉遊戲開發主要分為2D遊戲和3D遊戲。2D遊戲通常是為手機開發,3D遊戲一般使用的遊戲開發工具。3、《WINDOWS程序設計》上下, 北京大學出版社,這本書是學WINDOWS開發必須看的,如果不想自己開發複雜GUI,就用它吧,裡面GDI編程和圖形圖象有關係的,掌握了對你有大好處。4、《C++遊戲編程》清華大學出版社 ,講的是怎麼用C++開發高效率的遊戲,寫出高效率的代碼,有中文電子版。
  • 當學生設計遊戲,他們學到的不僅是編程
    當Nathan 告訴我他的遊戲被Scratch下架,他看起來有點失落,但你能察覺出他嘴角的笑意。他也感覺很自豪。他知道他勝出了。他曾花了一年時間製作這款遊戲,最終被下架,於他於我都是一種證明。所有的努力獲得了驚人的成功。這花費了很多精力,那看看我們是如何實現的。
  • 回歸遊戲開發的初衷本質 為什麼你要做遊戲?
    時至今日,仍然有大量的這類遊戲準備著被開發出來,諸如角色版的放開那三國、3D版的刀塔傳奇、華麗版的天天炫鬥等等。  於是,大量國內的玩家對做遊戲的初衷產生疑問,除了跪舔你們還會什麼?玩家不會知道,不是不想站,而是遭遇各種問題諸如:對遊戲積累和認知不夠啦、各種上級領導的插手幹預啦、平臺數據的左右啦、生活壓力好大啦的問題等等,能讓你那麼容易站起來?
  • 遊戲開發完整學習路線!就是一門實時渲染的藝術!
    但是,當然一開始最好儘可能是貼合自己的專屬領域和程式語言,這樣能儘快地在這個領域持有一席之地。 無論你選擇哪個平臺,遊戲開發這個浩大的工程都離不開遊戲引擎,所以這裡都有二條路線讓你選擇: 只使用遊戲引擎; 使用遊戲引擎並深入學習遊戲引擎原理。
  • Unity遊戲開發:手把手教你0基礎入門C 遊戲編程
    零基礎入門C#遊戲編程C#是微軟推出的面向對象的計算機語言,依靠.Net Framwork的龐大類庫支持可以方便地用於Windows、Web和遊戲開發。C#語法和C語言、Java以及Javascript很接近,易於閱讀和理解,它的開發和調試工具,適合作為編程初學者的入門語言。
  • 遊戲程序開發一般工資多少?高不高?
    隨著電腦遊戲和手機遊戲的不斷推出,現在遊戲已經成為很多年輕人的日常娛樂消遣的方式之一。其實我也不例外,手機裡安裝了王者榮耀和和平精英這兩款熱遊,休息的時候玩一玩,放鬆一下。作為一名遊戲愛好者,我還有另外一個想法,那就是學習遊戲開發,想先了解下目前遊戲程序開發一般工資多少?
  • 如何用 JavaScript+Canvas 開發一款超級燒腦小遊戲?
    作者 | huangjianke責編 | 伍杏玲【CSDN 編者按】據微信最新數據,微信小遊戲累計註冊用戶量已突破10億。那麼初學者如何開發一款好玩又燒腦的微信小遊戲呢?本文作者將詳細為大家講解。「啟邏輯之高妙,因想像而自由。」
  • 遊戲開發技術科普:遊戲中的角色是如何「動」起來的?
    我們會想,為什麼有些遊戲中的人物,移動起來非常不自然?而有些製作精良的遊戲裡,每個角色動起來都栩栩如生。這些角色是如何在我們遊戲世界中移動的呢?今天這篇文章就會簡單的給大家分享一下,遊戲角色在遊戲世界中的移動原理。
  • 遊戲開發軟體匯總
    程式語言,在完成編寫後不須經由編譯及連結等手續即可執行,但如果需要單獨執行時仍然需要將其建立成執行檔。3.C語言C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。
  • 【Ardunio】開發入門教程【一】簡介+數據類型+開發工具
    2、慧編程 mBlock5AI時代,更懂老師和學生的編程工具慧編程是一款面向STEAM教育領域的編程軟體,基於Scratch 3.0開發,支持積木式編程和代碼編程。它讓用戶可以創作有趣的遊戲、動畫等作品,還能對Makeblock產品和micro:bit等硬體編程,同時融入人工智慧(AI)和 物聯網(IoT)等前沿技術,為編程教育和學習提供更好的支持。
  • 學習軟體開發需要準備什麼?
    2020年,隨著Internet的不斷發展,現在Internet已經融入到每個人的生活中,所以在計算機行業的發展中,軟體開發技術就顯得非常重要,因為它是與我們的生活息息相關的,選擇許多人想學習Java軟體開發技術,但是如何做?
  • 好玩的生存撿垃圾遊戲推薦!五款遊戲你喜歡哪一款
    很多人都想玩類似生存類的遊戲,但是又不想很累,那麼撿垃圾生存類遊戲一定非常不錯,因為撿垃圾生存遊戲比較有意思,撿的東西都能用到,還可以享受收集的樂趣。接下來就給大家推薦幾款好玩的撿垃圾遊戲,一起來看看吧。1.
  • 漸凍人馮錦源的「遊戲人生」:從翻譯到開發遊戲,學無止境
    如今,他依靠全身唯一能夠活動的兩根手指,開始嘗試視覺小說遊戲的開發。寫劇本,編代碼,找製作團隊設計人物、配樂,用了一年多時間,他的作品《幽鈴蘭》於今年6月底正式公開上線。這是馮錦源第一個遊戲作品。過往人生的34年裡,疾病帶給他的不是絕望,相反給了他更多創作的動力。「只要身體狀況允許,會在有限的生命裡學習更多知識,嘗試設計更多的遊戲作品。」馮錦源說。
  • 我們跟Unity聊了聊,如何助力3A遊戲製作
    Unity HDRP 製作的數字人實時渲染動畫《異教徒》畫面作為一個實時3D互動內容創作和運營平臺,可編程渲染管線SRP和支持多線程的面向數據的編程模式(DOTS)構成了Unity兩大技術核心。「可編程渲染管線SRP,即如何在多個平臺上達到更好的畫質。
  • 幾個高中生從零開始,做了一款免費的性教育遊戲
    Unity3D這款遊戲引擎在剛接觸的時候可能會覺得很複雜,但是實際上如果你玩過遊戲(必然的吧)就覺得像在玩遊戲一樣(這點做得比Unreal好)鑑於我這次要製作的是一款2D遊戲,難度會更加低一點。因為我想做的遊戲和那種橙光遊戲類似,所以一開始我是打算找找看Unity有沒有那種做AVG遊戲的框架的。結果用下來發現很多功能都用不到,而且用起來也挺麻煩的。所以最後打算自己造一個輪子,讓我這遊戲跑起來。
  • Unity 3d遊戲開發難嗎?怎麼學好,跟著做就可以!
    Unity 3d遊戲開發難嗎?怎麼學好?入門到精通,跟著siki學院視頻做就可以了!Unity 一個讓玩家輕鬆創建:諸如農藥、吃雞熱門遊戲的綜合型遊戲開發工具。Unity 3d引擎封裝了大部分的功能,讓開發者能用比較直觀的方式開發遊戲,甚至提供了PlayerMaker這種免程序的開發方式,意味著部分開發者可以脫離程序,可視化地編輯自己的遊戲。在編程方面,支持C#和Java兩種語言。而C#開發佔主要地位。推薦學習C#面向對象語言,而且入門簡單。我們通過一個經典小案例坦克大戰2D遊戲讓讀者了解下遊戲開發全過程。
  • 遊戲廠商常吹的遊戲引擎究竟是什麼?遊戲開發背後的秘密大公開
    那在這種宣傳標語出現的當下,不知道你有沒有產生一種疑問-XXX遊戲引擎真的特別厲害嗎?hello大家好,我是愛打遊戲的花菜,今天在這裡就和大家聊一聊,遊戲背後的製作神器,遊戲引擎的秘密。遊戲引擎-那個讓遊戲開發大進一步的玩意在談之前,需要先對遊戲引擎有基礎的了解,這樣才能更清楚的知道引擎的優劣勢。何謂遊戲引擎?