2012-01-11 48 views
0

我正在製作一個網絡遊戲,我將主辦一個遊戲服務器。玩家將登錄到我的遊戲服務器。然後他們將被帶到一個大廳,在那裏他們可以選擇一個遊戲加入。我將跟蹤勝利和失敗以及其他一些統計數據。什麼類型的數據庫將用於在網站和遊戲服務器之間保存數據?

我的要求如下:

  • 在遊戲中的任何時候,玩家應該能點擊另一個 球員,並得到了他們的最新上最新的統計數據。
  • 玩家還應該能夠訪問我的網站並獲得相同的 統計數據。 (理想情況下,立即更新,但比遊戲中的 重要)
  • 我還將擁有一個排行榜,該排行榜將從網站上的 數據生成。

我的問題是:什麼類型的解決方案通常會用於這種類型的情況?

重要的是我永遠不會丟失數據。有一件事讓我擔心使用網站數據庫會導致數據丟失。

我也不確定網站數據庫和遊戲服務器之間的交互是如何工作的。有沒有mySQL的能力來做這種事情?我使用網站數據庫的其他問題是每月需要消耗多少帶寬。我慷慨地估計,在任何時候我都會有1000人在線。一場比賽持續大約20分鐘。

這些類型的情況通常如何解決?我已經看遍了所有,但我還沒有找到明確的答案來解決我的擔憂。

謝謝

+1

我還建議你考慮安全性,如果你的遊戲統計數據足夠重要,需要是最新的。你可以看看OWASP開發者需要防禦的前10名安全漏洞。如果你的遊戲屬性被欺騙,你可以忽略這個評論。具體看SQL注入攻擊。 – Dessus 2012-01-11 02:55:44

+0

@Dessus如果用戶從不直接與數據庫交互並且數據庫只能從靜態服務器ip修改,那該怎麼辦? – jmasterx 2012-01-11 03:18:43

+0

用戶可以通過文本框輸入信息來與數據庫進行交互。如果我在文本框中輸入正確的sql。它可以(取決於大多數人的設置)直接進入數據庫。數據庫的位置並不重要。最終以某種方式從數據庫獲取數據以顯示/更新。我可能會使用網站自己的基礎設施來執行任何我想要的SQL(除非你採取措施防止SQL注入)。它實際上是一件非常可怕的事情,我相信這個消息說它曾經在SONY的攻擊中使用過,他們丟失了人們的信用卡信息。 – Dessus 2012-01-11 04:56:10

回答

0

我會根據您的要求推薦一些東西。你提的問題非常開放的結束,以便給出的答案是相當普遍:

  1. 數據庫都很好,因爲它們寫入硬盤,並事務性的(這意味着他們罰款生存的Web服務器崩潰)來存儲數據。 https://www.google.com/search?q=sql+backup&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
  2. 對於最新的統計數據,你或許應該從緩存拉動活躍遊戲玩家的信息(否則你可能會發現你正在敲打着:
  3. 數據庫可以使用大量的備份工具,如任何一個備份數據庫當你的大部分數據不會改變時(也就是說大多數玩家可能會離線,他們的數據將保持靜態,但可能希望被查看)
  4. 調查你想要的數據庫類型NOSQL或SQL。明顯的選擇在這裏沒有評估每個的好處。
  5. 調查N層或MultiTier設計http://en.wikipedia.org/wiki/Multitier_architecture
  6. 考慮某種類似雲的基礎設施,如appfabric,azure(還有其他的linux)等等。有許多雲服務可以提供很高的可伸縮性。這可能是前面幾點的捷徑。
相關問題