""我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

"我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

我做遊戲開發這八年

簡述

這篇文章並不是想教會大家如何開發遊戲,更不能教大家如何成為技術總監。而是分享我一路做開發的一些經歷或心得體驗。

"我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

我做遊戲開發這八年

簡述

這篇文章並不是想教會大家如何開發遊戲,更不能教大家如何成為技術總監。而是分享我一路做開發的一些經歷或心得體驗。

我做遊戲開發這八年

與編程擦肩而過

2004年,初三升高中時,因為我考上市裡最好的高中,因此父母兌現承諾給我買了一臺電腦。那時候電腦配置還是挺好的(我記得是P4的CPU、1G內存、80G硬盤、優派的液晶顯示器,還買了打印機、掃描儀)。

由於我熱愛遊戲,因此有了電腦之後就開始陷入於各類遊戲中無法自拔。基本每天晚上通宵玩遊戲,玩到凌晨5、6點睡1-2個小時,然後去上學。基本高一玩了各種遊戲,然後成績自然也是一落千丈。

到了高二的時候,因為我表姐夫是做美術設計的,因此我開始接觸了Photoshop、Coredraw這兩個軟件。我一邊瞎畫著各種東西,一邊想如果能讓這些也動起來多好。因此開始接觸了Flash。開始在網上看看各種Flash的教程,能做一些動畫,能用按鈕控件控制一些流程,也瞭解到AS2這一門語言,然後在網上找了各種酷炫的AS2代碼加到自己的Flash裡面,實現比如鼠標跟隨的特效等等效果。這時候其實我還不會獨立地寫代碼。

由於高中各種的不務正業。從中考數學全市前幾名,到最後高考沒考上重點大學,這其實也是我預料中的。因為本來我就不是一個相信運氣的人。那時候我只想快點脫離高中,可以更自由做自己喜歡做的事情。因此也沒有選擇復讀。

"我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

我做遊戲開發這八年

簡述

這篇文章並不是想教會大家如何開發遊戲,更不能教大家如何成為技術總監。而是分享我一路做開發的一些經歷或心得體驗。

我做遊戲開發這八年

與編程擦肩而過

2004年,初三升高中時,因為我考上市裡最好的高中,因此父母兌現承諾給我買了一臺電腦。那時候電腦配置還是挺好的(我記得是P4的CPU、1G內存、80G硬盤、優派的液晶顯示器,還買了打印機、掃描儀)。

由於我熱愛遊戲,因此有了電腦之後就開始陷入於各類遊戲中無法自拔。基本每天晚上通宵玩遊戲,玩到凌晨5、6點睡1-2個小時,然後去上學。基本高一玩了各種遊戲,然後成績自然也是一落千丈。

到了高二的時候,因為我表姐夫是做美術設計的,因此我開始接觸了Photoshop、Coredraw這兩個軟件。我一邊瞎畫著各種東西,一邊想如果能讓這些也動起來多好。因此開始接觸了Flash。開始在網上看看各種Flash的教程,能做一些動畫,能用按鈕控件控制一些流程,也瞭解到AS2這一門語言,然後在網上找了各種酷炫的AS2代碼加到自己的Flash裡面,實現比如鼠標跟隨的特效等等效果。這時候其實我還不會獨立地寫代碼。

由於高中各種的不務正業。從中考數學全市前幾名,到最後高考沒考上重點大學,這其實也是我預料中的。因為本來我就不是一個相信運氣的人。那時候我只想快點脫離高中,可以更自由做自己喜歡做的事情。因此也沒有選擇復讀。

我做遊戲開發這八年

從圖像設計到痴迷編程

入門編程

進入大學之後,我參與了好幾個社團,成為各個社團網絡部的成員。然後接下來的事情就是社團搞活動經常需要一些海報什麼的。因此我高中自學的Photoshop和Coredraw就派上用場了。大一基本就是做了一年各種圖像設計的工作。而從高中到大一帶來的各種突如其來的自由,也使得我繼續沉浸在各種遊戲中。到了大一的暑假時,校團委突然找網絡部幫忙做網站,而師兄們準備畢業的、準備考研的,都沒啥時間。因此這重任落到了我一個人頭上,我也不知道那麼多成員為啥選中了我,也沒想那麼多。

我暑假放假前1個月,外加暑假2個月,整個3個月時間開始瘋狂學習HTML、CSS、Javascript、PHP、MySQL,然後3個月時間從學習到開發完成了校團委的任務,製作了一個CMS網站。這三個月時間讓我覺得編程原來這麼有趣。

沉迷編程

接下來大二的時候我就陷入了瘋狂的學習和開發之中,最瘋狂的時候一天在圖書館借一本PHP的書,當天借當天看完,晚上再自己把那本書最後的例子實現了,然後第二天再去換書,就這樣我很快把圖書館所有PHP的書都看完了。書中的例子也都能自己寫出來。然後開始接了很多外包,也快速賺到了第一個筆記本的錢。

Java的圖形編程

由於大二做了很多的網站,已經覺得有點厭倦。進入大三,剛好我們有一門Java的課程,我看到Java可以開發圖形界面(Swing/Awt),因此開始轉向學習Java。我大概花了2-3周把學校發的Java書看完了,並且把裡面的示例也都自己敲了一遍。基本沒有障礙的完成了Java的學習。但是書本里面關於圖形界面的太少了,只介紹了最基本的一些控件以及做一些簡單的界面。因此我開始自己在網上找各種資料。這時候室友告訴我“Java做圖形不好看的,還不如C++不如C#,等等”。我就偏偏不信了,我依舊進行自己的學習和研究,而他也依舊站在他認為的鄙視鏈頂端鄙視我。就這樣,他學習他的SSH,而我學習著不入流的Swing、Java3D等。

其實我那時候的心理:為啥你覺得他不行他就不行?我得自己實踐過才知道。實踐出真知,我覺得這是做技術一個很重要的特質。很多時候,很多東西大家只是憑經驗人云亦云地傳播,並沒有親自實踐過。而我那時候還有一個心理,哪怕最後我花了很多時間之後做出來的東西確實不好看,那我也不虧,我在這個過程中肯定是能學到東西的。很多時候很多人會比較看重眼前做的事情收益如何,回收週期多長。但是我覺得,很多值得學習的知識都是回收週期很長,而且眼前收益很低的。對於我而言,我更多的是基於興趣去學習。我覺得這就足夠了。

最後的結果就是,我用Java開發出來的東西,他們覺得太好看,根本難以想象是Java開發的。這裡有一些大學用Java開發的圖形程序。

1. swing超絢麗系列一—— 俄羅斯方塊(https://kakashi.blog.csdn.net/article/details/7338836)

2. 純Java開發的遊戲引擎V0.5–DEMO2 – 物理引擎(https://kakashi.blog.csdn.net/article/details/6397051)

3. 雜七雜八的東西(https://kakashi.blog.csdn.net/article/details/6181486

"我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

我做遊戲開發這八年

簡述

這篇文章並不是想教會大家如何開發遊戲,更不能教大家如何成為技術總監。而是分享我一路做開發的一些經歷或心得體驗。

我做遊戲開發這八年

與編程擦肩而過

2004年,初三升高中時,因為我考上市裡最好的高中,因此父母兌現承諾給我買了一臺電腦。那時候電腦配置還是挺好的(我記得是P4的CPU、1G內存、80G硬盤、優派的液晶顯示器,還買了打印機、掃描儀)。

由於我熱愛遊戲,因此有了電腦之後就開始陷入於各類遊戲中無法自拔。基本每天晚上通宵玩遊戲,玩到凌晨5、6點睡1-2個小時,然後去上學。基本高一玩了各種遊戲,然後成績自然也是一落千丈。

到了高二的時候,因為我表姐夫是做美術設計的,因此我開始接觸了Photoshop、Coredraw這兩個軟件。我一邊瞎畫著各種東西,一邊想如果能讓這些也動起來多好。因此開始接觸了Flash。開始在網上看看各種Flash的教程,能做一些動畫,能用按鈕控件控制一些流程,也瞭解到AS2這一門語言,然後在網上找了各種酷炫的AS2代碼加到自己的Flash裡面,實現比如鼠標跟隨的特效等等效果。這時候其實我還不會獨立地寫代碼。

由於高中各種的不務正業。從中考數學全市前幾名,到最後高考沒考上重點大學,這其實也是我預料中的。因為本來我就不是一個相信運氣的人。那時候我只想快點脫離高中,可以更自由做自己喜歡做的事情。因此也沒有選擇復讀。

我做遊戲開發這八年

從圖像設計到痴迷編程

入門編程

進入大學之後,我參與了好幾個社團,成為各個社團網絡部的成員。然後接下來的事情就是社團搞活動經常需要一些海報什麼的。因此我高中自學的Photoshop和Coredraw就派上用場了。大一基本就是做了一年各種圖像設計的工作。而從高中到大一帶來的各種突如其來的自由,也使得我繼續沉浸在各種遊戲中。到了大一的暑假時,校團委突然找網絡部幫忙做網站,而師兄們準備畢業的、準備考研的,都沒啥時間。因此這重任落到了我一個人頭上,我也不知道那麼多成員為啥選中了我,也沒想那麼多。

我暑假放假前1個月,外加暑假2個月,整個3個月時間開始瘋狂學習HTML、CSS、Javascript、PHP、MySQL,然後3個月時間從學習到開發完成了校團委的任務,製作了一個CMS網站。這三個月時間讓我覺得編程原來這麼有趣。

沉迷編程

接下來大二的時候我就陷入了瘋狂的學習和開發之中,最瘋狂的時候一天在圖書館借一本PHP的書,當天借當天看完,晚上再自己把那本書最後的例子實現了,然後第二天再去換書,就這樣我很快把圖書館所有PHP的書都看完了。書中的例子也都能自己寫出來。然後開始接了很多外包,也快速賺到了第一個筆記本的錢。

Java的圖形編程

由於大二做了很多的網站,已經覺得有點厭倦。進入大三,剛好我們有一門Java的課程,我看到Java可以開發圖形界面(Swing/Awt),因此開始轉向學習Java。我大概花了2-3周把學校發的Java書看完了,並且把裡面的示例也都自己敲了一遍。基本沒有障礙的完成了Java的學習。但是書本里面關於圖形界面的太少了,只介紹了最基本的一些控件以及做一些簡單的界面。因此我開始自己在網上找各種資料。這時候室友告訴我“Java做圖形不好看的,還不如C++不如C#,等等”。我就偏偏不信了,我依舊進行自己的學習和研究,而他也依舊站在他認為的鄙視鏈頂端鄙視我。就這樣,他學習他的SSH,而我學習著不入流的Swing、Java3D等。

其實我那時候的心理:為啥你覺得他不行他就不行?我得自己實踐過才知道。實踐出真知,我覺得這是做技術一個很重要的特質。很多時候,很多東西大家只是憑經驗人云亦云地傳播,並沒有親自實踐過。而我那時候還有一個心理,哪怕最後我花了很多時間之後做出來的東西確實不好看,那我也不虧,我在這個過程中肯定是能學到東西的。很多時候很多人會比較看重眼前做的事情收益如何,回收週期多長。但是我覺得,很多值得學習的知識都是回收週期很長,而且眼前收益很低的。對於我而言,我更多的是基於興趣去學習。我覺得這就足夠了。

最後的結果就是,我用Java開發出來的東西,他們覺得太好看,根本難以想象是Java開發的。這裡有一些大學用Java開發的圖形程序。

1. swing超絢麗系列一—— 俄羅斯方塊(https://kakashi.blog.csdn.net/article/details/7338836)

2. 純Java開發的遊戲引擎V0.5–DEMO2 – 物理引擎(https://kakashi.blog.csdn.net/article/details/6397051)

3. 雜七雜八的東西(https://kakashi.blog.csdn.net/article/details/6181486

我做遊戲開發這八年

就職遊戲開發

2011,第一次面試&實習生

2011年初,不知不覺到了大四第二學期。本來我還不想這時候去找工作,因為此時我覺得還有很多事情想做,比如那時候我還在用Java自己做一個3D遊戲。

但是大四寒假的時候,有個同學發了一個網頁遊戲公司的招聘鏈接給我,說這個公司還不錯,我看了一下招聘要求,感覺自己符合要求,於是就順手投了個簡歷。

其實投簡歷之前,那時候北京GLU有位前輩想讓我畢業後去試試。還有另一家互聯網公司也是讓我畢業後去工作。主要在於我大學期間經常在各個技術QQ群裡幫大家解決問題,最開始他們以為我應該工作了幾年,後來知道我還在上學,因此就想我畢業後去他們公司工作。

後來肯定是我投的簡歷的公司讓我去面試了,那天從下午2點面試到下午6點。從HR、主程序、製作人到CTO都面了。CTO面試的時候網絡的BIO、NIO、多線程的安全問題如何解決也都問了。最後CTO說“你簡歷裡寫的都是Java做的圖形界面,我們這Java都是做服務器,你接受做服務器嗎“,我怕服務器又是做網站,於是問他”服務器也是做遊戲嗎“,他說“肯定是做遊戲。我們做的是網遊”。因此我就說“可以呀,只要是做遊戲就好。”於是CTO接著說“你進我們公司肯定是沒問題的,估計過幾天會給你發Offer,你也不用去面試別的公司了”。

因為我個人也懶得比較,既然CTO也那麼說了,我就沒去面試別的公司,在同學那玩了一週,一週後就入職了。

記得那時候CTO還問過我一個問題“你說你這麼喜歡寫代碼, 你想寫到幾歲”,我說“30歲吧”。他問我為啥只寫到30歲。我說那時候可能我是技術總監了。就不用寫代碼了。後來我30歲的時候,成為了技術總監。但是我還是喜歡寫代碼。其實興趣是可以一輩子的。我也不知道為啥面試那時候那麼回答了。

2011,第一個遊戲

剛進入工作比較緊張,總怕哪裡做不好。第一週項目組說讓我去改一下服務器列表。我那時候壓根沒有遠程登陸過服務器改東西,主程就給了我IP、用戶名、密碼,以及網頁的位置。於是我趕緊自己搜索了各種資料,在接到任務的半小時內,我第一次用SecureCRT登陸服務器,第一次用VI在服務器上修改文件。

接著幾天就是熟悉項目,我在服務器上自己找到了聊天的協議入口,然後加入了一些GM,給自己的賬號加了趙雲、呂布這些牛逼的武將。

幾天後,主程找我,說來的畢業生裡面感覺你編程能力不錯,你想去做新項目嗎。我自然想體驗從0開發遊戲的過程。於是就滿心雀躍地說“想!”。

新項目開發的時候我充滿了激情,基本上第一週我就完成了揹包系統的開發。那時候公司其他遊戲的數據存儲都是同步的。主程就說,這個新項目估計用戶交互會比較頻繁和實時,同步存儲怕會卡頓。於是我那一週開發揹包的時候,順便被服務器的數據存儲寫了個異步的存儲。(後面該功能還被公司其他那項目組引用),立項一個月後主程就去了騰訊。而我們項目本來是公司的嘗試性項目(公司其他項目都是SLG,而這個項目是RPG),因此也一直得不到重視,一直得不到重視。我們這項目加上我就2個服務器,開發了半年上線了。我對遊戲業務非常熟,編程基礎也還行,因此開發速度很虧,一個人開發了70%的系統。那時候很多同學問我,你做那麼多,公司給你加工資了沒有。我說沒有,他們說,那沒有你為啥做那麼多。

其實有的時候不是你在這個位置才能做這個事情。而是你有能力、主動地去做這個位置的事情,做多了你自然也就是這個位置的人。因為我覺得沒有哪個公司會願意付出成本讓你冒險。

項目上線的時候,公司也讓我成為了這個項目的服務器主程。那時候我距離實習才半年,一直怕自己做不好,因此一直很努力提升各種能力。由於我開發的功能Bug極少,而且出Bug的時候修改極快,因此項目組的測試負責人說我說最受測試歡迎的程序,直到後來她去了銀漢後遇到她,她還說她在銀漢和測試部說,曾經有個程序員這樣這樣…

寫程序出BUG是常見的事情,想要減少BUG數量,要思維謹慎,業務熟悉,而想要修BUG快速,需要對所寫的東西都爛熟於心,我之前經常對別人說要做到代碼在心中。


如果你寫的代碼你內心都很清晰,那麼出問題的時候,很快就能定位到問題。這就像,你的代碼存在於內存中,查找肯定快。如果每次都是要去慢慢看代碼文件,那就像每次都檢索磁盤,肯定會慢一點。我之前好多個性能問題都是在走路和洗澡想到的解決方案,假如心中沒有代碼,又如何能做到呢?

2012年,第二個重量級IP遊戲

12年初的時候,公司準備做一個ARPG項目,是星爺授權合作的遊戲《西遊降魔篇》,那時候公司從我們第一個項目的表現覺得我們項目組還是具備比較好的研發能力的,因此這個項目就給了我們項目組。

一開始公司讓我做這個項目的主程序,我覺得我才畢業1年,我玩遊戲很多,自知ARPG項目比我上一個RPG肯定要高。因此最開始希望公司能招一個經驗豐富的主程,我可以過去學習。公司也同意了,主程入職了一直在看天堂2的源碼,也拉著我看。我覺得天堂2的源碼存在很多問題。比如各種在“父類中判斷自己是否是某個子類”等。後來2個月過去了,連登陸都還不能登陸。因此製作人就問我,說你覺得他行不行。我也把我對天堂源碼的判斷說了一下。

後來製作人說,要不還是你來當主程吧。那時候我覺得也行吧。反正本來想跟一個有經驗的人學東西,結果反而他老來問我各種東西,而且開發進度也很慢。於是我就答應了。然後我又重新開始搭框架。第一週花了時間把網絡、副本採用的線程模型搭好了。第二週CTO帶著我做了場景。第二週我們已經可以多客戶端同步移動、怪物有了簡單的AI和普攻了。而且我為了減少和客戶端連調的不便,還自己用Swing寫了一個圖形界面,用於顯示服務器當前地圖中各個角色的位置。(所以說,假如我大學的時候很功利地覺得學習Java的圖形開發性價比不高,那麼這時候我肯定沒法自己快速完成這個工具

這個項目我們花了9個月上線。作為公司第一個ARPG項目,其實也很快了。

項目上線後玩的人挺多,那時候單物理服導量的時候有6000人同時在線。不過這個遊戲收費沒有調起來。

2013年,轉戰手遊與創業

西遊降魔篇調了整整8個月都沒把付費調起來,甚至越來越差。從最開始每月單服的700W變為幾乎沒有。此時已經是2013年中,我建議公司可以使用Unity3D(其實12年底已經說過一次,製作人說次年可以申請看看)開發手遊,但是公司的戰略明顯還是在頁遊,因為公司靠頁遊已經做到借殼上市,不願意也覺得沒必要去踩手遊的坑。公司唯一一個和手遊有關的部門其實是把頁遊項目通過AIR發佈為手遊。這樣出來的手遊性能堪憂,而且體驗也沒有做針對性優化。

於是在2013年8月,我就辭職自己去創業做手遊了。

自己創業肯定面臨的是資金問題,短缺的資金不可能請得了很多牛人,因此我自己又開始做起了Unity3D客戶端。把戰鬥等最核心的東西都自己扛下來。

我們2策劃、2程序、1美術從立項到做完Demo花了大概3個月,然後開始拿著手機去演示DEMO,去找投資。

那時候的DEMO是用Unity3D做了一個2D遊戲。因為我們唯一的美術人員比較擅長畫畫。Demo可以在這裡看到:第一個Unity3D 的Demo(https://kakashi.blog.csdn.net/article/details/29365329)。

我們大概找了4個投資人談,最後確定了投資。

2014-2015,第一次創業

就像上面說的,創業資金的短缺,而且那時候Unity3D人員的稀缺,導致我們想找一個牛逼的人員根本不可能,因此我只能自己扛下戰鬥、Shader等核心的工作。那時候白天寫服務器,教新人寫代碼,一行行代碼地邊敲邊講,晚上寫客戶端,最瘋狂的幾個月基本睡公司,凌晨5、6點入睡,早上9點半起來。

那時候我用Unity3D,也只是為了為公司省成本,也沒想什麼太多的東西。結果也正是這段經歷,使得我後來成為了另一家百人公司的技術總監。所以我還是挺相信一句話:但行好事,莫問前程!

最後創業肯定還是失敗了,其實還是因為團隊成員的不成熟。因此在2015年中的時候,經過了幾輪調整和測試後,由於測試結果表現不理想,我們就結束了創業。我並沒有對這次創業感到後悔,畢竟那是一次寶貴的經歷。而且整個創業過程也都是很充實,很開心。

2015,西山居和多益網絡

創業結束後我覺得想找個公司積累一下。那時候只面試了珠海西山居和多益網絡,西山居劍網3項目組也希望我過去,但我覺得我就是因為懶,最後選擇了繼續留在廣州的多益網絡。我學習可以很努力,但是對於公司的選擇卻經常是很懶。

2016-2018,第二次創業

在多益做的時間不長,基本過了試用期,以前第一家公司的製作人就找我創業。並不是因為我個人喜歡創業,其實我只想做一個成功的遊戲,能被大家認可的遊戲。那時候出去創業,更多是因為這位製作人以前對我不錯,也是因為他我才能剛畢業就當上主程,因此這次創業,其實更多的還是報恩。

這次創業的結果無疑還是失敗的。

2018至今,360遊戲藝術(豈凡網絡)技術總監

2018年4月,由於以前帶的一位程序的推薦,我便去了360遊戲藝術擔任技術總監。這時候剛好30歲,正好和剛畢業實習的時候自己說30歲可能會當上技術總監。實現了自己當初不假思索的一句話。但是回想起來,我這一路並沒有為當技術總監去做任何刻意的學習與準備。只是我一路以來學習的都是自己喜歡的,做的都是自己喜歡的,而且該公司正好需要我目前擁有的能力而已。這也是我最後想和大家分享的,有的人會問怎麼才能當主程,怎麼才能當總監。我覺得不管當什麼職位,重要的就是為公司解決問題,你能解決什麼樣的問題,你自然就能勝任什麼崗位。而有很多捨本逐末的做法,其實看似近路,最後都是無盡的彎路。我覺得做什麼都不重要,重要的應該想想,自己能為遊戲這個行業做什麼,平常應該怎麼提升自我去成為行業真正渴求的人。

當然我從任該崗位以來,一直也覺得自己還是做的不夠好,也還在一直努力提升自己。

今天正好有空,謹以此文,獻給所有想為自己所在行業做點貢獻的小夥伴!希望一起努力,共勉!

聲明:本文已獲 CSDN 博主 kakashi8841 授權,版權歸作者所有。

原文:https://blog.csdn.net/kakashi8841/article/details/100065038

【END】

"我做遊戲開發這八年

作者 | kakashi8841

責編 | 屠敏

出品 | CSDN 博客

我做遊戲開發這八年

簡述

這篇文章並不是想教會大家如何開發遊戲,更不能教大家如何成為技術總監。而是分享我一路做開發的一些經歷或心得體驗。

我做遊戲開發這八年

與編程擦肩而過

2004年,初三升高中時,因為我考上市裡最好的高中,因此父母兌現承諾給我買了一臺電腦。那時候電腦配置還是挺好的(我記得是P4的CPU、1G內存、80G硬盤、優派的液晶顯示器,還買了打印機、掃描儀)。

由於我熱愛遊戲,因此有了電腦之後就開始陷入於各類遊戲中無法自拔。基本每天晚上通宵玩遊戲,玩到凌晨5、6點睡1-2個小時,然後去上學。基本高一玩了各種遊戲,然後成績自然也是一落千丈。

到了高二的時候,因為我表姐夫是做美術設計的,因此我開始接觸了Photoshop、Coredraw這兩個軟件。我一邊瞎畫著各種東西,一邊想如果能讓這些也動起來多好。因此開始接觸了Flash。開始在網上看看各種Flash的教程,能做一些動畫,能用按鈕控件控制一些流程,也瞭解到AS2這一門語言,然後在網上找了各種酷炫的AS2代碼加到自己的Flash裡面,實現比如鼠標跟隨的特效等等效果。這時候其實我還不會獨立地寫代碼。

由於高中各種的不務正業。從中考數學全市前幾名,到最後高考沒考上重點大學,這其實也是我預料中的。因為本來我就不是一個相信運氣的人。那時候我只想快點脫離高中,可以更自由做自己喜歡做的事情。因此也沒有選擇復讀。

我做遊戲開發這八年

從圖像設計到痴迷編程

入門編程

進入大學之後,我參與了好幾個社團,成為各個社團網絡部的成員。然後接下來的事情就是社團搞活動經常需要一些海報什麼的。因此我高中自學的Photoshop和Coredraw就派上用場了。大一基本就是做了一年各種圖像設計的工作。而從高中到大一帶來的各種突如其來的自由,也使得我繼續沉浸在各種遊戲中。到了大一的暑假時,校團委突然找網絡部幫忙做網站,而師兄們準備畢業的、準備考研的,都沒啥時間。因此這重任落到了我一個人頭上,我也不知道那麼多成員為啥選中了我,也沒想那麼多。

我暑假放假前1個月,外加暑假2個月,整個3個月時間開始瘋狂學習HTML、CSS、Javascript、PHP、MySQL,然後3個月時間從學習到開發完成了校團委的任務,製作了一個CMS網站。這三個月時間讓我覺得編程原來這麼有趣。

沉迷編程

接下來大二的時候我就陷入了瘋狂的學習和開發之中,最瘋狂的時候一天在圖書館借一本PHP的書,當天借當天看完,晚上再自己把那本書最後的例子實現了,然後第二天再去換書,就這樣我很快把圖書館所有PHP的書都看完了。書中的例子也都能自己寫出來。然後開始接了很多外包,也快速賺到了第一個筆記本的錢。

Java的圖形編程

由於大二做了很多的網站,已經覺得有點厭倦。進入大三,剛好我們有一門Java的課程,我看到Java可以開發圖形界面(Swing/Awt),因此開始轉向學習Java。我大概花了2-3周把學校發的Java書看完了,並且把裡面的示例也都自己敲了一遍。基本沒有障礙的完成了Java的學習。但是書本里面關於圖形界面的太少了,只介紹了最基本的一些控件以及做一些簡單的界面。因此我開始自己在網上找各種資料。這時候室友告訴我“Java做圖形不好看的,還不如C++不如C#,等等”。我就偏偏不信了,我依舊進行自己的學習和研究,而他也依舊站在他認為的鄙視鏈頂端鄙視我。就這樣,他學習他的SSH,而我學習著不入流的Swing、Java3D等。

其實我那時候的心理:為啥你覺得他不行他就不行?我得自己實踐過才知道。實踐出真知,我覺得這是做技術一個很重要的特質。很多時候,很多東西大家只是憑經驗人云亦云地傳播,並沒有親自實踐過。而我那時候還有一個心理,哪怕最後我花了很多時間之後做出來的東西確實不好看,那我也不虧,我在這個過程中肯定是能學到東西的。很多時候很多人會比較看重眼前做的事情收益如何,回收週期多長。但是我覺得,很多值得學習的知識都是回收週期很長,而且眼前收益很低的。對於我而言,我更多的是基於興趣去學習。我覺得這就足夠了。

最後的結果就是,我用Java開發出來的東西,他們覺得太好看,根本難以想象是Java開發的。這裡有一些大學用Java開發的圖形程序。

1. swing超絢麗系列一—— 俄羅斯方塊(https://kakashi.blog.csdn.net/article/details/7338836)

2. 純Java開發的遊戲引擎V0.5–DEMO2 – 物理引擎(https://kakashi.blog.csdn.net/article/details/6397051)

3. 雜七雜八的東西(https://kakashi.blog.csdn.net/article/details/6181486

我做遊戲開發這八年

就職遊戲開發

2011,第一次面試&實習生

2011年初,不知不覺到了大四第二學期。本來我還不想這時候去找工作,因為此時我覺得還有很多事情想做,比如那時候我還在用Java自己做一個3D遊戲。

但是大四寒假的時候,有個同學發了一個網頁遊戲公司的招聘鏈接給我,說這個公司還不錯,我看了一下招聘要求,感覺自己符合要求,於是就順手投了個簡歷。

其實投簡歷之前,那時候北京GLU有位前輩想讓我畢業後去試試。還有另一家互聯網公司也是讓我畢業後去工作。主要在於我大學期間經常在各個技術QQ群裡幫大家解決問題,最開始他們以為我應該工作了幾年,後來知道我還在上學,因此就想我畢業後去他們公司工作。

後來肯定是我投的簡歷的公司讓我去面試了,那天從下午2點面試到下午6點。從HR、主程序、製作人到CTO都面了。CTO面試的時候網絡的BIO、NIO、多線程的安全問題如何解決也都問了。最後CTO說“你簡歷裡寫的都是Java做的圖形界面,我們這Java都是做服務器,你接受做服務器嗎“,我怕服務器又是做網站,於是問他”服務器也是做遊戲嗎“,他說“肯定是做遊戲。我們做的是網遊”。因此我就說“可以呀,只要是做遊戲就好。”於是CTO接著說“你進我們公司肯定是沒問題的,估計過幾天會給你發Offer,你也不用去面試別的公司了”。

因為我個人也懶得比較,既然CTO也那麼說了,我就沒去面試別的公司,在同學那玩了一週,一週後就入職了。

記得那時候CTO還問過我一個問題“你說你這麼喜歡寫代碼, 你想寫到幾歲”,我說“30歲吧”。他問我為啥只寫到30歲。我說那時候可能我是技術總監了。就不用寫代碼了。後來我30歲的時候,成為了技術總監。但是我還是喜歡寫代碼。其實興趣是可以一輩子的。我也不知道為啥面試那時候那麼回答了。

2011,第一個遊戲

剛進入工作比較緊張,總怕哪裡做不好。第一週項目組說讓我去改一下服務器列表。我那時候壓根沒有遠程登陸過服務器改東西,主程就給了我IP、用戶名、密碼,以及網頁的位置。於是我趕緊自己搜索了各種資料,在接到任務的半小時內,我第一次用SecureCRT登陸服務器,第一次用VI在服務器上修改文件。

接著幾天就是熟悉項目,我在服務器上自己找到了聊天的協議入口,然後加入了一些GM,給自己的賬號加了趙雲、呂布這些牛逼的武將。

幾天後,主程找我,說來的畢業生裡面感覺你編程能力不錯,你想去做新項目嗎。我自然想體驗從0開發遊戲的過程。於是就滿心雀躍地說“想!”。

新項目開發的時候我充滿了激情,基本上第一週我就完成了揹包系統的開發。那時候公司其他遊戲的數據存儲都是同步的。主程就說,這個新項目估計用戶交互會比較頻繁和實時,同步存儲怕會卡頓。於是我那一週開發揹包的時候,順便被服務器的數據存儲寫了個異步的存儲。(後面該功能還被公司其他那項目組引用),立項一個月後主程就去了騰訊。而我們項目本來是公司的嘗試性項目(公司其他項目都是SLG,而這個項目是RPG),因此也一直得不到重視,一直得不到重視。我們這項目加上我就2個服務器,開發了半年上線了。我對遊戲業務非常熟,編程基礎也還行,因此開發速度很虧,一個人開發了70%的系統。那時候很多同學問我,你做那麼多,公司給你加工資了沒有。我說沒有,他們說,那沒有你為啥做那麼多。

其實有的時候不是你在這個位置才能做這個事情。而是你有能力、主動地去做這個位置的事情,做多了你自然也就是這個位置的人。因為我覺得沒有哪個公司會願意付出成本讓你冒險。

項目上線的時候,公司也讓我成為了這個項目的服務器主程。那時候我距離實習才半年,一直怕自己做不好,因此一直很努力提升各種能力。由於我開發的功能Bug極少,而且出Bug的時候修改極快,因此項目組的測試負責人說我說最受測試歡迎的程序,直到後來她去了銀漢後遇到她,她還說她在銀漢和測試部說,曾經有個程序員這樣這樣…

寫程序出BUG是常見的事情,想要減少BUG數量,要思維謹慎,業務熟悉,而想要修BUG快速,需要對所寫的東西都爛熟於心,我之前經常對別人說要做到代碼在心中。


如果你寫的代碼你內心都很清晰,那麼出問題的時候,很快就能定位到問題。這就像,你的代碼存在於內存中,查找肯定快。如果每次都是要去慢慢看代碼文件,那就像每次都檢索磁盤,肯定會慢一點。我之前好多個性能問題都是在走路和洗澡想到的解決方案,假如心中沒有代碼,又如何能做到呢?

2012年,第二個重量級IP遊戲

12年初的時候,公司準備做一個ARPG項目,是星爺授權合作的遊戲《西遊降魔篇》,那時候公司從我們第一個項目的表現覺得我們項目組還是具備比較好的研發能力的,因此這個項目就給了我們項目組。

一開始公司讓我做這個項目的主程序,我覺得我才畢業1年,我玩遊戲很多,自知ARPG項目比我上一個RPG肯定要高。因此最開始希望公司能招一個經驗豐富的主程,我可以過去學習。公司也同意了,主程入職了一直在看天堂2的源碼,也拉著我看。我覺得天堂2的源碼存在很多問題。比如各種在“父類中判斷自己是否是某個子類”等。後來2個月過去了,連登陸都還不能登陸。因此製作人就問我,說你覺得他行不行。我也把我對天堂源碼的判斷說了一下。

後來製作人說,要不還是你來當主程吧。那時候我覺得也行吧。反正本來想跟一個有經驗的人學東西,結果反而他老來問我各種東西,而且開發進度也很慢。於是我就答應了。然後我又重新開始搭框架。第一週花了時間把網絡、副本採用的線程模型搭好了。第二週CTO帶著我做了場景。第二週我們已經可以多客戶端同步移動、怪物有了簡單的AI和普攻了。而且我為了減少和客戶端連調的不便,還自己用Swing寫了一個圖形界面,用於顯示服務器當前地圖中各個角色的位置。(所以說,假如我大學的時候很功利地覺得學習Java的圖形開發性價比不高,那麼這時候我肯定沒法自己快速完成這個工具

這個項目我們花了9個月上線。作為公司第一個ARPG項目,其實也很快了。

項目上線後玩的人挺多,那時候單物理服導量的時候有6000人同時在線。不過這個遊戲收費沒有調起來。

2013年,轉戰手遊與創業

西遊降魔篇調了整整8個月都沒把付費調起來,甚至越來越差。從最開始每月單服的700W變為幾乎沒有。此時已經是2013年中,我建議公司可以使用Unity3D(其實12年底已經說過一次,製作人說次年可以申請看看)開發手遊,但是公司的戰略明顯還是在頁遊,因為公司靠頁遊已經做到借殼上市,不願意也覺得沒必要去踩手遊的坑。公司唯一一個和手遊有關的部門其實是把頁遊項目通過AIR發佈為手遊。這樣出來的手遊性能堪憂,而且體驗也沒有做針對性優化。

於是在2013年8月,我就辭職自己去創業做手遊了。

自己創業肯定面臨的是資金問題,短缺的資金不可能請得了很多牛人,因此我自己又開始做起了Unity3D客戶端。把戰鬥等最核心的東西都自己扛下來。

我們2策劃、2程序、1美術從立項到做完Demo花了大概3個月,然後開始拿著手機去演示DEMO,去找投資。

那時候的DEMO是用Unity3D做了一個2D遊戲。因為我們唯一的美術人員比較擅長畫畫。Demo可以在這裡看到:第一個Unity3D 的Demo(https://kakashi.blog.csdn.net/article/details/29365329)。

我們大概找了4個投資人談,最後確定了投資。

2014-2015,第一次創業

就像上面說的,創業資金的短缺,而且那時候Unity3D人員的稀缺,導致我們想找一個牛逼的人員根本不可能,因此我只能自己扛下戰鬥、Shader等核心的工作。那時候白天寫服務器,教新人寫代碼,一行行代碼地邊敲邊講,晚上寫客戶端,最瘋狂的幾個月基本睡公司,凌晨5、6點入睡,早上9點半起來。

那時候我用Unity3D,也只是為了為公司省成本,也沒想什麼太多的東西。結果也正是這段經歷,使得我後來成為了另一家百人公司的技術總監。所以我還是挺相信一句話:但行好事,莫問前程!

最後創業肯定還是失敗了,其實還是因為團隊成員的不成熟。因此在2015年中的時候,經過了幾輪調整和測試後,由於測試結果表現不理想,我們就結束了創業。我並沒有對這次創業感到後悔,畢竟那是一次寶貴的經歷。而且整個創業過程也都是很充實,很開心。

2015,西山居和多益網絡

創業結束後我覺得想找個公司積累一下。那時候只面試了珠海西山居和多益網絡,西山居劍網3項目組也希望我過去,但我覺得我就是因為懶,最後選擇了繼續留在廣州的多益網絡。我學習可以很努力,但是對於公司的選擇卻經常是很懶。

2016-2018,第二次創業

在多益做的時間不長,基本過了試用期,以前第一家公司的製作人就找我創業。並不是因為我個人喜歡創業,其實我只想做一個成功的遊戲,能被大家認可的遊戲。那時候出去創業,更多是因為這位製作人以前對我不錯,也是因為他我才能剛畢業就當上主程,因此這次創業,其實更多的還是報恩。

這次創業的結果無疑還是失敗的。

2018至今,360遊戲藝術(豈凡網絡)技術總監

2018年4月,由於以前帶的一位程序的推薦,我便去了360遊戲藝術擔任技術總監。這時候剛好30歲,正好和剛畢業實習的時候自己說30歲可能會當上技術總監。實現了自己當初不假思索的一句話。但是回想起來,我這一路並沒有為當技術總監去做任何刻意的學習與準備。只是我一路以來學習的都是自己喜歡的,做的都是自己喜歡的,而且該公司正好需要我目前擁有的能力而已。這也是我最後想和大家分享的,有的人會問怎麼才能當主程,怎麼才能當總監。我覺得不管當什麼職位,重要的就是為公司解決問題,你能解決什麼樣的問題,你自然就能勝任什麼崗位。而有很多捨本逐末的做法,其實看似近路,最後都是無盡的彎路。我覺得做什麼都不重要,重要的應該想想,自己能為遊戲這個行業做什麼,平常應該怎麼提升自我去成為行業真正渴求的人。

當然我從任該崗位以來,一直也覺得自己還是做的不夠好,也還在一直努力提升自己。

今天正好有空,謹以此文,獻給所有想為自己所在行業做點貢獻的小夥伴!希望一起努力,共勉!

聲明:本文已獲 CSDN 博主 kakashi8841 授權,版權歸作者所有。

原文:https://blog.csdn.net/kakashi8841/article/details/100065038

【END】

我做遊戲開發這八年"

相關推薦

推薦中...