序言:轉型手遊,問題比想象要複雜。一些問題是研發階段就能預見的,但是有些問題上線後才發現遠超出我們的想象。
從端遊轉型做手遊變化遠沒有想象簡單
可能和公司內很多手遊研發團隊一樣,我們也是從傳統pc端遊轉型做手遊的。 我們一度認為手遊研發會比較輕鬆,技術上跟端遊比起來相對容易, 人力上也不需要太多投入。但真正開始做之後才發現無論技術還是產品各方面遠沒有我們想象的簡單,好在我們的核心成員都有多年的端遊開發經歷,不光有相應的技術和經驗積累,還養成了一些好的工作習慣及方法,在遇到問題時能夠及時調整和靈活應對,我想這也是我們專案研發從總體上看還比較順利的重要原因之一吧。
最開始遇到的問題主要還是技術上的,我們沒有unity3d引擎的實際專案經驗,心裡面沒底,不知道研發過程中會遇到哪些坑,對於ios/android平台程式設計更是一竅不通,專案進度又緊,不可能有充裕的時間自己去學習和摸索,萬幸得到兄弟工作室團隊的無私支援讓團隊少走了很多彎路,我也從他們身上學到很多移動端遊戲開發的一線實戰經驗。
我們的研發團隊規模一直都比較小, 直到專案上線也只有十來個人,不少美術同學還是兼職的。 正式運營後才深刻認識到我們的人力規模完全沒法適應玩家對於遊戲內容的消耗速度。在工作室和產品中心的支援下,隊伍得到不小的擴充,目前是30人出頭的規模,也算是乙個中等規模的團隊了吧,然而團隊規模擴大了又會凸顯出很多新的問題,比方說工作任務間的偶合,多線開發的版本管理等。
對於小團隊來說,解決問題可以很直接,只要有可行的方案,可能一句話就搞定了,尤其是我們有幾個人做天天飛車之前就已經磨合兩三年了,配合起來非常默契。但團隊規模大了之後,可能就會涉及到一些團隊管理問題了,如何讓大家擰成一股繩去做事情,並不是簡簡單單把問題指出來就可以了, 這時候制度和流程就顯得尤為重要了。
早作規範早驗證,避免返工。
尋找表現與效能的平衡點很重要車庫
高配畫面
低配畫面
端遊經驗用於反外掛程式,安全問題早作預案
相比端遊而言手遊面臨的網路環境更嚴峻,我們不可能做到實時通過伺服器校驗玩家的每一步操作,從延遲,穩定性,流量上講都不允許。單局的玩法邏輯大都是在客戶端完成在結算時才統一上報伺服器的,玩家就有可能修改一些關鍵資料,比方說分數,金幣,buf持續時間等等,從而獲得非法收益,這就必然牽扯到令人頭疼的反外掛程式問題。
基於以前端遊的積累我們初期就預想到了這個情況,比較早地開始了對抗準備。我們的外掛程式對抗體系大體分為三層,第一層是客戶端的防禦,除了必不可少的協議加密之外,客戶端對記憶體中的關鍵資料也都是密文儲存的並且加上了校驗碼,這樣通過燒餅之類的通用記憶體修改工具就比較難定位資料的具體位置了,而且就算真的找到了記憶體位址,修改之後也會導致校驗失敗,這樣客戶端就能偵測到記憶體資料的非法篡改。第二層是我們自己伺服器的即時對抗,客戶端在單局結算時上報的資料中不光有最終的結果還有一些和結果有關聯的中間資料,比方說實際生成了多少金幣,是否有出現某種特殊車等等,如果外掛程式只是修改了部份資料,伺服器就可以根據校驗公式檢測出資料被非法篡改過了,服務端kenny以前在qq飛車就做過類似的對抗,經驗非常豐富。最後一層是互娛安全組的後校驗,他們採用的檢測方法和我們伺服器的類似,只是不會對作弊行為進行實時處罰。
還有乙個要特別注意的是,在android平台上,unity的c#指令碼是以jit方式執行的,apk包裡的程式集dll檔案很容易被reflector等工具反編譯,一旦被別有用心的人知道了客戶端邏輯到底如何運作的,就可能做出一些比較逆天的外掛程式來。當時我們想了很多辦法,一開始是做混淆,但發現執行起來不是很方便,對開發存在一定的限制。後來我們想到乙個方法,我們可以對程式集dll檔案進行加密,這樣通用的反編譯工具就打不開了,但苦於我們沒有 unity及其修改過的mono元件的源**, 也不擅長逆向工程,我們把這個需求提給unity的開發商,可能出於某些原因,他們也沒有太積極的反饋,後來還是安全組給了我們支援,他們通過逆向工程實現了對程式集檔案的加解密,之後公司開發/**的unity手遊應該都有採用這個加密方案。
崩潰上報靈活處理是解決之道
安裝包容量縮減方案分享,多種方法協力顯功效
引擎選擇必須要適合自身專案,能否駕馭和掌控至關重要
童年匯 在遊戲中教與學
聽到身邊的媽媽總是問,哪家早教好,要送寶寶去哪個學習更好?說什麼人家的寶寶都上早教了,我們也不能落別人太多什麼的。其實,我覺得家 長應該端正心態,並不是寶寶不上早教就落後別人很多,很多媽媽覺得寶寶上早教課就一定要學到什麼,從而來判定這家早教中心怎麼樣?其實真正 的早教課是給寶寶乙個快樂的學習思維,讓...
騰訊猜字遊戲
link 分類 interview 2013 04 24 10 27 31人閱讀收藏 舉報a b兩人玩猜字遊戲,遊戲規則如下 a選定乙個 1,100 之間的數字背對b寫在紙上,然後讓b開始猜 如果b猜的偏小,a會提示b這次猜的偏小 一旦b某次猜的偏大,a就不再提示,此次之後b猜的偏小a也不會再提示,...
遊戲開發流程分享
整個團隊包含乙個製作人,四個部門,即策劃 美術 程式 測試。各個部門負責不同的工作,協調完成整個遊戲的開發。製作人主要進行遊戲的外部統籌,市場調研 遊戲開發進度 遊戲版權 遊戲宣傳 遊戲發布及 音效素材的管理都是製作人工作的範疇。策劃是團隊的靈魂,也分執行策劃 數值策劃等,他們主要對遊戲劇情 背景進...