Unity3d客戶端開發,要深入學習,更需要先從哪方面入手?

本人做了快一年U3D客戶端開發。目前總覺得遇到了瓶頸,不知道該從哪個方面提升自己能力。望各位大牛指點一二。

1、深入研究C#,包括CLR之類

2、學習圖形開發,Opengl和Directx,還有shader等

3、提高數學能力,空間幾何、線性代數之類

4、提高程序開發能力,設計模式、演算法等

5、學習網路編程,轉伺服器開發,並學習其他語言

6、學習3D建模、繪畫、UI設計、遊戲策劃,提高獨立開發能力

以上是我能想到的幾個方面。我知道每個方面都重要,深入研究都可以有造詣。可是這些方面我都只是略知皮毛,似乎開發個產品也可以,卻不能做到隨心所欲的使用。而我現在又沒有太多業餘時間,所以想有個學習計劃,對我目前的工作內容,哪些最需要先學習,哪些可以以後慢慢研究。再次希望各位有經驗的人士能夠指點一二,謝謝。


@梁偉國 說的很好,但我覺得2,3條也不是沒必要的,特別是做3D遊戲。我現在就在專門研究Cg和圖形學的東西。自己在工作之餘還折騰出了幾個插件 ,放在Unity商店裡賣著玩,每個月還能搞個上百美刀。

Asset Store

從題主的問題中可以看出題主的一點迷茫,就像一年前的我,我也就比你多一年Unity經驗。從一個打工者的角度來跟你探討一下,也跟大家都探討一下,不光探討Unity技術,也探討一下以後的方向。這裡說一下我自己對這個行業的思考。

現在Unity流行了,只要會寫幾行C#代碼的人都能進個遊戲公司寫點邏輯,但真正精通的人不多。我當初C#都沒學過,只會Java,都進了個小遊戲公司,花了個把月的時間就參與開發了,當然也就是搞點優化,改改BUG,寫點邏輯之類。現在越來越多的人用Unity了,我甚至可以預料,未來的幾年內Unity會更加流行,說不定會到處是培訓機構。到時候會有一大波人湧入這個行業,就像現在的Java開發SSH三大框架之類的。

我們面臨的問題:Unity入門門檻低,註定以後的Unity從業者會越來越多,競爭會越來越激烈。

我剛畢業的時候待過一個比較大的公司,做銀行的信貸系統。那時剛開始學java,自己工作之餘也看一下書充電,項目經理卻跟我說,技術不重要,重要的是實現。後來我才知道,我當時是做一個工廠流水線工人,碼農一個,技術確實不重要。公司巴不得我什麼都不懂,只會if else,解決邏輯的問題,發一點微薄的薪水就行了。

於是我明白了,不想做產線工人,首先要脫離當前層次。要做到公司少了你不行! 這個時候你必須掌握一些門檻高的技術,你才能拔尖。

有些技術是靠經驗堆積的,比如整個框架的設計,設計模式的運用。我倒覺得這個能力只要你平時留心,掌握它們只是個時間的問題。

而有些技術,是要去實打實鑽研的,不看透幾本英文原版書,不逛遍幾個論壇,你永遠不能get it。越是難的東西,越能拉開你跟別人的距離。

比如學Cg,很多資料都是英文的,像Cg的官方教程The Cg Tutorial,還有這個Cg Programming/Unity,不看這些書,根本入不了門吧。 還有最著名的《Real-Time Rendering》,都是英文的,還需要很多數學知識。像線性代數里的矩陣變換,這些東西雖然大學都有學過,但在這裡才真正用上。在開發的過程中遇到問題了,要上網查吧。我跟你打賭,你要是碰到個C#的問題,去stackoverflow分分鐘就能查出來(甚至去百度都能查出來)。但要是你碰到個shader上的問題,可就不好查了。Unity裡面很多東西都是沒資料查的,你只能去論壇里跟人交流,去看源碼,去看UnityCG.cginc,去看AutoLight.cginc。總而言之,就是不好弄啊。等你深入的去研究這些的時候,慢慢的你就發現,好像公司里就你在弄這個,別人都不懂。這個時候你就牛逼了啊。

以後手機的性能越來越好,高品質的3D手游會越來越多,雖然可能現在國內大部分公司做的手游是2D的,但以後一定會有更多的3D手游湧現。我相信手游拼3D特效的時代馬上就要到來了! 所以我感覺學圖形學的東西還是比較有前途的。

當然這也跟你自己的愛好有關吧。反正我是覺得,如果以後要跳槽,面試的時候,你拿著一個遊戲說,這個遊戲框架是你搭的,可能面試的人很難確定,誰知道你這框架搭得好不好。但如果你說這個遊戲的所有3D特效和Shader都是你寫的,這就一目了然了。


謝邀。

前面三條其實沒太大必要。現在行業對自研引擎的技術需求不大。而那些數學知識,在真正需要用到時,臨陣抱佛腳補補功課就能搞定。

第4條是肯定要深入的,無論是做為客戶端還是服務端程序。

第5條網路編程也是必須的,聯網是無可爭議的趨勢。

第6條就看你有沒有美術方面的天賦以及想不想走獨立開發的路線了。

其實你現在才工作一年多的時間,求知若渴階段,所謂藝多不壓身,任何領域的技術學了都有好處。所以,在不影響本職工作的前提下,你大可遵循自己內心的喜好去學習。不要夾雜太多的功利心。要比以往更加勤奮,把別人泡論壇刷微博的時間用來學習,選擇性忽視那些靠投機獲得升職漲工資的人。再過一兩年,你會站得比其他人更高。


個人認為前三條是比較重要的

理解機制,明白原理在一定程度上是掌握了一種小眾技能,任何行業,發展到最後,核心都是小眾的,但是價值也在這一塊,只是研究小眾技能不是沒有門檻的,需要你有更多的基礎技能,先把基礎的技能先弄好了在說,養家糊口的東西。

上帝讓一個東西滅亡,必先讓其瘋狂。如果想在這一行走的長遠,掌握底層核心的技能才是關鍵啊。很多年前unity沒火起來,unreal cryengine還是很高大上的,誰能說能預料到unity的今天呢,同理,很難預測flash的夕陽西下,未雨綢繆吧。

同意 @kUANG tOBY說的,核心競爭力。

保持一個學習的心總是好的,如果不想一直做沒有技術含量的工作,就抓緊學習吧。扔骰子學習也未嘗不是個辦法,因為探討這些東西的時間,不如花在學習上。


任何技術做的盡頭都可以成為專家,Unity3D入門容易,然而要向成為真正的高手,你要懂網路、懂優化、懂Shader、懂動畫甚至是美術相關的概念,如果想做的深入些,請儘可能多的了解計算機圖形學,請掌握C++,請學好數學!


你還漏下了原生android與ios 接sdk的時候要用到的


這樣,拿一個骰子,剛好六個。

1.提高直覺能力,面朝上就選哪個。

2.提高思維空間能力,選面朝下那個,但是要根據面朝上的點數來猜。

3.提高運算能力,多扔幾次,求平均數,做概率分析。

4.轉行,用骰子幫人算命,或者去澳門賭場。

最後,請思考一下,你的興趣,你的夢想是什麼?


推薦閱讀:

為什麼普遍的單機大作遊戲都缺乏創新和創意?
絕地求生中狙擊槍和步槍單發模式有什麼區別?
從地圖內容來看,《絕地求生大逃殺》的遊戲故事背景是什麼?
核心用戶是土豪,怎樣思考理解玩家需求?
為什麼暴雪一直跳票?

TAG:遊戲開發 | 編程 | 手機遊戲 | Unity遊戲引擎 |