遊戲開發轉行其他 IT 行業是更容易還是更難?


2012年的時候,我從騰訊遊戲部門內部輪崗到在線支付部門。那時我已經進入遊戲行業9年了,理論上說行業外的經驗為零。看起來我就像是個闖入寧靜村莊的陌生人。

意料之外的,我第一次體驗到了工作中降維打擊的碾壓感。大概只使用了在遊戲部門時大約30%和工作時間和工作強度,就已經可以把看起來極其複雜的支付業務的各種高難度工作處理得井井有條。在愜意的工作環境和各種度假旅遊的同時,我依然以出色的工績效獲得了同事們廣泛的讚譽。但是可惜幸福的時光總是短暫的,很快我又不得不告別他們,回到了遊戲部門。

因為我發現只有遊戲行業可以給與我足夠的成就感,讓我因為熱愛而燃燒的內心可以重歸澄凈。


我個人做過單片機、上位機開發和前端開發,也學過一點iOS安卓開發的皮毛,不過都沒遊戲做的深入

單片機那些,難的不是寫代碼,是對硬體、電路、晶元時序的理解,其實很簡單,用C寫代碼邏輯,許多功能代碼量跟我這遊戲邏輯比差遠了,有的晶元幾k的內存你想想你能寫多少代碼。但是對於沒學過電子的人,他根本無從下手啊,對他來說肯定難啊~

就好像我那時候做前端,學AngularJS,我真的覺得難,比寫Objective-C都難,為啥,因為我討厭js,我就打心底里不想學,我看見就煩,所以我做了一個多月就辭職了,帶我的師傅說很可惜,覺得我是個很好的前端苗子……

到後來我又去學做遊戲,這感覺是啥呢,有時候真的難,難的是你無從下手,而且遇到的問題千奇百怪,bug也是層出不窮,可是最後總有辦法能解決。我記得以前有個LBS遊戲的項目,想在遊戲里顯示真實地圖,地圖上顯示玩家位置,現在可能有比較好的方案了,那時候真的找不到適合的方法,為了讓地圖能完美融合到3d場景,我只能去學地圖繪製知識,什麼墨卡托投影坐標,扒某地圖的地圖圖片資源在遊戲里重新拼地圖。也許對懂相關知識的人,這些也不算啥,問題我只是個做遊戲邏輯的,我為啥要學畫地圖啊……

其他什麼網路、AI、圖形學、音頻採樣處理、常用的物理數學公式,你不說精通也給懂點吧,至少能在需要的時候知道去哪學……

所以,說這麼多啥意思呢,程序員啥樣的算厲害?會學習的,懂得舉一反三的才厲害。在我看來,做遊戲是很需要這種能力的,也許不像其他行業的開發人員那麼精通某一種技術,但他總要什麼都懂點,什麼都能馬上學會,所以,可能換了其他行業,有這種學習能力的人,也能很快適應。

不過還是要看個人,現在引擎好用了,遊戲行業也挺好混的,我也見過混子,我相信他們到別的行業也沒啥起色……


在日企工作過的遊戲程序員。後來跑去軟體和網路公司。因為工作關係用QT寫過一個商用軟體,用angularJS寫過一個在網頁運行的商業軟體,用PHP和JAVA寫過網頁服務端,這些工作的代碼量都非常可觀。軟體和網路公司,只不過是用MVC在套,然後對資料庫的CRUD操作而已。而一個真正商業級別的遊戲,邏輯絕對比傳統軟體和前端複雜的多。在日企嘗試過各種腦洞無窮的小遊戲項目,幾乎每個小項目都做的精疲力盡。而在軟體和網路公司,經常是上班後3,4個小時就把今天的工作做完,而且效率之高,代碼質量之高獲得領導同事的稱讚。這些對做遊戲來說只是基本功。每天喝喝咖啡準時下班,日子久了心裡好像空洞洞的失去了什麼東西。後來我又辭職了,重回遊戲行業。純粹是因為喜歡,遊戲行業能帶來無盡的挑戰和成就感。


做遊戲做得久的,都會有一些文藝氣息,上線過很多產品之後,追求和境界都會發生一些變化。這種氣質在其他軟體行業來說是毒瘤,如果從這個層面來考慮,是不好轉的。


只說自己的經驗。

最初接觸的正經項目就是遊戲,所以從一開始也算是從遊戲開發入手的。

後來在做其他項目時發現自己會不由自主的對比」如果用遊戲來做這個是怎麼樣的「以及」這個東西的底層實現在遊戲中對應的是什麼「

然後也會感慨,不用往死里優化速度不用對線程管理精打細算真是省心啊……


要看在行業中處於什麼樣的位置。

如果是碼農,普通工程師級別的,非常容易。這種轉行成本也很低,學習能力強的2-3個月就能適應了。

如果是技術專家,技術總監級別的,就比較難了。技術壁壘就比較高了,並且技術已經成體系,並不是單一的工具使用。

如果是CTO,VP我估計更難,我沒到這個級別,沒法回答


看你做什麼了,遊戲開發的難處在於繁雜,知識點很難復用,要對症下藥,架構要求也更高。

如果轉去解決邏輯複雜度很高的問題,或者架構問題,或者流水線問題,會輕而易舉。

然而如果要去做某個技術點專精,如追求性能極限,那麼自然不如同等工作年限的對應崗位程序。

————————

所以也正如其他答主所說的,遊戲中很多技術看起來沒這麼高大上。

發現問題了嗎?做遊戲的看來,搞定複雜的遊戲業務,本身就是能力的體現。做遊戲的人懂有些遊戲邏輯有多麼難搞。然而在其他領域的人聽來,你一不小心就成了「純做業務」「缺乏技術深度」的人。

這點深表贊同。

想起我們對於微信為什麼難做的解釋,可以解釋為同時請一億個人吃飯很難。

遊戲開發也可以類比,一個邏輯很好做,但是同時做一千個互不相同,而又可能互相影響的邏輯,也並不好做。


利益相關:以前在網易遊戲,現在在騰訊非遊戲部門工作

很多答主說遊戲非常複雜,很有挑戰性,這是對的,但我提醒一點,這複雜性未必能成為你跳往非遊戲的優勢

現在騰訊把T3(高級工程師)的職級晉陞權力下放到了事業群,其中一個原因就是:全公司評審時,不同領域的評委,常常不自覺地覺得對方做的東西沒什麼了不起。

一個當了多年評委的同事曾跟我說,以前全公司答辯時,IEG(做遊戲的)的候選人,常常一上來就講他們的業務多麼多麼複雜,我們問技術上的難點、亮點在哪,講出來都感覺很簡單。

我也聽過有資深的互聯網後台開發如此評價遊戲開發:做遊戲有什麼難的?我們動輒一億用戶,他們遊戲,撐不住了就分區分服,一個服一個獨立的小世界,能有多難?(那時不像現在,沒幾個遊戲「全球同服」。)

發現問題了嗎?做遊戲的看來,搞定複雜的遊戲業務,本身就是能力的體現。做遊戲的人懂有些遊戲邏輯有多麼難搞。然而在其他領域的人聽來,你一不小心就成了「純做業務」「缺乏技術深度」的人。

我個人在從網易遊戲跳騰訊時也很受此問題困擾。(不要問我為何不跳騰訊遊戲,因為我不喜歡遊戲,當時受高薪引誘才去網易遊戲的。)現在做遊戲以後想做其他方向的知友,建議一定多留意一下那些與遊戲不一樣的、看起來高大上的、「有深度」的技術。同時也建議本來對遊戲不感冒的應屆生,在有選擇的情況下,慎入遊戲開發。


07年畢業一直做java ee兼一些零碎的網頁前端,從小熱愛打遊戲,於是在10年的時候有一個轉遊戲行業的機會就毅然轉行遊戲了,當時是用U3D做3D頁游,那會U3D還談不上火,當然後來現實證明了U3D頁游不靠譜但在手游上火了,不過這是題外話了~

轉行上手的話還是挺快的,語言層面基本不會有阻礙,自己在轉U3D之前也純興趣層面做過些FLASH小遊戲,所以轉過來後日常開發也問題不會太大。。難點么,從技術上說難點是三個層面的,一是引擎層面涉及渲染性能和引擎特性,二是複雜的遊戲的Gameplay,三是如何將需求變成大量資源、複雜演算法有機結合,同時將引擎和硬體特性發揮到極致去讓遊戲更炫目更流暢。

遊戲行業挺苦逼的,國內大部分在研的項目都處於瘋狂搶時間趕進度的狀態,因為時間往往著決定項目生死。。對遊戲無愛的話一定慎入,但如果熱愛遊戲,還是挺多有意思的挑戰的,比如如何在手機上實現成百上千單位同時尋路和戰鬥、如何在網路延遲上做實時同步、如何讓ai單位更聰明、如何精巧的利用時間空間做資源的轉換讓遊戲更流暢運行、如何讓遊戲看上去更加真實或更加美崙美煥、等等等等,做完後成就感要比做web做app做後台來得更為強烈~


簡單不簡單,看你以什麼心態去做一個行業。

碼農,到哪兒都是寫if else,也能自稱程序員,轉什麼行業都是一樣的「簡單」。

CTO,不僅講究編程技術,還要洞察行業走勢和技術走勢,做出技術選擇,包括使用的語言、編程思想、架構,這也能自稱是程序員,轉別的行業真的簡單嗎?

我就隨口舉個朋友行業的例子——BIM。首先做遊戲的有多少不百度知道這個?聽過的有多少?BIM幹什麼的都不知道,你怎麼去做?根據策劃需求用if else湊效果當然還行,選擇技術呢?

那我們就「降維」一次,開發revit的插件,且不說二次開發什麼的,怎麼搞?一系列專業術語沒聽過,專有名詞字都認識合一其幹什麼的不知道。你如何去做這個行業?

所以之所以會覺得遊戲行業轉其他行業簡單,只能是一種無知者無畏。以為到哪個行業都跟遊戲行業一樣沒有知識底蘊,很多可以憑感覺憑揣測,甚至憑用戶經驗(打遊戲的經驗)就能知道。但是,其他行業很多都是幾百年的積累,你沒專業學過還真是不行的,即使敲敲代碼,你都很難讀懂人家的需求,人家行業可不是遊戲行業你說句做不到然後讓策劃改改需求就能改的,很多行業的設計可是人命關天的(就例子里的BIM就是)。只是你在遊戲行業一個沒有知識的行業呆慣了,所以覺得到別的行業一樣可以混混而已,但往往這樣的人在遊戲行業里一樣,整天靠否決策劃需求來度日。


非常容易。我做過一段時間小米運動iOS端,現學的ObjC。能進去就因為在QQ群被釣魚問了個關於SEL的問題。在某公司期間還瞅了幾眼嵌入開發,也沒啥特別高深的技術,會點C就能對付。嗯。


先說答案:比較難。

上面也有網易遊戲同事,過來騰訊相同經歷的,就說點沒提到的點。

1.業務壁壘

這個壁壘,在IT領域任意行業其實都存在,做新聞方面的,跳到金融領域,金融領域跳到醫療領域,醫療領域跳到地圖行業,這種業務上的壁壘其實都會存在,都會需要你有對應行業起碼的認知。但以我做過的領域來看,遊戲行業和金融行業以及地圖行業,門檻和壁壘相對是較大的。如果連基本市面上的遊戲都沒玩過,連基本的遊戲概念都不知道,很難能在遊戲行業活下來。

2.技術壁壘

客戶端:遊戲行業的客戶端,種類特別多,有自研的引擎,自研的腳本的,也有公用的U3d,UE4什麼的。ios或者android類的開發只是用於第三方接入,適配才用下,不會用原生的移動端開發。倒是網頁版,可能會用h5,搞一搞。所以遊戲客戶端可以轉的方向有,VR,3D建模方面(研究院的很多項目實體展示或模擬什麼的),地圖建模,還有當前比較火的計算視覺,人臉識別方面的研究也是可以搞搞的,這些方面主要吃一些計算機圖形學方面的知識,有一些會用遊戲引擎做一些模擬方面的東西。

伺服器:遊戲行業的伺服器同互聯網方面的其實差別不是特別大,基本的架構大同小異,很多遊戲伺服器的架構都是從互聯網業務上搞一套,然後精簡一下就可以用了。但是兩者的側重點是不一樣的,遊戲行業對高並發啊,存儲啊,動輒像阿里,微信流量上幾十億的,後台數據量,海量的這種場景相對比較少,所以一般的高並發,一般的存儲都搞得定,一般不需要在這兩個層面做太多文章,不像互聯網,這兩個層面是重中之重。遊戲更側重於,響應速度,同步頻率,響應速度慢用戶會卡,體驗很差,更重要的是,甚至遊戲中的位移,狀態都會發生錯亂,同步是整個遊戲難點和核心。而互聯網領域,其實業務並不太關注其他人的狀態,遊戲是一個自己的世界,他有自己的一套世界觀,你在遊戲里做的任何事情可能都要讓其他人看到,譬如你移動了兩米,你跳了三米,你被打了一半血,你放了個王昭君的大,那麼在你身邊的人,能看到你的人,都需要去在自己的客戶端去模擬你的所有這些操作。但這個模擬,有網路延遲,有伺服器自身的延遲,你可能一直在運動,所以怎樣去同步,怎樣去模擬,都有很深的學問在裡面,另外一個場景有幾萬個人都在放技能,這種超多人的同步可能又是一種解決方案,還有譬如你組隊打怪,做任務,期間涉及的同步會非常多,因為遊戲本身就是一種弱化的社交,他的同步和交互,我認為是要比互聯網複雜的多。

所以伺服器轉到互聯網,相對還ok,但可能會欠缺一些高並發,存儲,大數據方面的一些知識,但這些都可以很快的補上,也還可以。並且遊戲伺服器用到的演算法其實還挺多,譬如你要用很多的尋路演算法啊,各種變化的排序演算法啊,一些基礎演算法和進階演算法用的還是比較多的。但上面說的那些,基本業界都有一套相對成熟的方案,所以大多數伺服器如果不關注這些,純做業務代碼的話,我覺得轉起來其實還蠻困難的。另外遊戲也有自己的ai,但目前的ai都還很低級,如果去專門做遊戲方面的ai,也還ok,dota2 ti7上的表演也還算驚艷。

夜太深了,先不寫了,要寫實在有太多要說了,改天有時間再細說。。。。


被邀請回答別人回答這個問題的回答,順便寫一點關於這個問題的看法吧。就說兩句:開發遊戲當中用到的各種二維三維製作軟體、編譯器、開發環境、操作系統、遊戲機或者電腦本身、伺服器,難道不是所謂的遊戲之外的it行業開發的?是什麼支撐著那麼難的遊戲開發?


很難,非常難

我轉過互聯網

難在

第一,互聯網玩的都是遊戲玩剩下的,你要嚼一遍以前自己玩吐了的,這個很難接受

遊戲出身的技術,會忍不住想管產品經理的事

心理上受很大折磨

第二

你要把精益求精的性格拆碎成差不多就行的性格

因為互聯網計劃趕不上變化的特點會讓工匠精神變成死魚精神

第三

會失去所有開發的樂趣,而要學會自己找樂子

因為知識上你幾乎沒有收穫,編程能力也缺乏打磨而停滯不前,毫無進步

工程師要自己學會如何在工作之餘提高自己

而公司也會教會你為什麼互聯網女員工那麼多

總結一下就是,轉行是很好轉,如果你只是想要一份工作 遊戲人轉行都非常輕鬆


編程最難的是 寫OS 寫編譯語言 寫圖形庫(遊戲)

應用邏輯無論應用客戶端 前端 遊戲客戶端 都一個難度


我其實不覺得這問題是一個問題,作為程序員,哪怕你一直在互聯網而非遊戲行業,又何嘗不是一直在學新的技術和工具。不同的business有不同的側重,比如payment一般是consistency重要性大於latency, 而social app的comment功能則反之,兩者設計思路非常不同,做的trade off自然也不一樣。遊戲的business也很不一樣,側重的技術問題也不一樣,比如同步和渲染,都有大量的學問在裡面。


IT行業這個有點寬廣了。就說軟體研發行業吧,做蟾皮的產品狗吧。

個人的感覺,就像樓上某人說的「降緯打擊感」。可能一般的軟體產品都不如遊戲應用複雜吧。

就技術複雜度和需求複雜度上面來說,技術複雜度相差無幾;需求複雜度,遊戲會出各種幺蛾子的需求內容噢~


遊戲程序員的肚是雜貨鋪


看項目規模,

相同規模下,遊戲轉其他簡單。

不同規模下,規模大的有優勢。

但如果大規模項目封裝徹底,隱藏了複雜性,而你沒有掌握框架原理,就難以比較了。

個人是IM轉遊戲,因為規模下降太大,遊戲後端幾乎沒有難度。


做遊戲伺服器的,其實做伺服器的都差不多,基本要求就是資料庫,網路,多線程什麼的。

但是感覺遊戲伺服器的應用層邏輯還是很複雜的。因為遊戲裡面角色什麼的耦合度挺高的,邏輯比較複雜。玩家的交互比較頻繁,所以要求邏輯能力比較高。還有遊戲新功能和舊功能的聯繫都要清楚,否則很可能出現意想不到的問題。所以在邏輯層要求開發人員更加慎重開發,但是遊戲開發時間一般都是很緊迫的,所以對個人能力要求比較高。

因為畢業就做遊戲,上面就是我的感覺。

愛一行才幹一行,干一行就精一行。不管做什麼工作,只要盡到自己的全力,努力精研。把自己的工作干成自己的愛好,其實也就沒什麼難得了。都是唯手熟而。


推薦閱讀:

手遊行業的現狀是怎樣的?如何理解媒體關於遊戲行業大規模倒閉、裁員和降薪的報道?
為什麼遊戲行業的開源做得如此之差?
國內遊戲行業在地理上如何分布?

TAG:遊戲 | 遊戲開發 | 編程 | 遊戲行業 | 遊戲從業者 |