2010-10-20 100 views
3

作为一个初学者,我想集中精力打磨我正在尝试构建的网络游戏的前端。但是游戏将有大约5000-10000种不同的文字,我需要与玩家的属性相匹配。我需要以某种方式将这些片段以JSON格式发送到浏览器。如何保持简短?Web应用程序最简单的后端设置是什么?

仅供参考,它是一款纸牌游戏,所以基于回合且只读。这意味着服务器上的负载非常小。只需每个玩家一分钟一次的html/js/css和JSON字符串。我认为CouchDB听说我可以使用Javascript来表达它的观点,但在投入更多时间之前,我想了解其他选项。我宁愿玩游戏,也不愿花几周的时间学习后端编程。

编辑:文本片段都有一定的要求。玩家的数据保存在会话数据中。如果玩家虚弱或无轴,就不会有粉碎。

{ 'action':'You smash you opponents head!', 
    'player1': { 
     'equipment': 'axe', 
     'strength': 3 
} 

因此,除了存储,然后我还需要筛出所有符合要求的动作,然后选择一个随机将被发送到客户端。

+2

“最简单”是非常主观的,它取决于你所知道的。现在你的问题只是从列出他们最喜欢的框架的人那里得到答案。 – skaffman 2010-10-20 12:32:01

+0

为更好的特异性编辑。 – luminarious 2010-10-20 12:47:57

+0

这是单人游戏还是多人游戏?对于单人游戏,您可能会考虑在浏览器中运行所有内容,并且所有服务器内容都可以简化为纯文件。 – aaaaaaaaaaaa 2010-10-20 13:13:52

回答

5

这些文字是静态的吗?在5000-10000范围内覆盖它们吗?

在这种情况下,为什么不把它们全部作为单个静态文件提供。为了进一步减少服务器负载并加快应用程序的速度,请为它设置一个远期的Expires标题。

超级简单的设置,建立在缓存和压缩,没有安全漏洞,最小化HTTP请求开销。

+0

+1是短期内真正简单的解决方案。明智的想要专注于前端,这将让他/她做到这一点。根据静态文本的最终大小,这可能不适用于完整的生产数据集,但它的确可以很好地工作以开始项目。 – 2010-10-20 12:45:35

+0

为了进一步发展,可能会考虑将文本(基于游戏状态,级别等)分解为多个文件并根据需要动态加载新文件的方法。 – nnevala 2010-10-20 12:51:40

0

我会去ASP.Net - 我不知道它是否应该被认为是“最简单”,但它似乎是一个明智的建议:

  • 它至少不比任何其他后端
  • 有大量的教程,文章和其他帮助可以在网上找到
  • 有一个免费的IDE形式Visual Studio Express,消除了选择IDE的复杂性。

此外,如果你有更多的参与和兴趣“后端”web开发ASP.Net是一个热门的选择,并将仍然为您服务。

2

通过简单的通用语法使用免费提供且开放,广泛使用的脚本语言。这表明PHP或红宝石,对我来说。

2

如果您的重点是前端,而您只需要提供10000个文本片段中的1个,则不会使用CouchDB或任何涉及的后端。

即使我自己最喜欢的后端是Ruby on Rails,作为开始,我会选择PHP并将所有文本片段放在单个MySQL表中,或者如果它们是静态的,为什么不在csv文件中。包括PHP在内的大多数Web框架都可以为你制作json非常简单。

0

我们需要了解更多关于您的需求以获得您需求的真实感受。话虽如此,如果你的后端非常简单,任何技术都可以做到。几乎所有的现代技术都可以让你简单地做简单的事情,所有人都可以输出JSON。所以选一个你熟悉的人。一些浮现在脑海:

  • PHP
  • 的Java/Java EE的
  • C#/ .NET
  • 的Ruby/RoR的
  • 的Python/Django的
  • 斯卡拉/升降机
  • 即使Ç/C++可能是一个解决方案(...)

编辑:考虑您的要求,上面的答案仍然成立。任何技术都可以为你工作,而对于简单的要求,所有的都应该相对容易使用。

+0

我编辑的问题文本更具体,这些信息有帮助吗? – luminarious 2010-10-20 12:49:00

0

如果您还没有太大的发展,我建议你PHPjQuery处理client side(JavaScript的)

我会建议先采取小闪电课程how to code in php。阅读本文后,请随时尝试并阅读PHP的documentation,这非常好!

要保存数据,我会使用MySQL如果你想要一个非常便宜的解决方案。但我真的推荐使用SQL Server 2005或2008.

创建SQL数据模型后。然后你就可以开始创建游戏了,在this page你会发现很多在php和其他语言中都有示例的提示

祝你好运!

0

我可以推荐一个Python和一个Sqlite数据库,我有效地用于SMS应用程序(类似于我查阅并返回少量文本)。性能是惊人的(数据库可以保存在内存中),并使用Pylons @jsonify装饰器使得返回JSON微不足道。 Django也有简单的方法来处理JSON(序列化,simplejson)。当然,这可能不是绝对最简单的,但是你可以在一两个小时内运行它,并且所有的部分都可以用于将来的功能和缩放。

编辑:经过进一步研究,webpy看起来是最简单的。您可以使用Mako模板(或根本不使用),SQLite和SqlAlchemy作为ORM(或根本没有数据库),安装与“pip web.py”一样简单。

1

玩家通常每次会话需要多少个这样的字符串?对服务器的每个请求都会有额外的额外开销,所以如果您希望长时间的会话首先发送该地块可能是最轻的任务。

至于数据,如果size是一个问题,请跳过JSON并自己堆栈,在您的示例中,您的开销比数据多。您示例中的所有键看起来都像是可以省略的东西,只要您按照正确的顺序保存数据即可。

更新:
你回答不到一百,我认为这将是两个方法花费相同的限制左右。然而,发送该地段可能会提供更流畅的游戏玩法,尤其是在高延迟连接上,尽管这是以较长的初始加载时间为代价的。

摆弄最底层的包装数据可能在大多数开发人员的眼中是一个死硬的学科(这就是说我只是没有找到这个主题的指南,在这里发表),但事实是,对于您可以从单个字符串的数据中删除每个字节,您可以从总收集中减少5到10 kB,并且有很多字节不需要大量工作即可删除。

为了削减大部分脂肪不会使执行一项艰巨的任务,我建议是这样的:

把所有的数据在一个阵列中,对于每一个字符串数组中使用两个字符串条目,一个对于文本字符串,后跟一个用于编码为单个字符串的所有元数据。例如,您可以将每个需求写成两个字符,第一个表示需求类型,第二个表示需求类型,所以如果您限制自己只使用数字和字母,则最多可以有62种需求类型,每种需求都有62个可能的值,并且它们将只花费2个字节一块。

+0

这个例子有些简化,偶尔会有10多个要求。但每届会议?我估计不到一百。主要的问题是,随着球员状态在每一个动作上的变化,我不能只在比赛开始时一次性发送一堆。 – luminarious 2010-10-22 07:09:56

+0

压缩像这样的要求让人感觉很尴尬。谢谢,我想我会尝试使用localStorage。 – luminarious 2010-10-23 16:53:48

+0

不幸的是,像这样简单的一般东西往往会在工资格式战争中迷失方向。大多数声音只是试图宣传他们最喜欢的容器格式。然而,选择像JSON或XML这样的容器只是制作数据格式的一小部分,大部分是在选择的任何约束条件下构造数据,但由于这些信息存在问题(http://bikeshed.com/)没有到达公众。 – aaaaaaaaaaaa 2010-10-24 20:15:31

相关问题