遊戲開發完整學習路線!就是一門實時渲染的藝術!

2021-01-08 騰訊網

在軟體開發中,遊戲開發這個方向看起來目標很明確,但其實是個領域很廣的方向,入門的時候如果得不到指點一二,很容易誤入歧途,相反,如果走這條路之前能得到前人的一些指路,是可以事半功倍的。

一、平臺與程式語言選擇

首先,遊戲開發的平臺就有很多類型:

個人主機平臺:Windows、Linux、Mac OC;

移動平臺:iOS、Android、Windows Phone、BlackBerryOS、Symbian;

專業主機平臺:Xbox、PlayStation、Will等。

如果你想從事移動平臺的遊戲開發,Android主流JAVA語言,iOS主流Object-C語言,那麼你就要去學習這個平臺主流的語言,而在個人主機上主流的遊戲開發語言現在包括以後很長時間也還是C++。

但是並不是所不同平臺的遊戲開發,就毫無共通之處,學了這個到了另一個平臺就無用了。不是這樣的,編程的世界裡你走得越遠你會發現很多東西的本質都是相似的,例如你如果紮實地理解了C++的基本語法(而不是死記硬背),日後再轉Java語言也不是很難的事情,因為它們本質的面向對象特性還有各種程式語言特性都是相通的。

所以,如果你想走得遠,在學習的時候不能簡單流於表面,對於一樣知識越深入到底層,你就越能看到其它知識與其的異曲同工之處,因此你將比別人更輕鬆。但是,當然一開始最好儘可能是貼合自己的專屬領域和程式語言,這樣能儘快地在這個領域持有一席之地。

無論你選擇哪個平臺,遊戲開發這個浩大的工程都離不開遊戲引擎,所以這裡都有二條路線讓你選擇:

只使用遊戲引擎;

使用遊戲引擎並深入學習遊戲引擎原理。

線路一:只使用遊戲引擎

對於第一條路線,遊戲引擎的使用並不困難,因此適合想快速上手遊戲開發工作的人。我們工作大多數時候也不會自己開發遊戲引擎,所以這樣對於一般的日常工作也沒什麼大礙。對於只使用遊戲引擎的人來說,入門階段要做的就是看該引擎的教程(書籍、視頻、網上博客、網上教程、官方幫助文檔等),並且熟練該教程所使用的程式語言。

所以你要做的第一件事,就是去了解現在流行的遊戲引擎。因為不同平臺下的性能不同,支持的程式語言也不盡相同,所以針對不同平臺下的流行的遊戲引擎也是不同的(方括號裡面是特別推薦的,基於開源性、易用性、性能與效果等方面的綜合水平推薦):

windows或遊戲主機:【Unreal】、寒霜、CE3

蘋果ios:【unity3D】、【cocos2d-ObjC】、【Unreal】、sparrow、sprite kit。

安卓:【unity3d】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。

網頁:【Egret】、【cocos2d-html5】、Fancy3D、unity3d。

在選擇遊戲引擎的時候,儘可能選用流行的遊戲引擎,因為這個遊戲引擎流行意味著官方的功能比較完善和易用,問答社區也比較多人解疑。各個遊戲引擎也各有千秋,Unity3d勝在簡單易用,對性能要求不高,但是效果不夠華麗,因而一般用在移動平臺而不會用在電腦或遊戲主機。

Unreal勝在開源免費,而且效果也很出色,但是對設備要求比較高,因而常常用來開發效果絢麗的大型遊戲。cocos2d-x也是開源免費的,在2D領域深有造詣,但是缺點是不可視化開發。另外,如果你想了解遊戲引擎原理,那麼首要考慮的就是開源的遊戲引擎。

不同遊戲引擎使用的程式語言或者腳本語言可能是不一樣的,所以當你想要學習某個遊戲引擎的時候,也應該留意該遊戲引擎所使用的語言。大部分情況是,Windows用的的是C++,同時結合lua或python腳本語言。而ios平臺下使用Objective-C或swift,安卓平臺下使用Java。但這不是必然的,例如Unity在各個平臺下都可以用C#或者javascript腳本語言。

下面是商業上流行的遊戲引擎詳細比較:

1) Unreal4(虛幻4)

適用平臺:Microsoft Windows、Mac OS X、iOS、Android、虛擬實境設備(包括但不限於SteamVR/HTC Vive、Morpheus、Oculus Rift及Gear VR)、Linux、SteamOS及 HTML5平臺。

程式語言:C++或無需編寫代碼。

優點:開源免費,畫面效果出色,已有多款商業大作經驗。同時,它還能跨平臺,商店資源豐富,提供了無需編寫代碼即可製作遊戲的強大功能(可視化開發)。

缺點:開發機器配置要求較高。

2) Unity3D

適用平臺:iOS、Android、Windows phone 8、Tizen、Microsoft Windows、Windows Store應用程式、Mac、Linux/Steam OS、網絡播放器、WebGL、PlayStation3、 PlayStation4、PlayStation Vita版、Xbox One、Xbox 360、Wii U、Android TV、Samsung SMART TV、Oculus Rift、Gear VR、Microsoft Hololens、Playstation VR。

程式語言:C#、javascript、Boo。

優點:方便易用,中文資料豐富,跨平臺,商店資源豐富,可視化開發。

缺點:畫面效果一般,不是免費開源,引擎效率比較低。

3) Cocos2d系列(包Cocos2d-x、Cocos2d-ObjC、Cocos2d-html5、Cocos2d-xna等)

適用平臺:Microsoft Windows、OS X、 Linux、iOS、 Android、 Tizen、 Linux、Mac OS X、HTML5瀏覽器、Windows Phone 7 & 8、Xbox 360。

程式語言:Python、Objective-C、C++、 Lua、 JavaScript、 Swift、JavaScript、 C#。

優點:開源免費,跨平臺,中文資料豐富,2D技術豐富且成熟。

缺點:不可視化開發,3D方面技術不成熟。

4) CryEngine3

適用平臺:Microsoft Windows、OS X、Linux、PlayStation 3、PlayStation 4、Wii U、Xbox 360、Xbox One、iOS、Android。

程式語言:C++、Lua。

優點:畫面效果世界一流,可視化開發,跨平臺。

缺點:開發機器配置要求較高,不是免費開源。

5) Frostbite3(寒霜3)

適用平臺:Microsoft Windows、PlayStation 3、PlayStation 4、Xbox 360、Xbox One。

程式語言:C++。

優點:畫面效果出色,可視化開發,跨平臺。

缺點:開發機器配置要求較高,不是免費開源。

6) Egret(白鷺)

適用平臺:HTML5、iOS、Android、Windows Phone。

程式語言:TypeScript、JavaScript。

優點:免費開源,配套工具多,全中文文檔,可視化開發,跨平臺。

缺點:支持平臺較少,大多數時候用於開發對性能和效率要求不高的小遊戲。

但是使用遊戲引擎畢竟是停留在表面看不到本質,當遊戲開發的時候出現了某些問題或者特殊需求,你往往很難處理。

而且遊戲引擎技術日新月異,你所學的幾乎都是別人留下來的方法,而不是其本質思想。

如果將來別的遊戲引擎興起,你又要重新學習另外的遊戲引擎怎麼使用。在很多大公司裡面,甚至都有自己公司內部專用的引擎(如網易公司的風魂引擎、金山公司的劍網3引擎、蝸牛公司的Flexi引擎等等)。

所以單純地走這條路線,可能不會讓你走得很遠並且可能會日漸乏味。

線路二:使用遊戲引擎並深入了解遊戲引擎原理

對於第二條路線,深入學習遊戲引擎原理短時間不會讓你的工作有什麼卓越的成效,但是可以彌補只使用遊戲引擎導致的問題,而且學習遊戲引擎原理,更多時候不是一定就為了自己日後要造個遊戲引擎,而是更深入理解自己的遊戲引擎,更好地使用它。

當然,千裡之行始於足下,經常學習遊戲引擎底層原理的人到了一定的積累的時候,自己造個遊戲引擎也是可以的。

對於像學習遊戲引擎原理的人來說,需要制定自己明確的長期目標:

1)首先,一開始可能對遊戲引擎沒什麼概念,建議先使用一兩個遊戲引擎(我推薦C++程式設計師學習虛幻4遊戲引擎,現在是免費開源的,非常值得學習。那些不開源的遊戲引擎儘量不要去學習,因為其對於學習原理來說沒有多大貢獻)。

2)因為遊戲開發就是一門實時渲染的藝術,所以離不開圖形庫的學習。現在主流的圖形庫是Windows平臺專用的DirectX 11和通用平臺的Opengl。這兩個圖形庫,至少需要入門其中一個。

3)然後,你就可以開始看計算機圖形學的書籍了。如果你發現你的理論底子不足,這個時候就需要補一下線性代數、基本的微積分、還有3D數學的知識。

4)遊戲引擎中包含了各個部分,上面的渲染只是遊戲引擎的一部分。還有其它諸如著色器編寫、地形編寫、物理引擎編寫、模型和動畫、人工智慧體設計、網絡編程等等,完成渲染部分的基本學習後,你可以選擇自己感興趣的部分進行專攻,畢竟我們實際工作大多數時候是團隊開發,而不是單打獨鬥,每個人都應該精通自己所擅長的那部分。

相關焦點

  • RTXDI 助力實時渲染數百萬束直射燈光
    一直以來,藝術家都受限於人造燈光的複雜性,實時渲染器根本無法支持大量動態燈光。多年來,NVIDIA一直在尋求解決這一問題以及實時渲染任意複雜照明的方法。我們所演示的NVIDIA Marbles at Night表明我們已實現了這一目標。
  • Facebook宣布神經超採樣實時渲染,實現VR高清顯示新突破
    (映維網 2020年07月02日)VR實時渲染提出了一系列獨特的挑戰,其中最主要的是支持圖片級真實感效果,實現更高的解析度,並達到比以往任何時候都更高的刷新率。為了應對這一問題,Facebook Reality Labs(FRL)的研究人員開發了DeepFocus。這個於2018年12月首次亮相的渲染系統主要是利用人工智慧在變焦頭顯中創建超逼真的視覺效果。
  • 【大數據】最新大數據學習路線(完整詳細版】
    大數據學習路線java(Java se,javaweb)Linux(shell,高並發架構,lucene,solr)Hadoop(Hadoop,HDFS,Mapreduce,yarn,hive,hbase,sqoop,zookeeper,flume)機器學習(R,mahout)Storm(Storm,kafka
  • 編程遊戲開發:如何開發製作一款遊戲?你需要做哪些準備?
    關於遊戲開發,需要對從一開始到最後開發一款遊戲的一般過程有所了解。一般不是一個完整的,一步一步的指導完成的結果。你還需要自己找出相當多的東西才能有一個遊戲。
  • Facebook宣布神經超採樣實時渲染,實現VR高清顯示新突破,低清圖像...
    來源:映維網 作者 流水原VR實時渲染提出了一系列獨特的挑戰,其中最主要的是支持圖片級真實感效果,實現更高的解析度,並達到比以往任何時候都更高的刷新率。為了應對這一問題,Facebook Reality Labs(FRL)的研究人員開發了DeepFocus。
  • 遊戲開發軟體匯總
    3.C語言C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。目前SDL多用於開發遊戲、模擬器、媒體播放器等多媒體應用領域。2.Unity3DUnity是實時3D互動內容創作和運營平臺。包括遊戲開發、美術、建築、汽車設計、影視在內的所有創作者,藉助Unity將創意變成現實。
  • Unity遊戲開發基礎知識整理
    Unity遊戲開發基礎知識整理 Unity3D是一個讓玩家輕鬆創建諸如三維視頻遊戲、建築可視化、實時三維動畫等類型互動內容的多平臺的綜合型遊戲開發工具
  • LarkXR實踐匯:3DCAT實時渲染雲平臺|Powered by 平行雲
    一、概述隨著GPU運算能力的提升,GPU越來越多地被用在了更加複雜的三維場景渲染。根據應用場景的需求不同,GPU渲染常被用於離線渲染和實時渲染。離線渲染,主要應用於影視CG等。隨著市場對畫面效果要求越來越高,對渲染的硬體要求也越來越高,花費的時間也越來越長,雲渲染農場便應用而生,它可以為影視CG等應用提供7×24小時的便捷高效的離線渲染算力。如今,隨著產品可視化、建築、工程、教育、醫療、遊戲、VR/AR等專業領域在3D交互應用方向的發展,對實時渲染的需求越來越多。由於實時渲染計算量巨大、對時效性要求非常嚴格。
  • Unity 最新版本迎來260項功能改進,高清渲染管線HDRP升級
    最新上線的Unity 2019.3版本帶來了超過260項功能改進,其中的高清渲染管線(HDRP)功能可在高端遊戲主機和PC上解鎖高清精美畫質的無限潛能。高清渲染管線在2019.3中經過驗證幾近純熟,帶來了全新的功能和藝術創作工具,可用於製作高保真圖像。
  • 《恥辱》開發團隊採用虛幻4開發新作有哪些優勢?
    據消息稱,目前遊戲開發商Arkane的法國裡昂團隊正在打造《死亡循環》,而且曾經打造過《恥辱1》的美國奧斯汀工作室也正在開發一款新作,但至今未正式公布,不過根據工作室高級特效美工Lisa Charriere在領英上的簡歷,我們可以知道這款遊戲應該是幻想題材,將採用虛幻4引擎開發。
  • 遊戲開發5個階段學習路線給你準備好了!(含引擎/書籍資源)
    越來越多的年輕人希望將遊戲這項愛好和職業相關聯起來,為自己的職業發展尋找更多的可能性,例如:遊戲開發、遊戲運營、動畫設計、電競職業選手等等.......在軟體開發中,遊戲開發這個方向看起來是最吸引年輕人的並且目標最明確的,但其實是個領域很廣的方向,為什麼這麼說?慢慢看下去吧。乾貨分享——遊戲開發學習路線5個階段完整總結。
  • 可讓Maya和UE4無縫銜接實時渲染?這個免費插件太猛了~
    「 感知CG · 感觸創意 · 感受藝術 · 感悟心靈 」  中國很有影響力影視特效CG動畫領域自媒體  Maya和UE4的實時連結有個什麼Live的。但那個還不能讓Maya以UE4的方式實時渲染。有沒有一種插件可以讓Maya像UE4那樣實時渲染呢?可以,今天它來了,MIRROR!
  • 除了實時光線追蹤,英偉達圖靈架構還有這些AI圖像處理能力
    圖靈架構最大核心亮點在於即時光線追蹤(Real Time Ray Tracing),能夠計算光線反射、折射、散射等路線,渲染出逼真的畫面,可為遊戲開發者提供電影級畫質的實時渲染,也就是讓遊戲看起來更像電影。據悉,這些新GPU依靠自身的一個特殊部分來快速呈現高解析度圖形,完成圖像的大部分成像工作後,使用人工智慧技術來猜測未完成的像素。
  • 動作遊戲《忍者神龜:電門》LMAO 完整漢化補丁下載發布!
    《忍者神龜:電門》漢化補丁發布!LMAO漢化組作品編號-1095點擊進入《忍者神龜:電門》LMAO完整漢化補丁下載地址點擊進入《忍者神龜:電門》綠色免安裝硬碟版下載地址【漢化說明
  • 年薪超40萬,UE4開發工程師憑什麼!
    這些人氣產品有著一個共同的特點:都使用虛幻引擎開發。UE4作為世界頂尖的遊戲引擎,從二維移動平臺遊戲到主機平臺的遊戲研發,都可以做到幾乎完美。對於影視動畫、遊戲場景製作等行業來說,讓技術人員最奔潰的事之一,莫過於渲染了。而UE4實時渲染的特性完美地解決了這個問題,UE4是基於GPU渲染的,所見即所得,大大縮小了渲染時間。
  • 實時、動態、3D——渲染引擎新技術
    近日,國內推出了一款自主平臺軟體ICAD2007i,在實用性、穩定性和應用速度等方面都得到了大力提升。它是由國產CAD廠商浩辰軟體製造的。  ICAD2007i基於渲染引擎進一步改進,深度發掘當前普通商用計算機的計算資源,使用戶可以使用只有工作站級系統才能體驗到的實時動畫渲染、動態實體剖切以及動態實體操作跟蹤所帶來的前所未有的操作快感,顯著提高用戶在三維實體編輯時的工作效率,有效加強三維設計功能的實用性。
  • 一套完整的直播系統開發的流程是怎麼樣的?
    直播熱潮尚未褪去,而直播系統開發究竟是如何實現的?那麼,一套完整的直播系統開發的流程是怎麼樣的?1、音視頻採集採集是播放環節中的第一環,iOS 系統因為軟硬體種類不多,硬體適配性較好,所以比較簡單。Android 則不同,市面上硬體機型非常多,難以做到一個庫適配所有硬體。2、音視頻處理美顏系統是現在直播系統中所必需的一項。
  • PRB成為建模大熱的渲染方式,到底優秀在哪裡?
    PBR,Physically Based Rendering,這是一種全新的渲染方式,其對應的是一種全新的工作流程;在PBR流程下,遊戲中場景表現將更加符合物理規則,對於光照的計算也更符合現實,PBR的目標是基於物理的渲染,這技術對目前視覺開發而言是一種變革性技術。
  • 遊戲廠商常吹的遊戲引擎究竟是什麼?遊戲開發背後的秘密大公開
    遊戲引擎就像是遊戲的發動機,裡面包含了很多各種不同的組件,例如:動畫、繪圖、物理、光影等等……而這軟體就是用來管理這些組件的互動,所以才被稱為遊戲引擎。如果還是不理解的話,那還是當以上那些話不存在,你就把它認為"遊戲開發工具"就可以了,反正它就是用來開發遊戲的工具嘛~引擎的出現在遊戲開發的最初階段時,廠商們是沒有遊戲引擎可以利用的。
  • 遊戲開發新手入門指南
    我經常被問及:一個具有很少甚至沒有編程經驗的人要如何開始遊戲製作。直到目前為止,我總是盡我所能一個一個解答。然而,問題的數量已經增長到了一個難以處理的水平,於是,我便決定把所有的建議匯總在一篇文章裡作為參考提供給人們。   這篇文章主要面向那些想開發自己的遊戲,但僅有一點點或沒有半點編程經驗的人們。實際上,我也假定讀者根本沒有任何的編程知識。