Play 框架作为游戏服务器
Posted
技术标签:
【中文标题】Play 框架作为游戏服务器【英文标题】:Play framework as a game server 【发布时间】:2012-06-02 14:24:39 【问题描述】:我想尝试使用 websockets 和 html-5 技术为 web 编写一个简单的游戏,我正在考虑使用 Play 框架和 Scala 来做这件事。然而,我想要制作的游戏类型是一个具有持久世界的游戏,事情会自行发生,而不仅仅是作为玩家行动的后果,这意味着它不符合 Play 的无状态哲学。我已经尝试在 Play 应用程序中启动一个单独的线程,它将充当具有正在运行的世界的通常的持久游戏服务器,并且它似乎可以工作。你怎么能对此发表评论?
使用这种方法我会面临一些大问题吗? 是否有更好的解决方案和设置?除了独立(非 http)游戏服务器之外,人们通常会用什么来处理这些事情? 您能分享一下考虑到类似问题的有趣经验吗?【问题讨论】:
我认为它非常适合。从这个意义上说,无状态确实意味着在请求之间保持的用户会话中没有状态。但是你当然有状态,持久存在于数据库中或暂时存在于有状态 Akka Actor 的缓存中。后者是你的方式,恕我直言;-) 很棒的评论,实际上很适合答案,尤其是看活动)))感谢鼓励,那我会去 Typesafe Stack。 祝你好运 ;-) 让我们知道它在 Google 小组中的效果! 【参考方案1】:不要用“始终运行的线程更新信息”来混淆持久。
大多数情况下,此类游戏只是保存上次更新时间,并根据从现在到上次更新之间经过的时间计算新值。任何 Web 框架或技术都可以做到这一点。 即使我是游戏框架的忠实粉丝/瘾君子,我也不认为坚持争论本身就足够了。
但如果你需要:
良好的 websockets 集成, 支持大流量, 无需海量服务器的海量并发那么确实,Playframework 可能是您的选择。
【讨论】:
我明白你在说什么——关于从时间开始计算状态。但是应该有大量的可变对象,并且函数方法在计算上效率低下......整个事情将由 MongoDB 备份,但我的字面意思是 - “备份” - 我想使用它 仅用于每日快照和服务器关闭的情况。我认为Play可以。我已经成功实施了一个概念验证解决方案。现在只是抚养它的问题。以上是关于Play 框架作为游戏服务器的主要内容,如果未能解决你的问题,请参考以下文章