建立一个多人游戏网站

时间:2010-01-20 02:52:24

标签: ruby-on-rails design-patterns scala erlang scaling

我正在建立一个与人与人之间的国际象棋网站有很多共同点的网站。我正在考虑将Rails用于前端(用户注册,导航等)以及类似Scala或Erlang的引擎(游戏状态和AI)。我在想 -

  1. 这是一种使用这种设计的好方法吗?
  2. 如何最好地划分组件之间的功能?
  3. 他们如何最好地相互沟通?
  4. 我对任何技术或想法持开放态度。

6 个答案:

答案 0 :(得分:7)

如果您在前端使用Rails,为什么不使用Ruby?

如果您喜欢使用Scala的想法,为什么不使用Lift作为前端?

答案 1 :(得分:3)

Chess是基于回合制的,并且有一个非常简单的板,可以使用HTML和/或Javascript增强功能进行处理 - 因此基本模型与现有的Web框架非常吻合。

考虑到这一点,Rails是创建基于Web的应用程序的绝佳选择。 Rails不仅限于crud应用程序,事实上我认为可以用Rails / Ruby编写整个应用程序 - 你真的不需要有外部引擎。

在浏览器空间内,可以使用XMLHttpRequest轮询轮次更新,数据库可以维护当前游戏并转向状态。

答案 2 :(得分:3)

对我来说看起来像一个简单的Lift应用程序。我不熟悉Lift,请注意,但它似乎并不像聊天应用程序那么复杂demoed

答案 3 :(得分:2)

我首先阅读http://www.htdp.org/如何设计程序。您提出的问题非常广泛且难以回答,而且没有在“我相信......”的语句前面加上

我会用clojure编写代码(但那只是我)。

答案 4 :(得分:1)

我目前正在使用Scala开发一套在线游戏。这绝对是太棒了 - 我的游戏逻辑更容易使用静态类型等,并且通过使用Google Protocol Buffers可以更简单地处理服务器/客户端协议(在这种情况下是一个Flash客户端)。

如果你是RoR的忠实粉丝,请务必使用它。我认为大多数静态类型的语言对于编程网站是很糟糕的(Java,我在这里看着你),但是Scala摆脱了90%的痛苦,并且提供了更多的安全性。

当然,它可能不是你的一杯茶。但我会尝试在Scala中完成整个操作,并添加另一个层,如果它不适合你。

答案 5 :(得分:1)

问题1是的 对于2和3,您需要提供更多信息,以便得到可以帮助您的答案。

现在我正在做像你这样的事情但是对于前端我将使用Grails。原因很简单:我喜欢Grails,Scala,我想把它们混合起来:))