【问题标题】:Play framework as a game serverPlay 框架作为游戏服务器
【发布时间】:2012-06-02 14:24:39
【问题描述】:

我想尝试使用 websockets 和 HTML-5 技术为 web 编写一个简单的游戏,我正在考虑使用 Play 框架和 Scala 来做这件事。然而,我想要制作的游戏类型是一个具有持久世界的游戏,事情会自行发生,而不仅仅是作为玩家行动的后果,这意味着它不符合 Play 的无状态哲学。我已经尝试在 Play 应用程序中启动一个单独的线程,它将充当具有正在运行的世界的通常的持久游戏服务器,并且它似乎可以工作。你怎么能对此发表评论?

  • 使用这种方法我会面临一些大问题吗?
  • 是否有更好的解决方案和设置?除了独立(非 http)游戏服务器之外,人们通常会用什么来处理这些事情?
  • 您能分享一下考虑到类似问题的有趣经验吗?

【问题讨论】:

  • 我认为它非常适合。从这个意义上说,无状态确实意味着在请求之间保持的用户会话中没有状态。但是你当然有状态,持久存在于数据库中或暂时存在于有状态 Akka Actor 的缓存中。后者是你的方式,恕我直言;-)
  • 很棒的评论,实际上很适合答案,尤其是看活动)))感谢鼓励,那我会去 Typesafe Stack。
  • 祝你好运 ;-) 让我们知道它在 Google 小组中的效果!

标签: html websocket playframework-2.0


【解决方案1】:

不要用“始终运行的线程更新信息”来混淆持久

大多数情况下,此类游戏只是保存上次更新时间,并根据从现在到上次更新之间经过的时间计算新值。任何 Web 框架或技术都可以做到这一点。 即使我是游戏框架的忠实粉丝/瘾君子,我也不认为坚持争论本身就足够了。

但如果你需要:

  • 良好的 websockets 集成,
  • 支持大流量,
  • 无需海量服务器的海量并发

那么确实,Playframework 可能是您的选择。

【讨论】:

  • 我明白你在说什么——关于从时间开始计算状态。但是应该有大量的可变对象,并且函数方法在计算上效率低下......整个事情将由 MongoDB 备份,但我的字面意思是 - “备份” - 我想使用它 用于每日快照和服务器关闭的情况。我认为Play可以。我已经成功实施了一个概念验证解决方案。现在只是抚养它的问题。
猜你喜欢
  • 2014-09-17
  • 2014-02-02
  • 2017-03-01
  • 1970-01-01
  • 2013-02-01
  • 2013-07-31
  • 2017-09-27
  • 2018-05-09
相关资源
最近更新 更多