跨平台的 iOS,Android 在線遊戲或應用如何實現?

如果要在iOS和android上做一個跨平台的在線遊戲或應用,實現難度有多大?當用戶數過10W,100W,1000W時候,伺服器的成本會不會很大?而且這個應用或遊戲的及時交互性比較強,那麼用戶為此產生的流量費會不會很高?這是不是也是要考慮到的一個因素?


支持前面的答案

1、伺服器端區分連接終端類型和平台版本不難,主要是數據介面的設計和負載能力。比如米聊,對所有終端內部的通信、存儲、轉發機制是樣的。那你核心還是伺服器端的技術儲備和能力。

2、Talk box的通信機制實現起來不難,但還是前面的這個問題,就是伺服器端的技術,同時語音的壓縮和播放是否有自己的或者適合的引擎,因為Talk box 可以做到每秒2K的數據量超過移動網路的話音通信質量。

3、遊戲的跨平台,建議還是使用跨平台的引擎。Cocos2D 之後衍生的 Cocos2D-X要到年底才能比較完善的支持多平台(主要是目前Android平台Cocos2D-X還是需要用JAVA和C混編,要求比較高)而3D也有類似的可選擇產品。

4、是否有必要上來就考慮誇平台,這是個疑問。目前我們真的還沒有看到哪個產品上來就提供網路遊戲多平台支持的,因為各個平台目前盈利模式和收費渠道有所不同,所以你很難直接用iOS上的費率要求Android用戶也認賬,除非是直接針對海外市場。而目前iOS Android WP7這些平台上最成功的網路遊戲還沒有超過10萬人在線的,前面問題中100萬 1000萬的這個前提至少半年甚至1年內不存在。

5、回合制遊戲,我們要求做弱聯網就是GPRS下必須可玩,如果一定是長連接,請評估自己通過優化後能得到的最小數據通信量。如果做手機網路遊戲只能WIFI環境,或者斷線後遊戲進程沒有等待或者恢復機制。那基本上不太可能或者真正的或者持續的成功

6、目前北美Grossing 前30名,無論iPhone 還是iPad,傳統概念的網路遊戲幾乎都是不存在的,只有弱聯網的棋牌、農場、經營類,我們不認為MMO、大型聯網遊戲、3D網路遊戲短時間內會有足夠的市場空間。Android平台由於70%的終端還是里程碑時代的性能,所以建議產品選型的時候慎重,考慮跨平台同步實現的時候慎重,網路連接的帶寬需求設計慎重。


第一,如果是跨平台,可以使用cocos2d-x,或者自己移植也可以。

第二,伺服器的壓力只會跟PC版的MMORPG或者webGame相當,這跟它是iOS或者android沒有關係,只跟你遊戲的機制有關。

第三,用戶的流量費,不同地區有不同的計算方法,如果用wifi的話是可以不用錢的,3g的話,如果貴,用戶最多等到回家用wifi。


其實這個事真的不是爭哪個技術好壞,真心是你得會用...跨平台這塊,我的觀點是2D遊戲用flash,3D遊戲用U3D。coco2D-X沒用過,不做過多評論。另外伺服器端不是很懂,不發表評論

如果老闆問個不懂的技術U3D怎麼樣,做技術的人肯定會考慮自己利益,說出一堆它的問題,比如通信這個那個問題啊,界面不好做啊,甚至他會告訴你裝U3D插件會減少留存...但實際情況呢?

flash也一樣,用AIR打包後,很多人都說效率低,有各種問題...其實flash做的ios應用比不做優化的coco2d效率還高(實測)

html5與coco2D-X等雖然沒項目經驗,但我覺得道理是相通的,如果想評判一個跨平台方法的好壞,至少請先以「會用」為基礎。


1 我想你說的跨平台是指共用一個codebase,一般多平台的以遊戲為主,很少看到一個codebase的應用,因為應有的交互要符合各自平台的特點所以基本都是單獨開發。

2 多平台的遊戲可以考慮選擇unity,corona,這樣的跨平台工具,它們基本只需要一次開發針對不同平台編譯就行

3 有些東西必須針對不同平台處理,比如IAP,廣告,貼圖的質量等

4 要支持盡量多的屏幕尺寸是個挑戰,最好用一個特殊的類來處理,界面的layout用文件來定義,不要hardcode

5 通常後端沒有太大的區別

6 通常手機遊戲的數據量不會很大,只是一些控制指令,同步信息之類的,否則你應該重新考慮架構

7 當你有100w,1000w用戶的時候你一定已經有足夠的資源來解決伺服器問題了


上面的回答大多針對遊戲,應用的話結合我自己的經驗有如下教訓:

1. 伺服器的難度其實和跨移動平台沒啥關係,只和在線人數成正比。

2. 目前html5用來跨平台最熱,但效率和對平台的深入支持不夠,簡單的應用或者媒體型的app可以考慮。比如紐約時報那樣的,本來就有網頁版,自家技術人員再說移動html的應用自然更舒服,不然就要外包做native的,費用不便宜。

3. 其它也有跨平台的方案是把中間代碼轉為本地代碼,比如adobe air. 我的建議是如果你本來就熟悉flash,沒有缺失的api,那麼當然用這個。

4. 總體來看跨平台其實是一個神話,假設android,iOS, WP7各自開發一個本地應用的成本為1,總成本是3. 如果用某個跨平台方案,開發成本為1,但是和各平台的適配成本就不好說了,總成本肯定大於2,而最後的效果和效率未必有native的應用好。為了省去&<1的成本而犧牲用戶體驗值的么?

5. 當然也有地方可以跨平台/重用,那就是系統架構(主要是client和server的介面流程定義)和biz logic. 如果client上能夠做到足夠的界面和code分離,那麼client的架構甚至代碼也是可以重用的,當然代碼需要在c#, java和object-c間轉換。而所有這些都是有額外開銷的,目前還沒找到可靠衡量的辦法。

6. 如果是底層c/c++的lib,比如圖像處理,視頻壓縮啥的,倒是更方便重用些。沒具體試過,但方向不會錯。


用HTML5實現


你可以做個微信遊戲,親~直接就跨平台了,開發成本還低~


3D遊戲的話,目前來看,Unity應該是最好的方案。應用的話,HTML5吧


現在還有一個有點不靠譜的方案:Flash/Air For Mobile,最鬱悶的地方是效率和耗電量等

http://9ria.com 已經發布了一款遊戲,可以作為參考http://bbs.9ria.com/thread-85960-1-1.html

另外,就是是否真的需要跨平台?這個需要多考慮考慮吧


推薦閱讀:

國產單機-製作人徐昌隆的事迹等我們能得到什麼?
沒有數據支持,如何預測一款手機遊戲在上市後的表現?
遊戲中的某些功能,可以快速拉開大R與其他玩家的差距,這樣的設計從付費的角度來看合理嗎?
最難以開發的單機遊戲類型是哪一種?
遊戲策劃的難度在哪?

TAG:遊戲 | 伺服器 | iOS開發 | 遊戲策劃 | 跨平台遊戲 | Android |