本猿web程序员一枚,熟悉c#,对c++也有些经验,想踏入游戏开发的大门,我该从何入手?
——————————————————————————————————————————————————————————
很感谢各位的回答,最近比较忙没什么时间上来。
u3d我有了解过,是一款开发周期比较短的引擎,其优点在于跨平台,缺点是效果上较老牌引擎差很多。
经过考虑,我认为想要成为一名能当一面的游戏开发者,应该从底层学起,再到高层,从而能够独当一面。
最后,我没有选择哪一款引擎(也许会选ue4吧),选择从directX学起,了解3d基本知识,掌握基本HLSL的编写,以此打下基础。
很感谢各位的回答,虽然并不是我最终要走的路,但是对我来说还是十分有用的。
既然你有C++背景知識, 那你直接用cocos2d-x就好, 用C++開發, 跨平台, 教程多, 會的人多 (有人教你).
我的理解樓主是要搞手遊客戶端的,我的回答也是以此為前提。
首先,遊戲引擎的選擇,你想學2D or 3D遊戲,這兩個還是有差別的,如果是2D遊戲建議cocos2d-x,如果是3D遊戲建議是u3d(也可以2D遊戲),遊戲引擎定下來後,你要做的就是慢慢熟悉裡面的各種API的用法,這些網上的各種教程,有木有。
其次,有了之上的入門之後,幾週到半年不等,然後你就開始有選擇的設計模式、資料結構和演算法,如A*、FSM、行為樹等等。同時還有一些數學的東東,像是線性代數。
再一次,了解下腳本,如果是cocos2d-x就是lua or js,如果是u3d就是你已經掌握的C#。
最後,如果想更深入,就可以去了解OpenGL ES and Shader編程,此時你已經進入高手模式,一招秒殺一片。
本人還是處於初期階段,用cocos2d做過多個項目,ejoy2d了解了點皮毛,u3d學習當中,說的有點多了,不過這些就是我的學習計劃,給樓主參考。做遊戲程式猿,要學習的東西太多了,苦逼並幸福著。 。
一個與眾不同的建議是建議先學裸寫,例如先學h5的canvas的調用方法,然後學會瞭如何畫點劃線,如何滑鼠交互,然後了解遊戲是個幀循環的過程,理解一個遊戲框架應該包含了哪些基本的功能模組,然後不同的遊戲開發框架在你看來就是外在不同的招式罷了,內在的都是一致的。然後再選一個具體的遊戲方向而針對性的選擇開發框架。
有個電腦視覺方面的東西叫processing,是java的方言,可以看一下,他不是做遊戲的,但是可以來做遊戲。算不上框架,只能算比較方便的api集合。但是他的邏輯性很清楚,上手很快,當你獲得了那些每個api的功能後,難道你拼湊不出一個遊戲,把拼湊的過程總結下來,那就是開發框架。
另外,先確定你所說的獨當一面的遊戲開發者的具體是指哪種遊戲開發————是頁遊還是手遊還是單機遊戲,我覺得建議學手遊開發吧,h5做手遊還不錯,有跨平台的優勢,個人認為h5不適合做商業應用,h5做手遊是好的選擇。另外,做原生的遊戲也是比較建議的。 cocos2dx確實很火,如果你還想更深入學,建議直接學objective-c,先學如何做ios app。
unity3d?好多手遊、頁遊都是用它的。
在學校的時候做過一個j2me的小遊戲....個人覺得線程間通信這個得學學(比如一個NPC自言自語,可能是一個線程,你跑過去跟他對話這個NPC會轉過頭來),還有資料結構可能也得學一點,因為遊戲中演算法用得比較多,好點的資料結構可以降低演算法的複雜度(比如自動尋路),歡迎折疊^_^
腳本語言
如lua
樓主選擇先學習hlsl是對的,我也在學習這個,工具嘛RenderMonkey就可以了,雖然只支援Shader Model 3,但SM3如果吃透了,別的Shader應該也不在話下,純圖形渲染就這麼些內容,更不要說3ds max和maya的ShaderFX功能還可以視覺化產生Shader程式碼都不用自己寫。
我覺得遊戲最重要的是場景管理,這個掌管一切,渲染效果和效率,碰撞偵測...,在RenderMonkey裡把Shader搞差不多後,把BSP,PVS等搞精,基本不是高手也是中手了。