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