畢業(yè)季:90后開發(fā)者cocos經(jīng)驗談 如何入行、如何進步
又是一年畢業(yè)季,馬上就要步入“程序猿”行列的“小鮮肉們”是否已經(jīng)做好準備了呢?今天我們有幸邀請到了一位90后的開發(fā)者薛芃,請他來為即將畢業(yè)的鮮肉級開發(fā)者,來點屬于90后的經(jīng)驗談。
提到薛芃,估計大家都沒聽說過,但是經(jīng)常泡cocos論壇的親們,也許會對“寒江孤葉”這個名字有所耳聞,他可是名副其實的cocos鐵桿粉絲。
近日cocos團隊有幸邀請到了cocos論壇里的熱門90后開發(fā)者薛芃,請他來聊聊游戲開發(fā)前后的故事。
Cocos:第一次與cocos接觸是什么時候呢?為何會選擇cocos;
薛:接觸cocos引擎是在cocos發(fā)布Cocos2d-2.1 beta3-x-2.1.1版本的時候,那時候在學(xué)校里幾個朋友想一起開發(fā)個小游戲參加學(xué)校的CodeJam。我們在制作游戲的時候,也在幾款引擎間糾結(jié)過,但經(jīng)過橫向?qū)Ρ萩ocos引擎脫穎而出,他開源、上手容易、并且免費的優(yōu)勢讓我們果斷選擇了它。也正是這次選擇,讓我走進了cocos的殿堂。
當我們開始學(xué)習(xí)cocos這套引擎的時候,我們發(fā)現(xiàn)cocos上手真的很容易,寥寥幾行代碼,就可以實現(xiàn)非常炫酷的功能效果。3.x開始發(fā)布的cocos一站式解決方案,將游戲整體從項目的創(chuàng)建、UI設(shè)計、邏輯編寫,到最后的項目調(diào)試、打包發(fā)布一整套流程都變得輕松簡單。
Cocos:您為何會成為cocos論壇里的當紅人物?
薛: 剛剛開始使用cocos的時候,自己絕對是菜鳥一個,各種無所適從,于是我就泡進了cocos論壇。論壇里的學(xué)習(xí)、互助的氛圍非常好,在學(xué)習(xí)和開發(fā)過程中遇到的一些疑惑,總能在這里通過大家的討論得到解決的辦法??梢哉f,我是在這些論壇朋友的幫助下成長起來的,cocos論壇,就是我最初的老師。
同時,論壇中經(jīng)常會有一些大牛分享自己的開發(fā)經(jīng)驗和代碼,在他們的文章中,總能學(xué)到很多知識,增長自己的見解,希望學(xué)弟們也養(yǎng)成來論壇學(xué)習(xí)技術(shù)的好習(xí)慣,學(xué)習(xí)知識,幫助他人也是提升能力的一種捷徑。
Cocos:跟大家分享下你學(xué)習(xí)cocos的過程和經(jīng)驗吧!
薛: 有一些朋友總是問我該怎么學(xué)cocos引擎,希望我的這些經(jīng)驗談,可以幫助到大家。
首先我假設(shè)你已經(jīng)掌握C++語言了(沒掌握的速度去補課!)學(xué)習(xí)一個引擎,首先需要對其有一個整體的認識,如果一上來就學(xué)Sprite怎么用,Label是什么會有一種盲人摸象的感覺。這個整體的認識包括,如何搭建cocos的開發(fā)環(huán)境,cocos的工具鏈,cocos主要功能,Cocos2d-x的源碼的目錄結(jié)構(gòu)。接下來便是Cocos2d-x的核心類了,例如Node,Scene,Layer,Director,Sprite等,然后通過這些基礎(chǔ)類嘗試去寫一些比較簡單的UI界面,下一步則是學(xué)習(xí)各種Action、Scheduler和事件處理機制,這時候你就已經(jīng)可以完成一些簡單的小游戲了,例如貪食蛇,2048等。(成就感爆棚有木有?)下邊你可以通過閱讀Cocos2d-x build目錄中的Test去掌握其他各式各樣的類以及在項目開發(fā)中非常常用的UI控件。每個人都會有自己不同的學(xué)習(xí)方式,找到一個適合自己的方式就是最好的。
在學(xué)習(xí)過程中,當你遇見不懂的問題的時候,你可以考慮去我上邊提到的CocoaChina論壇提問,亦或者去cocos的中文站查看一下教程,或者通過開發(fā)者平臺提問一下引擎開發(fā)團隊和CVP團隊,善用這些資源會讓你學(xué)習(xí)和使用cocos變得更加容易。
Cocos:目前您有哪些開發(fā)實例可以分享呢?這個項目目前是什么狀態(tài),在這個過程中,遇到了哪些問題,如何解決的呢?
薛:我現(xiàn)在正在開發(fā)一款棋牌項目,不久之后就可以和大家見面了。他是將一些常見的棋牌玩兒法綜合到了一起,有常見的德州撲克,斗地主,也有大家耳熟能祥的干瞪眼,捉黑叉,甚至還有“拉大車”。感謝領(lǐng)導(dǎo)對我的信任,給我項目主程的職位,在項目開發(fā)過程中,我遇見了不少的問題,例如,lua里邊Scheduler不會自動remove,序列幀的內(nèi)存和IO優(yōu)化,tableview的cc.TABLECELL_SIZE_FOR_INDEX的返回是高和寬的問題(正常是不都是寬和高么?)等。但是在cocos社區(qū)和各位熱心版主的幫助下,都完美的解決了。在此感謝那些熱心的朋友們!
(使用cocos的開發(fā)過程)
Cocos:你是如何這么快就獲得主程這個崗位的呢?
薛:進入這家公司后,我一共跟了兩個項目。一個卡牌一個RPG,在項目的研發(fā)過程中,我很快就熟悉了整體的項目框架,不明白的就去問,對每一個不懂的地方都認真的理解。由于我C++掌握的不錯,在開發(fā)過程中,對cocos中一些并不熟悉的類和空間,也都夠去閱讀cocos的源代碼,加深對控件的理解。自己去理解和學(xué)習(xí)的能力非常重要,能夠通過看代碼來學(xué)會一個方法的使用對于這種開源引擎尤為重要。另外,我善于溝通的性格為我和其他程序以及美工和策劃都維護了相當好的關(guān)系,這也為我后來項目工作的開展帶來了很大的益處。兩個月前,公司決定開發(fā)一款棋牌類游戲,由于棋牌類游戲相對簡單,也易于把控,于是領(lǐng)導(dǎo)決定讓我來負責(zé)這個項目,目前來看,我沒有讓領(lǐng)導(dǎo)失望!
Cocos:給即將步入“程序猿”行列的學(xué)弟的建議:個人覺得,學(xué)習(xí)或掌握什么重要,心態(tài)變化及調(diào)整:
薛:萬丈高樓,始于基石,堅實的基本功尤為重要。在學(xué)習(xí)cocos之前,首先應(yīng)當掌握好C++,推薦一本非常知名的書C++ Primer,它作為深入學(xué)習(xí)C++是必備的!
我認為想學(xué)習(xí)C++,可以考慮先去學(xué)習(xí)C語言,C++是基于C語言開發(fā)的一種通用編程語言,掌握C語言對學(xué)習(xí)C++提供了很大的方便。在學(xué)習(xí)C語言時候,著重要理解并掌握指針,指針是C/C++語言的靈魂,貫穿整個程序開發(fā)的每個角落。掌握了C語言后,C++并不難學(xué)了,很多朋友覺得C++很難學(xué),因為他在C語言的基礎(chǔ)上提供了非常多的概念,尤其是面向?qū)ο蟮母拍??;ㄐr間,真正去理解面向?qū)ο螅瑢笮虻难邪l(fā)和學(xué)習(xí)都有莫大的幫助。此時,你對C++就已經(jīng)有了一定的掌握了。接下來就要去深入的學(xué)習(xí)C++的各種模板,STL以及其他更加復(fù)雜的概念。編程是一門實踐科學(xué),在學(xué)習(xí)過程中,不斷的練習(xí)是非常非常有必要的,將書中的例子都認證的敲一遍,再稍微修改一些代碼運行一下,看看與自己所想的結(jié)果是否相同,這樣會對代碼的掌控右很大的提升。
其次,需要掌握一些基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),如堆,棧,隊列,二叉樹,以及一些常見的搜索、排序算法也是很有必要的。
每一位優(yōu)秀的學(xué)生在學(xué)校都是天之驕子,然而越是優(yōu)秀的學(xué)生走入職場越容易受到打擊。因為進入公司后,你會發(fā)現(xiàn),自己非但不是佼佼者了。返回而好像什么都不懂一樣。這個落差的挫敗感很容易打擊到你的信心,這時候一定不要氣餒,這是每個人都會遇到的過程,你只要堅定信心,繼續(xù)努力。很快你就能趕上去的。
Cocos:如何看待cocos,覺得cocos的優(yōu)勢是什么呢?
薛:我認為cocos主要優(yōu)勢在于開源、易學(xué)、免費以及一個非常完善的中文社區(qū)。相比其他主流引擎,cocos更加關(guān)注國內(nèi)市場,中文的教程更加豐富,而且針對開發(fā)者的提問以及BUG的反饋也更加及時。cocos支持使用Lua和JS兩種腳本語言進行開發(fā),并且提供了一個非常好用IDE,方便游戲的開發(fā)和調(diào)試,這比傳統(tǒng)C++語言研發(fā)降低了門檻,提高了開發(fā)速度。
(薛芃在“玩轉(zhuǎn)Cocos,樂享Windows——Windows移動游戲開發(fā)”活動中)
Cocos:下一步有什么計劃,作為90后開發(fā)者中的佼佼者,有什么話要對學(xué)弟說
薛:我的下一步計劃是深入的學(xué)習(xí)OpenGL的知識,去更透徹理解cocos。同時掌握Cocos-js。Cocos-js是目前最熱門的發(fā)展方向,JavaScript相比Lua更加成熟,更加容易掌握,前端和后端都能過使用Javascript進行開發(fā),很容易完成交互,方便技術(shù)共享。而且Html5和CocosRuntime也是Cocos-js的一個決定性優(yōu)勢。所以下邊的項目我們決定采用Cocos-js進行開發(fā)。
有一個心得跟大家分享一下:在你學(xué)習(xí)的過程中,記得寫博客,無論是在CSDN還是博客園都可以。當你想不起來之前寫的一些功能和方法的實現(xiàn)的時候,如果你把他寫到博客里,就可以很容易的翻出來。同時博客還是你技術(shù)水平的最有效的證明。尤其是剛畢業(yè)大學(xué)生在應(yīng)聘的時候,如果有一個自己的博客,是一個很好的加分項,同時也是像HR展現(xiàn)自己技術(shù)能力的一個好方式。
Cocos:最后還有什么相對大家說的話么?
薛芃:希望學(xué)弟們在學(xué)習(xí)過程中,加倍努力,遇見困難不要氣餒,多多嘗試,勇于提問,早日成為一名高大上的“游戲開發(fā)者”!
同時,非常感謝cocos引擎給我這個和大家認識的機會,也很感謝cocos引擎團隊對我的支持和幫助。希望更多的朋友能夠加入cocos 大家庭,同時希望cocos越做越好,為開發(fā)者提供更大的便利。
Cocos:非常感謝薛芃接受我們這次采訪,希望你事業(yè)蒸騰日上。
薛芃:謝謝!