3

As a total beginner, I would like to concentrate on polishing the front-end of the web-game I am trying to build. But the game will have about 5000-10000 different pieces of text that I need to match to the player's attributes. I need to somehow emit these snippets in JSON form to the browser. How to keep it short and simple?

FYI, it's a card game, so turn based and read-only. This means very small load on the server. Just the html/js/css and the JSON string a couple of times a minute per player. I considered CouchDB upon hearing that I can use Javascript for its views and such, but before investing any more time into it, I'd like to learn about other options. I'd rather be playing the game already than spend weeks learning back-end programming.

EDIT: The text snippets all have certain requirements. The player's data is kept in the session data. If the player is weak or axeless, there can be no smashing.

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

So, in addition to storing, I then need to also sieve out all the actions that fit the requirements and then choose one at random that will be sent to the client.

4

8 回答 8

5

这些文本是静态的吗?就像那 5000-10000 是否涵盖所有内容一样?

在那种情况下,为什么不将它们全部作为一个静态文件提供。为了进一步最小化服务器负载并加速应用程序,请为其设置一个遥远的未来 Expires 标头。

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

于 2010-10-20T12:34:25.153 回答
2

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

尽管我自己最喜欢的后端是 Ruby on Rails,但一开始我会选择 PHP 并将所有文本片段放在一个 MySQL 表中,或者如果它们是静态的,为什么不放在 csv 文件中。包括 PHP 在内的大多数 Web 框架都可以让您轻松使用 json。

于 2010-10-20T12:31:18.133 回答
2

使用具有简单通用语法的免费且开放的、广泛使用的脚本语言。对我来说,这表明 PHP 或 ruby​​。

于 2010-10-20T12:27:29.303 回答
1

玩家每次会话通常需要多少这些字符串?对服务器的每个请求都有很大的额外开销,因此,如果您期望长会话首先发送批次可能是最轻的任务。

至于数据,如果大小是一个问题,请跳过 JSON 并自己堆叠它,在您的示例中,您的开销比数据多。如果您以正确的顺序保存数据,则示例中的所有键看起来都可以省略。

更新:
你回答不到一百,我认为这将是两种方法成本大致相同的极限。但是,发送批次可能会提供更流畅的游戏玩法,尤其是在高延迟连接上,尽管这是以更长的初始加载时间为代价的。

在大多数开发人员看来,摆弄最低级别的打包数据可能是一门死学科(可以说我只是没能找到该主题的指南,在这里发布),但事实是,对于每个字节,你都可以cut 从单个字符串的数据中,您可以从总集合中削减 5 到 10 kB,并且有很多字节不需要大量工作即可删除。

为了在不使实施成为一项大工作的情况下减少大部分脂肪,我会推荐这样的东西:

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

于 2010-10-20T21:36:02.457 回答
0

我可以推荐 Python 和 Sqlite 数据库,我将其有效地用于 SMS 应用程序(类似于我查找并返回少量文本)。性能是惊人的(数据库可以保存在内存中),并且使用 Pylons @jsonify 装饰器使得返回 JSON 变得微不足道。Django 也有处理 JSON 的简单方法(序列化,simplejson)。

诚然,这可能不是最简单的,但您可以在一两个小时内运行它,并且所有部件都可以用于未来的功能和规模。

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

于 2010-10-20T13:25:44.203 回答
0

我们需要更多地了解您的要求,才能真正了解您的需求。话虽如此,如果您的后端非常简单,那么任何技术都可以。几乎所有现代技术都会让你简单地做简单的事情,都可以输出 JSON。所以选择你熟悉的那个。想到的一些:

  • PHP
  • Java/Java EE
  • C#/.Net
  • 红宝石 / RoR
  • 蟒蛇/姜戈
  • 斯卡拉 / 电梯
  • 甚至 C / C++ 也可能是一个解决方案(...)

编辑:鉴于您的要求,上面的答案仍然成立。任何技术都适合您,对于简单的要求,所有技术都应该相对容易使用。

于 2010-10-20T12:32:23.357 回答
0

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

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

此外,如果您确实对“后端”Web 开发更加投入和感兴趣,那么 ASP.Net 是一种流行的选择,并且仍然可以很好地为您服务。

于 2010-10-20T12:25:13.063 回答
0

如果你开发的不多,我推荐你用PHPjQuery来处理客户端(JavaScript)

我建议首先参加一个关于如何在 php 中编码的小型闪电课程。读完后,请随意尝试并阅读PHP文档,非常好!

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

创建 SQL 数据模型之后。然后你就可以开始创建游戏了,在这个页面上你会发现很多技巧,它们是 php 和许多其他语言的示例

祝你好运!

于 2010-10-20T12:49:40.997 回答