問自己寫了一款iOS遊戲。需要聯網…請問下IOS橫屏小遊戲的伺服器怎麼搭建好啊…有聯網對戰功能需求?
自己寫了一款iOS遊戲。但是需要聯網…請問下IOS橫屏小遊戲的伺服器怎麼搭建好啊…有聯網對戰功能需求……
如果什麼服務端經驗都沒有的話,建議上 HTTP,用 PHP 來寫
HTTP是請求-應答試的,也就是你:登錄,提交戰鬥結果,請求排行榜 之類的動作都是提交 HTTP 請求到 PHP程序。然後客戶端20秒輪詢一次服務端,問服務端有沒有什麼消息給我,比如雙人聊天消息。
如果取到消息,就把下一次輪訓時間改短,比如5秒,再取到消息,繼續改短,比如2秒,如果沒消息就慢慢放長周期,比如:2秒,3秒,5秒,7秒,10秒,15秒,20秒
直到有消息了,又再次把周期變短。服務端和客戶端之間數據通信用 json,請求就是一個 json 對象過去,php處理,結束後返回一個json回來,客戶端收到後跳轉到具體處理代碼。
調試的話服務端客戶端可以分開調試,HTTP調試比較簡單,直接瀏覽器或者 wget/fetch 都可以調試。iOS下面我記得有提供 HTTP 訪問的各種現成框架,直接使用就得了。
選PHP是因為學習周期最短,部署最簡單,windows下的話,直接使用:
WampServer, la plate-forme de développement Web sous Windows來部署,Wamp 一安裝,直接自帶:apache+php+mysql,推薦使用 Photon,可以專註於玩法設計本身,先把遊戲性搞定,有好項目不愁找好搭檔。
另外從經濟的角度,Photon是按量付費的,很適合小型項目的啟動,有好項目不愁沒錢。
Global Cross Platform Realtime Game Developmentnode.js。遊戲第都是即時通信的。
這個問題好像跟iOS扯不上關係呢。實際上是問小遊戲的伺服器怎麼搭建吧~
這種需求的話,分兩種情況。一是對實時性要求不高,主要是啟動遊戲和提交分數階段需要與伺服器有交流,其他階段都是本地在運行邏輯,比如百萬亞瑟王、天天酷跑(天天酷跑對戰模式除外)之類。這種類型的遊戲伺服器用簡單的HTTP協議伺服器就能滿足需求,至於這個伺服器怎麼搭建,參考APP的伺服器搭建就可以了。
另一種就麻煩一些了。這種類型對實時性要求較高,在遊戲整個過程中要保持與伺服器的數據交流,這種實時性還要保證所有和自己在一個遊戲場景的其他玩家也能收到反饋。道理類似於網路群聊。比如各種RPG網遊、格鬥類遊戲等。這種類型的遊戲伺服器可以採用各種雙工協議,比如socket、websocket、mqtt等等。這種類型的遊戲伺服器需要考慮到同場景的玩家數量問題,直接影響到伺服器的性能。我是寫nodejs的,這裡推薦一個遊戲伺服器框架Pomelo home 。網易出的,感覺還可以。
對於題主的問題,我沒看明白的是『有聯網對戰』指的是什麼樣的對戰,是實時對戰還是最終比分數。當然,遊戲伺服器也無非是這兩種類型了,不管題主是哪個意思,以上就是我的回答。
本人不是專門做遊戲的,只是APP伺服器寫的比較多,對遊戲伺服器有些許了解,如果上述有疏漏的地方,不喜勿噴。慣例賣萌 ~ _(:з」∠)_遊戲需要實時通訊,http肯定不行。自己寫實時通訊框架不現實。可以用nodejs配合websocket來實現。或者webRTC技術來實現 js-platform/node-webrtc
node.js吧,簡單快速
我也是一名獨立遊戲開發者,也面臨過題主這樣的問題。以上幾位答者說的是針對跨平台小遊戲,那隻能自己搭建伺服器了。題主問的是iOS遊戲,那麼就還有另外的解決方法。蘋果Game Center天然支持聯機對戰,題主可以搜搜GKMatch這個類,支持隨機匹配,16人以內的網路對戰,並且不用自己搭建伺服器。
可以試試kbengine雖然好像有點大但是啥都有 實現簡單 底層都寫好了自己寫點py腳本就能用了我用著感覺很不錯雖然只是在做一個棋牌小遊戲好多服務端功能都沒用上_(:з」∠)_
你需要鎚子不需要自己造鎚子市場上租鎚子的公司不要太多,操作一個比一個簡單
我們是做過自己的手游(網遊)的,而且一直在運行
如果你們是大公司,可以忽略我的回到
如果是創業團隊,如果是對實時性不高的小遊戲,建議還是使用HTTP,後台用PHP或者JAVA都OK,沒實力別上什麼TCP。
HTTP最大的好處是框架成熟,能夠做伺服器開發的人很多,隨便都能找到;
更重要的是當你們的負載上去之後,很容易擴展。集群的搭建都有現成的工具,也可以直接從阿里雲什麼的上面買到。反過來說能夠做TCP的就少很多了,懂TCP集群架設的人更少。Photon的國內節點應該是在廣州(Asia 節點,具體在哪沒有研究,可以確定的是沒有在北京),估計是只有一個節點,這兩天研究了下,延遲太大了,丟包率偏高,實時對戰的話延遲問題是最大的痛點。如果自己部署伺服器,Photon的服務成本,伺服器成本。。。
============================
推薦一個目前免費的實時對戰服務,天梯實時對戰服務(NanoLink)。
目前還沒有開放試用,正處於積累口碑用戶階段,在他們官網 天梯遊戲統計-特別針對關卡類型遊戲 還看不到實時對戰服務入口,需要找他們管理員申請試用。。。
一個將Unity的Space Shooter改為實時對戰遊戲 的博客:
將Unity官方射擊遊戲(Space Shooter)改為實時對戰小遊戲,使用天梯實時對戰服務(NanoLink)
據說 NanoLink 還支持美國,歐洲節點,正處於積累口碑階段的服務,估計更注重開發者反饋 ,比如你想支持東南亞節點,應該很容易就給你開放了。
上面的博客最後提到了,NanoLink 實時對戰服務 有完整的數據統計後台。比如 當前在線人數,匹配連接人次,具體國家地區數據,更甚至地區數據支持更詳細的次均時長,延遲分布,流量分布等等 數據。 具體的你還是自己看上面的博客吧
Game Center?
毫無例外選擇執行效率最高、手游響應時間最短、最高的C++外帶自協議數據傳輸模式!一定不能選用Http+Json。
喂!韋兄弟,你的答貼搞啥子」屏蔽「獨裁嘛,這種做法十分要不得噻。。。可以用tornado搭建,通過websocket保持雙向推送長連接
推薦閱讀:
※怎樣評價 The Silent Age (沉默年代)這個遊戲?
※iOS 平台還有什麼類似紀念碑谷的遊戲?
※有了iPhone5s 還有必要買iPad Air 嗎?不玩遊戲
※iPad Air 2 是買 Smart Cover 還是 Smart Case 呢?
※iOS 設備上最好用的 IM 軟體是什麼?