2012-06-02 99 views
5

我想嘗試使用websockets和HTML-5技術編寫一個簡單的web遊戲,我正在考慮使用Play框架和Scala來做這個。然而,我想要製作的遊戲類型是一個擁有持久世​​界的遊戲,遊戲中的事情不僅發生在玩家行爲的後果上,而且意味着它不符合Play的無狀態哲學。我已經嘗試在Play應用程序中啓動一個單獨的線程,這將成爲一個運行世界中常見的持久遊戲服務器,並且它似乎可行。你怎麼評論這個?作爲遊戲服務器玩框架

  • 我會遇到這種方法的一些大問題嗎?
  • 有沒有更好的解決方案和設置?除獨立(非http)遊戲服務器之外,ppl通常用於這些事情?
  • 考慮到類似的問題,你可以分享一些有趣的經驗嗎?
+5

我認爲它完全適合。無狀態在這個意義上意味着在請求之間持有的用戶會話中沒有狀態。但是當然,你有狀態,持久地存在於數據庫中,或者暫存在有狀態的Akka角色的緩存中。後者是你的方式,恕我直言;-) –

+0

偉大的評論,實際上將適合答案,尤其是看活動)))感謝您的鼓勵,我會去的類型安全堆棧然後。 – noncom

+0

祝您好運;-)請讓我們知道它在Google羣組中的運作方式! –

回答

4

不要弄亂持續「始終運行的線程更新信息」

大多數情況下,這些遊戲只會保存上次更新時間,並且會根據現在和上次更新之間的時間間隔計算新值。任何Web框架或技術都可以做到這一點。 即使我是一個大型玩家模範粉絲/癮君子,我也不認爲持久論證本身就足夠了。

但是如果你需要:

  • 良好的WebSockets整合,
  • 支持車水馬龍,
  • 大規模併發沒有大規模的服務器

那麼確實,Playframework可能是你的選擇。

+0

我明白你在說什麼 - 關於從時間計算狀態。但是應該有大量的可變對象,功能方法在計算上效率低下......整個事情將由MongoDB支持,但我的字面意思是 - 「備份」 - 我只想使用它* *用於每日快照以及服務器關閉的情況。我認爲Play可以。我已經成功實施了概念驗證解決方案。現在只是培養它的問題。 – noncom

+0

在這種情況下祝你好運;) –