2012-04-29 40 views
4

我和我的創業應用程序公司正在開發基於回合的多人iPhone應用程序。可以這樣說,我們都沒有任何數據庫或服務器知識。雖然,我們願意學習。使用CouchDB和IrisCouch爲iOS設計的基於回合的多人遊戲

遊戲的流程將類似於這樣的遊戲如:WordFeud,WordsWithFriends,隆隆聲等

讓我開始的地方很多在網絡上搜索已經得到了我們:

我們決定使用CouchDB作爲存儲用戶信息,遊戲會話和其他內容的工具。 CouchDB是一個開源的noSQL數據庫系統。原因是我們已經被教導,它應該支持很多併發用戶。此外,它的規模 - 當然,我們希望能夠變大。

我們的CouchDB託管於IrisCouch。 IrisCouch是一款專爲運行CouchDb而設計的「雲端」託管服務。

因此,我們已經啓動了一個CouchDB服務器,並且我們知道如何從服務器查詢數據的基礎知識。

我們現在最大的困惑是,我們應該如何根據最佳實踐來建立系統。現在我們處於能夠接收數據並將數據提交給服務器的地步。

我們的遊戲應該有Facebook集成,以便用戶可以通過我們的應用程序或通過Facebook註冊。之後,他們可以與隨機匹配的對手進行比賽,或與朋友一起玩。比賽開始後,一名球員將得到一組要求提出的問題,在他回答後,應通過推送通知通知另一名球員,輪到他們了。幾輪後,遊戲結束。

在這一點上,我們認爲這可能是應用程序的流量的最佳解決方案:

  1. 用戶連接到其他用戶 - >遊戲會話被打開,在數據庫中的 文件名爲「遊戲」。
  2. 新創建的文檔包含兩個球員的名字,問題, 答案等
  3. 名爲「whos_turn」字段決定哪兩個選手把它。
  4. 遊戲結束後,會話被清除。

再次,正如您所看到的,我們在黑暗中如何真正做到這一點,但這是總體思路。

所以,我的問題去如下:

是不是最好直接從iPhone應用程序查詢數據,或通過Web服務?

什麼是建立數據庫,以最好地管理應用程序流的最佳方式?

的任何信息,有可能導致我們進一步將欣然讚賞:)

在前進,謝謝!

奧拉夫·岡德森


編輯#1:我們的Objective-C編程人員管理的連接使用CouchDB的兩臺iPhone設備。 iPhone應用程序由一個表視圖組成,該視圖與數據庫具有併發連接,以便當有人POST到數據庫時,它顯示在所有其他連接的電話的桌面視圖上。看哪:一個嚴重無效的聊天系統。

回答

5

如果是多人遊戲,您需要將應用程序與遠程iriscouch.db進行通信,但是我擔心您說您或您的朋友都沒有任何數據庫體驗。你願意學習,所以我覺得最好的地方開始是:

http://guide.couchdb.org/editions/1/en/index.html

有,如果你計劃,不斷清除文件,你可能會和可伸縮性發現幾個問題。 DB的大小可以在couchdb上相當大,你將需要定期清理db來壓縮&。但目前我認爲這不是一個主要問題,因爲這是一個初創階段。

問題「設置數據庫和最佳管理應用程序流程的最佳方式」應由您的團隊解決。如果你沒有任何數據庫經驗的人,你應該嘗試找到願意幫助你的人。它應該是有豐富數據庫經驗的人。您可能會發現在http://www.odesk.com

在總有一些相當合理的專業人士老實說,我不認爲你會成功的,如果你沒有這樣的人物 - 無論是作爲一個自由職業者或貢獻者 - 幫助您有一個堅實的數據庫邏輯在遊戲中,這將確保一個偉大的用戶體驗。

例如:您是否考慮過使用基於美國(Iriscouch)的數據庫與您的用戶所在的位置的延遲延遲問題?

出於這個原因,你可能希望儘可能多的做盡可能客戶端(如sqlite的或touchDB嵌入式數據庫,基本上是CouchDB的爲iPhone)

對於iPhone應用程序,你可能想嘗試TouchDB,正好和製造對於這 https://github.com/couchbaselabs/TouchDB-iOS(警告:是你需要連接檢查轉彎等,這可能不是理想的解決方案,但它可以工作來存儲一些本地信息)。

爲了解決這個問題,你需要一個具有couchdb經驗的人來設置一個合適的,可用的應用程序。熱衷於你的想法並沒有什麼錯,但爲了取得成功,你需要在數據庫方面有一個技術頭腦。當然你可能很有能力自己學習。閱讀CouchDB書籍後,您應該能夠創建一個基本流程來滿足您的需求。

當然,其他更有經驗的用戶可能會有更全面的答案或樣本佈局,但我認爲這不是最好的方法。即使有人發佈了文檔結構的完整佈局以及如何查詢它,如果出現某些問題,您將如何爲應用程序提供服務。會話不會被刪除,衝突等?因此我誠摯的建議爲您的案例提供一些特別的專業知識。

這也可能導致分析合適的替代品。我認爲你不應該購買CouchDB可以擴展的想法,因此對你來說是最好的/唯一的選擇(當然,這很可能是這種情況,如果你覺得這是一個很好的選擇..go)。例如Twitter,谷歌adwords和許多其他在線應用程序正在使用mysql來存儲他們的數據,所以肯定CouchDB不是唯一可以擴展的數據庫!

+0

哇!感謝您發佈這樣一個廣泛的答案!我知道,我們在黑暗中摸索着,我們意識到這個過程可能會很漫長,我們必須學習許多新技術,但我們決心取得成功。我將通讀CouchDb,並嘗試確定我們的解決方案是否最適合關係數據庫系統或noSQL系統。將回來與我發現。如果我們在這篇文章中發佈了所有我們學習的東西,我相信它會幫助很多人,儘管它並不能解決我們的問題,特別是:) –

+0

歡迎您:)祝你好運。繼續進行一些連接測試,如更新中的連接測試。也許你會遇到一些速度限制,這可能表明你需要重新考慮它的工作方式。您還應該閱讀其他類似的應用程序並調查他們使用的內容 - 不要害怕從良好的應用程序中獲取「靈感」:) – devnull

相關問題