1. 程式人生 > >棋牌---這些年使用過的技術

棋牌---這些年使用過的技術

筆者做棋牌遊戲開發已經有三四年了,涉及的產品有鬥地主、德州撲克、扎金花、鬥牛等等,從最開始使用Android原生的SurfaceView繪製,到後面使用cocos2dx引擎開發,一路學習一路成長。本文主要是記錄下這時期產品使用技術的變革之路。

一、Android原生的SurfaceView時期

三四年前,手機效能跟不上的時候,那時沒有成熟可靠的引擎,就使用原生的SurfaceView自定義一套UI元件,做出來一套鬥地主的成品,介面風格簡潔,素雅,圖片多為小圖.9處理,幾乎沒有複雜的動畫,極為粗糙,但包體大小控制的小於3M,深受渠道方面的歡迎,大火了一把。

和大多數公司一樣,賺到了錢就開始擴張,外招了一批牛人,新開了幾個專案,而老羅正是這批人中的一員悍將,他領導的專案就是德州撲克,而筆者有幸加入。老羅立志想用引擎(cocos2dx或者libgdx)做出一個變革性的產品,一改鬥地主的粗糙,在和幾位老闆扯皮良久後,最終還是沒有說服老闆,不得不繼續使用公司認為成熟的開發方案,原生的框架來開發德撲。

經過四個月左右的時間,德撲上線,在畫面與流暢的平衡下,包體大概有10M左右的大小,畫面依舊粗糙,特效並不絢麗,收入也很不理想,僅為公司帶來了大R的概念,但僅靠幾個大R是撐不起一個遊戲的,結果可想而知,在公司明確告知沒有資源用來推廣德撲後,老羅離職,德撲解散。

而此時的市場棋牌遊戲已經是一片紅海,各種各樣的公司,大的小的,或者渠道本身都開始推出棋牌遊戲,畫面和特效都絢麗的不要不要的,公司收入下滑的厲害。老闆痛定思痛,特地抽調一部分人力,做閉門開發,一個月的時間做出了一款基於cocos2dx cpp引擎的框架,鬥地主用上了,可惜德撲沒能用上。

二、Cocos2dx CPP

德撲解散後,筆者被調入鬥牛專案組,該組是一個做敏捷開發的經理帶隊,成立的時間比較晚,那時他們已經用上了比較成熟的Cocos2dx解決方案,於是筆者開始學習C++相關的知識,鬥牛一共獨自走了幾個版本,但收入並不理想,公司又不給宣傳資源,於是就借用鬥地主的渠道,將鬥牛的功能融進鬥地主裡面,互相促進,互相提高,但收入分成一直不慎理想,後面帶隊經理有了疲態,和老闆博弈累了,就提議鬥牛團隊跳出公司框架,獨自成立一個子公司運營,他帶走了一部分人,拿著老闆的投資獨自運營起來,而筆者沒有那麼大的魄力,依舊留在了公司,獨自維護著剩下的鬥牛業務。

鬥牛的程式碼是內建在鬥地主專案裡面的,但資源是做為熱更的方式載入的,這也給公司做棋牌遊戲的另一個思路,遊戲大廳+各種玩法模式。後面的產品基本上是基於這種方案在推廣運營。但這種方案用cpp開發是個弊端,所以公司又抽調人手開發了一套,cpp + lua 的框架模式。

三、Cocos2dx Lua

下半年,公司新開了一個地方棋牌玩法的專案組,他們使用的是cocos2dx Lua的解決方案,做出來的摜蛋已出線上成品,包體很小,地推效果不錯。

某天,公司副總通知我,公司正式結束鬥牛的維護,筆者又被調回鬥地主專案組,開始將鬥牛移植到基於cocos2dx lua引擎的解決方案上來,而此時市面上最流行的是U3D,即使是cocos2dx的母公司觸控,也是在主推cocos2dx js解決方案,但公司是老闆的,他有他的考慮吧。

筆者花了將近兩個月的時間,將以前鬥牛的業務全部用lua重新寫了一遍。指令碼寫程式碼確實輕鬆,不用在等待編譯,不會在遇到IDE卡死崩潰,感覺非常爽!

不過最近,微信小程式上線,雖然暫時還不支援遊戲,但估計是早晚的事情,而微信小程式是用JS寫的,老闆估計又要著急了~~~