編程 游戲引擎,游戲開發(fā)可以在哪里學(xué)習(xí)?
當你在吃雞,王者農(nóng)藥的時候是否有想過如何才能做出一款這樣讓人神迷的游戲?
游戲開發(fā)這個方向看起來目標很明確,但其實是個領(lǐng)域很廣的方向,入門的時候如果得不到指點一二,很容易誤入歧途,相反,如果走這條路之前能得到前人的一些指引,是可以事半功倍的。
下面就結(jié)合自己的學(xué)習(xí)歷程和大家分享下游戲開發(fā)的學(xué)習(xí)路線。
1.介紹
游戲開發(fā)分為客戶端和服務(wù)端兩條不同的路線,路線不同,所需的技能也不同。
但有些技能還是通用的,比如都需要掌握基礎(chǔ)開發(fā)語言,數(shù)據(jù)結(jié)構(gòu)與算法,計算機網(wǎng)絡(luò)等。
2.游戲客戶端學(xué)習(xí)路線
1.首先,一開始可能對游戲引擎沒什么概念,建議先入門一兩個游戲引擎(我推薦可以先去學(xué)習(xí)Cocos2d-x和Unity3D兩個引擎,市面上大多數(shù)游戲是利用這兩個引擎開發(fā)的)。入門階段要做的就是看該引擎的教程(書籍、視頻、網(wǎng)上博客、網(wǎng)上教程、官方幫助文檔等),并且熟練該引擎所使用的編程語言。
因為不同平臺下的性能不同,支持的編程語言也不盡相同,所以針對不同平臺下的流行的游戲引擎也是不同的。下面列舉一些現(xiàn)在流行的游戲引擎。
windows或游戲主機:【Unreal】、寒霜、CE3
蘋果IOS:【unity3D】、【cocos2d-x】、【Unreal】、sparrow、sprite kit。
安卓:【unity3D】、【cocos2d-x】、【Unreal】、AndEngine、libgdx。
網(wǎng)頁:【Egret】、【cocos2d-js】、Fancy3D、unity3D。
當然并不是不同平臺的游戲開發(fā),就毫無共通之處,學(xué)了這個到了另一個平臺就無用了。不是這樣的,編程的世界里你走得越遠你會發(fā)現(xiàn)很多東西的本質(zhì)都是相似的,例如你如果扎實地理解了C++的基本語法,日后再轉(zhuǎn)Java語言也不是很難的事情,因為它們本質(zhì)的面向?qū)ο筇匦赃€有各種編程語言特性都是相通的。
2. 因為游戲開發(fā)就是一門實時渲染的藝術(shù),所以離不開圖形庫的學(xué)習(xí)。現(xiàn)在主流的圖形庫是Windows平臺專用的DirectX 11和通用平臺的Opengl。這兩個圖形庫,至少需要入門其中一個。
3.然后,你就可以開始看計算機圖形學(xué)的書籍了。如果你發(fā)現(xiàn)你的理論底子不足,這個時候就需要補一下線性代數(shù)、基本的微積分、還有3D數(shù)學(xué)的知識。
4.游戲引擎中包含了各個部分,上面的渲染只是游戲引擎的一部分。還有其它諸如著色器編寫、地形編寫、物理引擎編寫、模型和動畫、人工智能體設(shè)計、網(wǎng)絡(luò)編程等等,完成渲染部分的基本學(xué)習(xí)后,你可以選擇自己感興趣的部分進行專攻,畢竟我們實際工作大多數(shù)時候是團隊開發(fā),而不是單打獨斗,每個人都應(yīng)該精通自己所擅長的那部分。
5.至此,獨自開發(fā)一款小型游戲已經(jīng)完全不在話下了。也具備了加入公司合力開發(fā)一款大型游戲的能力。
3.游戲服務(wù)端學(xué)習(xí)路線
1.首先需要熟悉一門服務(wù)端語言,比如C/C++、PHP等,會使用一個開發(fā)框架。
2.會在服務(wù)器上搭建環(huán)境,拿lamp來說linux和apache、mysql、php四者擔任的角色要清楚。大多服務(wù)器會選擇搭建在Linux環(huán)境下,所以也需要熟悉Linux操作命令。
3.至少熟悉一種數(shù)據(jù)庫。比如關(guān)系型數(shù)據(jù)庫mysql,能熟練寫出增刪改的語句和不算很復(fù)雜的查詢語句,再比如了解各種方式的多表查詢有哪些不同等數(shù)據(jù)庫技能也是需要的。
4.了解網(wǎng)絡(luò)編程及多線程等。比如http通信協(xié)議。跨平臺的交互一般http是使用比較廣泛的,需要大體了解,你得清楚請求報文通常包含哪些部分、常見的服務(wù)器返回碼對應(yīng)的含義。
5.會使用至少一種數(shù)據(jù)格式。服務(wù)端和客戶端建立了聯(lián)系,數(shù)據(jù)的傳輸也需要一種協(xié)議格式去統(tǒng)一。json是目前使用率最高的格式了。json的數(shù)據(jù)格式還是簡單明了易學(xué)的,主要是要了解如何使用它較好的去定義接口。
關(guān)于學(xué)習(xí)路線,我覺得對于學(xué)習(xí)者,尤其是初學(xué)者來說,非常有用,它的作用就是一幅地圖,讓你在浩瀚的知識叢林不至于迷失方向,甚至放棄在 99% 的地方。
作為一個過來人,我深知初學(xué)者的迷茫和無助,我當初也走了很多彎路。現(xiàn)在有些坑我替大家踩了,分享我總結(jié)的學(xué)習(xí)路線,是希望大家能站在我的肩膀上走的更遠更容易些。
街機游戲用的什么游戲引擎和編程語言?
都是 PC,裝的是 Windows Embedded老的街機就是自研基板了,一般是 C 或者匯編,機能是強過同時代家用機的,畢竟可以宰街機廳老板啊……
我在ISD的CSS手冊上看到的?
Trident、Gecko、Presto、Webkit——是4種常見的瀏覽器內(nèi)核(1)Trident是微軟的Windows搭載的網(wǎng)頁瀏覽器——InternetExplorer瀏覽器使用的內(nèi)核(俗稱IE內(nèi)核)(2)GeckoGecko是開放源代碼、以C 編寫的網(wǎng)頁排版引擎,目前被Mozilla家族網(wǎng)頁瀏覽器以及Netscape6以后版本瀏覽器所使用。
也就是現(xiàn)在的Firefox(3)PrestoPresto是一個由OperaSoftware開發(fā)的瀏覽器排版引擎,目前Opera7.0~10.00版本使用該款引擎。
(4)WebKitWebKit是一個開放源代碼的瀏覽器引擎(WebBrowserEngine),WebKit最初的代碼來自KDE的KHTML和KJS(它們均為開放源代碼,都是自由軟件,在GPL協(xié)議下授權(quán))。
所以WebKit也是自由軟件,同時開放源代碼。
除了Safari瀏覽器,Mac下還有OmniWeb、Shiira等人氣很高的瀏覽器。
Google的chrome也使用WebKit作為內(nèi)核。
WebKit內(nèi)核在手機上的應(yīng)用也十分廣泛,例如Google的Android平臺瀏覽器、Apple的iPhone瀏覽器、NokiaS60瀏覽器等所使用的瀏覽器內(nèi)核引擎,都是基于WebKit引擎的。
WebKit內(nèi)核也廣泛應(yīng)用于Widget引擎產(chǎn)品,包括中國移動的BAE、Apple的Dashboard以及NokiaWRT在內(nèi)采用的均為WebKit引擎。
以上就是關(guān)于編程 游戲引擎和游戲開發(fā)可以在哪里學(xué)習(xí)的相關(guān)問題解答,希望對你有所幫助。