一款優(yōu)秀的游戲產(chǎn)品,客戶端所需要考慮的一些問題

前言

前一段時間义起,我換了一份工作砌左,來到了一家新的公司一個新的項目組脖咐。這個項目是一款有IP的卡牌類游戲,客戶端所采用的引擎是cocos2dx 2.X的C++版本汇歹,所用的UI編輯器是cocosbuilder屁擅,通訊協(xié)議是http。其實是一款蠻不錯的產(chǎn)品产弹,但是整個客戶端的架構(gòu)有很大的問題派歌。所以就想著寫這樣一篇文章,談?wù)勛约簩τ谝豢钣螒虍a(chǎn)品客戶端架構(gòu)的想法痰哨。


注意項

下面就羅列一些胶果,客戶端開發(fā)需要注意的地方。有一些是需要在最初始階段斤斧,就需要考慮的早抠。也有一些是可以在開發(fā)過程中,慢慢調(diào)整優(yōu)化的撬讽。

客戶端引擎的選擇

首先要談的是引擎的選擇蕊连,雖然現(xiàn)在游戲引擎已經(jīng)非常多了,但是實際上在引擎的選擇上游昼,并不是特別多甘苍。

  1. Unity3d:3D手游首選
  2. Cocos2dx-js:2D手游首選(其實Lua也挺好,在C++綁定上更加方便烘豌,但是個人比較喜歡JS载庭,而且很多引擎都支持JS作為開發(fā)語言)
  3. Egret、Cocos2dx-js:2D頁游首選(Egret有時間沒關(guān)注了,不知道現(xiàn)在功能如何囚聚,之前看了它的功能靖榕,其實并不夠強大,但是它的配套工具做的不錯靡挥,我對它的印象還是挺好的序矩,)

開發(fā)流程

開發(fā)流程關(guān)系到整個項目人員的工作安排鸯绿,如果流程不規(guī)范跋破,效率會特別低。比較靠譜的流程大體是下面這個樣子:


策劃方案->美術(shù)效果圖->拼UI(最好有專人負責拼界面)->客戶端功能開發(fā)
一般來說服務(wù)端會在看到美術(shù)效果圖之后確定協(xié)議瓶蝴,確定完協(xié)議之后毒返,客戶端就可以開始寫協(xié)議相關(guān)的代碼(所以程序基本是在美術(shù)效果圖之后開始動工,如果策劃發(fā)現(xiàn)功能不對舷手,只需要在美術(shù)效果圖這一步進行修改)


還有就是策劃方案最好能領(lǐng)先游戲好幾個版本拧簸。比如:
1.0 要做基本養(yǎng)成
1.1 要做裝備升階
1.2 要做工會系統(tǒng)
1.3 要加一個新的殺時間玩法
不用特別細,但是一定要領(lǐng)先當前版本男窟,游戲制作人必須清楚的知道要做一個什么樣子的游戲盆赤。不然需求不明確,美術(shù)歉眷,程序會反復(fù)的修改牺六,耽誤效率更影響士氣。


美術(shù)汗捡、代碼資源管理

游戲用到的美術(shù)資源淑际,客戶端代碼,服務(wù)端代碼扇住,最好放在不同的倉庫下春缕。這樣做的原因是:

  1. 可以把每個人的權(quán)限區(qū)分開,比如美術(shù)可能艘蹋,只需要美術(shù)倉庫的權(quán)限
  2. 不會因為美術(shù)資源锄贼、策劃文檔的改動,影響到客戶端SVN版本號
  3. ...

多語言版本的考慮

現(xiàn)在游戲行業(yè)競爭特別激烈女阀,某一題材的游戲咱娶,在大陸不火爆,但是可能在東南亞强品,或者北美就很吃香膘侮,所以很多游戲都有語言版本。
游戲多語言版本的考慮的榛,會增加非常多的工作量琼了,所以在游戲早期,一定要考慮好。
多語言版本中文字方面主要包括:

  1. 代碼中的動態(tài)文字
  2. 策劃表里面的文字
  3. UI編輯器編輯的文字
  4. UI中的文字圖片雕薪。
    (可能還有其它文字昧诱,比如運營活動之類。同時UI布局樣式也是需要考慮的)

這些文字的規(guī)范一定要定制好所袁,方便后期替換盏档。大體的規(guī)則就是把這些文字最終都導(dǎo)入到一張(或幾張)文字表里面,后期通過替換文字表就可以直接出一個新的語言包燥爷。這里面文字圖片是比較特殊的蜈亩,但是也可以通過給文字圖片加前綴的方式來區(qū)分是否要替換。


游戲中引導(dǎo)和戰(zhàn)斗模塊的設(shè)計

這兩個模塊如果一開始設(shè)計的不好前翎,那么到后期稚配,前者會變得很難維護,后者變得很難擴展港华。
強制引導(dǎo)部分如果代碼出問題道川,那玩家基本就是直接流失了。
而戰(zhàn)斗模塊立宜,如果一款游戲?qū)?zhàn)斗要求比較高冒萄,那么戰(zhàn)斗邏輯的擴展性一定要非常強。(比如策劃突然想到一個技能:"灼傷"橙数,效果: 人物攻擊時有30%的概率尊流,讓敵方進入灼傷狀態(tài):每秒扣100血,持續(xù)10秒商模。 程序這邊總不能說不支持這種情況奠旺,或者說要花很長時間改代碼結(jié)構(gòu))


游戲更新機制

這也是重點,現(xiàn)在越來越多的手游采用腳本開發(fā)施流,極大的簡化了游戲的更新流程响疚,不再需要重新發(fā)布。一般來說游戲會有c++代碼瞪醋、腳本代碼忿晕、資源文件三個版本號。
更新這塊有很多細節(jié)點银受,比如:如何判斷客戶端當前資源是否已經(jīng)是最新的践盼,就有不少值得注意的地方(當發(fā)布了一個新包到appstore,用戶通過更新來實現(xiàn)安裝的操作宾巍,不會清空原有的下載資源)咕幻。


圖片內(nèi)存優(yōu)化

游戲內(nèi)存優(yōu)化的解決方案,網(wǎng)上已經(jīng)很多了顶霞,這里就不展開說了肄程。


傳輸協(xié)議

在http和socket中選通訊方式锣吼,我更加傾向于socket。通過socket來傳輸二進制數(shù)據(jù)流是非常節(jié)省的蓝厌,估計是用http來傳json這種方式的1/4~1/3玄叠。而且socket可以讓服務(wù)端主動發(fā)送消息給客戶端,唯一值得注意的拓提,就是斷線重連這一塊(iPhone退到后臺就自動斷線了)读恃。


客戶端UI的適配問題

這是一個很大的問題,不管采用哪種都不是特別完美代态,所以具體的方案的和美術(shù)設(shè)計掛鉤寺惫。

Android適配

由于Android機型多種多樣,我們的游戲在不同的Android設(shè)備上的表現(xiàn)可能各不相同胆数。比較容易出現(xiàn)的大概是以下幾點:

  1. 圖片導(dǎo)致的問題:一般來說一張圖片的大小不要超過1024*1024(模型Android機型的opengl不支持更大的尺寸)
  2. 內(nèi)存問題
  3. ...

場景管理肌蜻、彈窗管理

我比較推薦將場景互墓、彈窗區(qū)分開來必尼,用兩個管理器來控制它們的顯示和切換。


消息觸發(fā)機制

一個方便的消息觸發(fā)機制篡撵,可以讓代碼結(jié)構(gòu)更加清晰判莉。一般來說這種消息機制會采用觀察者模式,代碼實現(xiàn)都是大同小異:

addEvent(eventType, callbcak)
trigger(eventType)

各種腳本工具

除了導(dǎo)表之類的必備工具育谬,開發(fā)過程中還需要許多各式各樣腳本工具券盅,來提高開發(fā)效率。如:SVN(GIT)更新以及獲取版本號膛檀、小圖打包成大圖锰镀、文字提取替換等功能,都可以通過一個腳本來實現(xiàn)咖刃。比較推薦python來寫泳炉,原因主要是跨平臺、第三方庫比較多嚎杨。

本文同步發(fā)表在個人網(wǎng)站xtutu.me

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末花鹅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子枫浙,更是在濱河造成了極大的恐慌刨肃,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件箩帚,死亡現(xiàn)場離奇詭異真友,居然都是意外死亡,警方通過查閱死者的電腦和手機紧帕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門盔然,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事轻纪∮投睿” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵刻帚,是天一觀的道長潦嘶。 經(jīng)常有香客問我,道長崇众,這世上最難降的妖魔是什么掂僵? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮顷歌,結(jié)果婚禮上锰蓬,老公的妹妹穿的比我還像新娘。我一直安慰自己眯漩,他們只是感情好芹扭,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赦抖,像睡著了一般舱卡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上队萤,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天轮锥,我揣著相機與錄音,去河邊找鬼要尔。 笑死舍杜,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的赵辕。 我是一名探鬼主播既绩,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼匆帚!你這毒婦竟也來了熬词?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤吸重,失蹤者是張志新(化名)和其女友劉穎互拾,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嚎幸,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡颜矿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嫉晶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片骑疆。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡田篇,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出箍铭,到底是詐尸還是另有隱情泊柬,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布诈火,位于F島的核電站兽赁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏冷守。R本人自食惡果不足惜刀崖,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拍摇。 院中可真熱鬧亮钦,春花似錦、人聲如沸充活。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堪唐。三九已至巡语,卻和暖如春翎蹈,著一層夾襖步出監(jiān)牢的瞬間淮菠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工荤堪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留合陵,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓澄阳,卻偏偏與公主長得像拥知,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碎赢,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,732評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫低剔、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,058評論 4 62
  • 今天剛讀完《百年孤獨》肮塞,這一本充滿孤獨的書襟齿。在我的印象里這本書寫的是一個家族七代人從無到有,再從有到無的一個過程枕赵。...
    虔一閱讀 416評論 0 1