「我想進入遊戲業!但是不知道要如何做準備!」
你是學生嗎?你渴望在畢業之後進入遊戲業界工作嗎?你抱持著滿腔的熱情,卻不知道如何替未來的自己做好準備嗎?這篇文章裡,將以我個人的經驗與心 得,提供給有興趣進入遊戲業界的學生一些行前準備建議。因為我自己是屬於遊戲程式設計者的身份,所以這篇文章多數的內容是針對未來有志於成為遊戲程式設計師的大學生。在文章最後,則會稍微提到一些關於遊戲企畫設計者與遊戲美術設計者的面試加分項目。
對於有志成為遊戲程式設計者的人來說,大專院校中的資訊相關科系,如資訊工程、資訊科學以及資訊管理學系,可以 說是最為接近遊戲程式設計的領域。雖然台灣目前已有幾間學校設立了遊戲設計學系,但是以成為遊戲程式設計者的目標來說,我認為選擇資訊相關科系仍然會是比 較合適的決定。資訊科系畢業的學生,未來可以從事許多不同面向的工作,例如 IC 設計、韌體開發、軟體設計以及網路多媒體程式設計等等;而一般來說,相較於硬體與軟體產業,遊戲業界在考慮新鮮人的履歷表時,比較少有學歷面向的資格限制。
大學考試的錄取率年年昇高,至今年甚至已經達到 100% 的錄取率,如果你身為一位大學畢業生,在每年六、七月新鮮人開始投履歷尋找工作時,要如何從眾多的大學畢業生中脫穎而出?如何爭取到更多的面試機會與工作 機會?又或者應不應該念研究所?要回答這些疑問,首先必須瞭解的關鍵問題是:「進入遊戲業界需要什麼樣的能力?」
基本能力,通常是工作應徵者的第一道關卡;如果連基本能力都無法滿足,很可能就無法得到面試以及工作的機會。在遊戲業界中,程式設計者所需具備的基本能力有兩項:
- 程式設計能力:必須熟悉 C++ 語言,真正瞭解虛擬與繼承的使用時機,能夠使用 STL 並且瞭解資料結構與容器,認識基本的設計模式 (Design Patterns),並且具備優秀程式設計者的特質。
- 英文讀寫能力:能夠閱讀以英文撰寫的技術文件、國外討論區的文章,以及各種英文技術書籍,並且能夠撰寫簡單的英文句子與其他人進行討論。
通過以上兩項基本能力的門檻以後,接下來的關卡考驗則是專業能力的條件項目;依所學領域的分野,大致上可分為客戶端 (Client Side) 與伺服端 (Server Side) 兩大領域:
- 客戶端:具備 3D 繪圖領域的知識,至少熟悉 DirectX 或 OpenGL 兩者之一。瞭解基礎的 Windows 視窗程式設計,能夠使用 MFC 或 .NET 製作視窗程式,認識 Lua 語言。
- 伺服端:具備網路通訊協定與網路架構理論知識,熟悉 Linux 平台以及 GCC 操作,瞭解封包傳送、加解密與壓縮的方法,能夠使用 SQL 語法處理資料庫,認識 Perl 或 Python 語言。
瞭解上述的基本能力與專業能力項目之後,就可以開始思考念研究所是否對這些項目有所幫助了。在你的面前,有兩條岔路延展開來:
- 大學畢業,當兵,進入業界。
- 大學畢業,念研究所,碩士畢業,當兵,進入業界。
在這兩個選項之間,存在著時間成本以及機會成本上的差異。如果選擇第一條 路,在讀完大學後直接投入遊戲界,優勢在於能夠及早接觸業界,學習成長的同時也為公司做出貢獻;有了現實層面的壓力,成長的速度往往遠勝於在學校的學習效 果。只要能夠在一間不錯的公司裡工作,二年之內,就能夠熟悉各種遊戲開發的知識,進而成為優秀的遊戲程式設計者。而如果選擇第二條路,讀完大學後繼續就讀 研究所,並且在二年後順利拿到學位證書,然後再進入遊戲界,優勢在於工作之後如果覺得不如預期,將比較有後路能夠轉向其他業界。然而,在碩士班裡,往往需 要花費許多時間在畢業論文之上,而比較少有磨練程式設計能力的機會;在對於程式設計實作能力非常重視的遊戲業界中,這是比較容易使面試主管產生疑慮之處。
如果沒有仔細思考念研究所的目的為何,只是跟著其他人上補習班、考研究所然後念研究所。進入研究所後,只管挑選比較熱門的研究領域,或者比較輕鬆的 指導教授,整天窩在研究室裡玩著連線遊戲,然後在二年級下學期才匆匆忙忙地開始著手動工撰寫論文,即使擁有了碩士學位也難以經得起時間與工作的考驗。博士 畢業生,要有發現問題的能力;而碩士畢業生,應該要有獨立解決問題的能力,這才是碩士學位的價值所在。
如果你已經做出決定,確定要朝向碩士班的目標努力,除了考慮想要就讀的目標學校良窳與否的考量以外,最好能夠先確定指導教授的研究領域是否與遊戲開 發有關連性;因為雖然資訊相關科系的研究所相當多,但是真正能夠稱得上與遊戲開發或遊戲程式設計相關的系所卻很少。以研究領域來說,與遊戲業界最為相關的 應該是電腦圖學 (Computer Graphics) 以及網路理論 (Network Theory) 的相關領域。
在電腦圖學的領域中,可以學習到各種繪圖程序的基礎理論與知識,對於想要成為專攻 3D 程式設計的人來說很有幫助;另一方面,如果有志於開發伺服器程式系統的話,網路理論則是最合適的研究領域。此外,可能大部分人都會認為人工智慧 (Artificial Intelligence) 也是與遊戲製作非常有關連性的領域,然而人工智慧在國內遊戲界的應用非常少。國內的遊戲作品很少使用複雜的人工智慧技術,也鮮少使用模糊邏輯、類神經網絡、基因演算法之類的理論,所以目前能夠一展所長的機會並不多。
在資訊科系中,需要學習的課程科目非常多,同時也有很多的機會接觸各種不同的程式語言。各種程式語言都有各自的優點與缺點以及不同的學習曲線,雖然 也有以 Java、C# 語言或者 Flash ActionScript 撰寫的遊戲,但是以遊戲界的現況來說,最首要、而且必須熟練自如的程式語言還是非 C++ 語言莫屬。而在資訊工程學系滿坑滿谷的課程目錄中,我會選擇資料結構、線性代數、離散數學與演算法這四門課程,做為最重要的學習目標。
需要特別注意的是,資訊相關科系的各種課程,與遊戲程式設計幾乎沒有直接的關連性存在。但是為了成為一位優秀的程式設計者,這些課程就像是紮馬步、 練內功一樣,絕對是不可或缺的訓練過程。只是如果要學習遊戲程式的相關知識,就必須靠自己的努力,投入額外的時間閱讀書籍文章並且撰寫程式。另外,在廣告 媒體上強力促銷的資訊證照考試,對於遊戲業界的工作,到底有沒有加分的作用?其實只要對照一下上述的基本能力以及專業能力列表,就不難理解這些證照的加分效果其實相當有限。
其他資訊產業的狀況我並不清楚,但以遊戲業來說,學歷多半只會在你尋找第一份工作時產生效用。當你在第一份工作裡持續二年以上的時間之後,未來如果 轉換公司,面試主管更會注重的是你在前一份工作中所學習到的知識、所完成的工作項目,以及所獲得的知識經驗;所謂的學歷或者學位,已經變得微不足道了。反 過來說,如果在第二、第三份工作面試時,還需要不時強調自己的學歷而非工作經驗,可能就會使面試主管產生疑慮了。
不論你是大學畢業生或者碩士畢業生,找工作與投履歷就是一種推銷自己的競賽,必須盡可能地展現出自己的優點,以 及與其他競爭者的不同之處。如果能夠展示出與遊戲相關的作品、專題或者比賽成果,就能夠很快地吸引面試主管的目光而獲得更多的工作機會。現在各種與遊戲製 作相關的活動及比賽越來越多,參加這些比賽,不僅僅只是為了豐厚的獎金獎品,在團隊合作的過程中所獲得的經驗,不論好壞,都是金錢難以比擬的無價收穫。
在這個人人都有部落格的年代裡,除了擁有記錄自己生活點滴的小天地之外,不妨另外開設一個專門的部落格,將自己對於遊戲程式、遊戲設計或者遊戲美術的相關文章、學習心得及個人作品,以文字、圖片或者其他的形式記錄下來。痛快地玩過一款遊戲之後,能不能以自己的觀點去剖析遊戲的設計?遊戲中使用了 Pixel Shader 或者哪些先進的繪圖技術?有什麼地方能夠更進一步的改善?這些都是非常好的自我訓練題材。幾年之後,部落格裡一點一滴的累積起來的內容,將會搖身一變成為你個人的王牌銷售員。(註:記得時常進行備份。)
即使你現在所就讀的科系,不是屬於資訊相關科系,平時也比較少有機會接觸程式設計方面的知識,轉個彎吧!別忘了還有很多的可能性,例如轉校考試、校內轉系、輔系申請、雙主修學位以及選擇相關學程等等方法。我自己是從大二時才開始學習程式設計與資訊領域的知識,直到大三才開始接觸遊戲開發的相關知識,大四時跑去修了幾門研究所與其他系所的課程。當時在網路上,有個人氣鼎盛的專業遊戲論壇「拿鐵遊戲研究院」,有許多業界的前輩在此分享程式、企畫與美術的相關心得。在參與討論的過程中,不僅使我學習到許多業界相關知識,瞭解未來前進的方向,也認識了引薦我進入遊戲業界的前輩。只要有心去做,就會找到方法而不是藉口。
除了國內的遊戲業界以外,或許你的目標更遠大,想要到美國的 Activision Blizzard 或者日本的 Square Enix 工作;目標不同,應該如何做準備?如果你想到美國的遊戲業界工作,最好的方式就是申請美國學校的研究所,直接攻讀相關研究領域的碩士學位。在畢業之後,就有比較大的機會能夠留在美國,並且得到遊戲業界的工作機會。如果你想到日本的遊戲業界工作,則需要先到日本念一至二年的語言學校,接著再去就讀遊戲開發的專門學校。但是一般來說,日本遊戲公司較為保守,並不會輕易接納非日本人擔任正職工作,請在做出決定之前仔細考量清楚。
除了以上關於程式設計者的準備方向以外,如果你的目標是成為遊戲企畫設計者,什麼科系畢業並不是很重要的因素;在達成遊戲企畫設計者的基本條件之外,如果懂得撰寫簡單的程式,或者熟悉美術的製作軟體,都能夠在面試中獲得不少加分。而對於遊戲美術設計者來說,展現出來的實力才是關鍵;看起來再怎麼高明的學位證書,也比不上眼見為憑的作品來得具有說服力。另外,美術設計的領域中,分成平面設計、動畫設計、多媒體設計等等不同的範疇,所需熟練的技能以及工具,與遊戲美術領域有所不同,在自我學習時需要多加留心。
我想應該有不少人是因為「喜歡玩遊戲」或者「對遊戲製作充滿憧憬」,當初才會選擇就讀資訊相關科系,從此與電腦結下不解之緣。如果你在經歷大一的程式語言課程後沒有放棄,在大二的數位邏輯課程後沒有轉向硬體之路,在大三的演算法課程後存活了下來,那麼恭喜你,已經獲得進入遊戲業界的門票了!接下來更要勤加練習程式設計的功力,努力充實各方面的能力,才能夠進入遊戲業界,成為一位合格的遊戲程式設計者!
最後我想說的是,即使遊戲業界目前有許多令人不滿意的現況存在,即使目前的薪資待遇比不上電子產業,仍然有許多人默默地認真工作著,為了製作出好遊戲、為了讓公司能夠賺錢,也為了證明我們能夠做到。只要擁有熱情,就不會對自己失去信心。如果能夠在困境中闖出一條路,就可以獲得更大的成就與收穫!而對每位大學生來說,想不想、要不要,或者該不該念研究所,都有家庭、金錢與現實狀況等各種因素需要詳加考量,不論你所做的選擇是什麼,有句話說:「機會是留給做好準備的人。」當機會來臨時,你是否已經準備好面對挑戰了?Be Prepared!
沒有留言:
張貼留言