標籤:

以後想做大型遊戲(至少是端游,不是手游),不知道是不是一定需要精通C++或者熟練?

只想做前端,是不是不需要理解伺服器或者資料庫方面的(這方面基礎不好,),現在畢業半年,主要用unity(C#)做手游前端的。不知道前輩們有什麼好的建議。


曾經是一枚C++遊戲渲染工程師, 做過3A項目, 搞過UE3底層代碼.

但, C++只不過是一種語言. 如果你希望在遊戲程序這個路上走的更遠, 那麼要麼成為架構高手, 要麼成為演算法高手, 不要成為什麼語言高手.

程序語言只是一種工具, 幫助你和運行它的機器以及看代碼的人溝通.

打個比方講, 如果你想寫一篇文章, 把事情講明白, 是應該訓練自己的邏輯思維, 還是語言功底? 學說話是幼稚園小寶寶做的事情. 同理, 學語言應該是大一大二的學生做的事情.

說到語言, C++遠遠沒有英語重要...

同理也不要糾結開發工具是Unity、UE4還是RPG Maker.

不要看下面這種書! 這種東西有毒, 會讓你自己相信自己正在成為一個語言高手並沉迷此道, 從而浪費大量學習時間. 並不是說學習C++不好, 但人的生命是極其有限的, 需要真正高效的學習. 而C++是個無底洞, 它的學習至少有5個階段. 對於90%的遊戲開發者而言, 學到前兩個就足夠你寫出一般意義上"高質量"的代碼.

如果想成為演算法高手, 先看這本書作為路標, 了解遊戲開發各個模塊的大致技術. @Milo Yip 翻譯, 質量有保障.

如果想成為架構高手, 看這個.


大型遊戲,假定你指的是魔獸世界或者使命召喚那種3D遊戲,客戶端必然C++,因為遊戲畫面是直接面對用戶的,效率是第一位。現有的3D遊戲引擎(虛幻引擎等)也基本都是C++。

建議直接去學習一個現成的遊戲引擎,因為如果你想從頭做一個你自己自主產權的大型3D端游幾乎是不可能的。參考現有的遊戲引擎,無不是上千萬行代碼,對場景元素的管理,碰撞飄動水波等物理現象的模擬,布料金屬等材料光澤的模擬等等。編程語言就像一台電腦的滑鼠一樣,如果你只有滑鼠沒有電腦的話也沒什麼卵用的。

如果你是想找相關的工作,建議根據理想公司的要求,公司用什麼就只能去學什麼了。

我個人覺得去做使命召喚這種遊戲對於獨立遊戲製作者未必是性價比最高的。

因為這些遊戲的製作成本有一大半在畫面的真實性以及場景設計上,大量時間和精力浪費在這兩者上,遊戲性難免會有所欠缺。做出一個徒有畫面的『大型遊戲』,還有什麼意義呢?

獨立遊戲的賣點在於創意和成熟度(就是讓人玩起來沒有虎頭蛇尾的感覺)。還沒有見過哪個成功的獨立遊戲賣點是靠畫面的。

出名的獨立遊戲可以參考limbo,時空幻境,洞窟物語。這些遊戲畫面未必多好,但就是玩起來讓人印象深刻。玩通limbo的三年之後,我還會想起當年在遊戲里漆黑雨夜向前一跳的場景,而玩那些大型端游,印象恐怕不會比這些小遊戲里的場景深刻多少吧。

洞窟物語也比較有參考價值,當時第一次玩,感覺成熟度,流暢度,手感簡直就是GBA或者世嘉MD上大公司的產品,最後才知道,原來製作者只是一個日本宅男,此人音樂,畫面,人設,劇情通通全包。為了製作背景音樂,他自己還另外做了個軟體來生成midi音樂。

如果想製作這種小成本的遊戲,C++,C#都可以,有好點子,好設計,然後是有時間,做出了大家愛玩就可以了。

另外我發現獨立遊戲製作人一般有個特點就是很多人小時候愛寫小說,愛畫漫畫,或者愛自己設計桌游,等。估計是這些給他們設計遊戲帶來靈感了吧。洞窟物語製作人就是把他小時候畫的一部漫畫給改編成遊戲了。實在沒有這些經歷,平時有什麼奇思妙想也是可以的。如果沒有什麼想法只是想自己動手從頭做一個畫面和『使命召喚』相當的遊戲的話,不是打擊你,我真的覺得還是最好放棄。

資料庫應該是不需要的,玩個遊戲還讓人安裝什麼資料庫的驅動那不是開玩笑嗎。當然如果遊戲真的需要用資料庫的話,可以用sqlite等輕便的資料庫。

拋磚,利益不相關,看看就行。


精通說的過了吧,但是熟悉Cpp很正常啊。說實話UE4的CPP讓人倍感親切,終於不用為了個把函數或者關鍵字查手冊了。不過工作還是得用UE3,UC的很多語法和函數還需要查查手冊,不過幾個月過去了,也不怎麼需要查了。

現在開始思考項目組的遊戲界面是如何架構的,還有客戶端網路的部分,還有槍械庫,最重要遊戲模式,我什麼時候能夠單獨複製出來一個。而不是找地方填代碼了。

大部分圖形學演算法都能找到資料和實現,但是遊戲引擎的整體掌握在我現在看來難些。整個遊戲項目的掌握了?我覺得不想去掌握,根本掌握不了,因為所有的需求都類似於填字遊戲而已。如果不去思考全局怎麼設計,真的只是搬磚了。

努力學習,多搬點磚。剛工作幾個月的UE3遊戲項目的native亂入。


推薦閱讀:

為什麼老師不推薦用《C++ Primer》作為教材?
C++ 在哪些設計原則的指導下,變得越來越複雜?
C++ 程序員怎麼寫簡歷?
C++ 的 sizeof 是怎麼實現的?
C++20 有哪些值得注意的新特性?

TAG:遊戲開發 | C |