2010-12-04 99 views
3

我正在尝试创建一个古老的文本冒险游戏。我有点卡住创建世界地图和房间。为文字冒险游戏设计和建筑忠告

房间描述应该作为源代码的一部分还是应该分离出来?我正在考虑将所有这些描述和房间属性放在MySQL数据库中,然后让代码来组织每个房间的逻辑;把每个房间的描述与实际的源代码放在一起似乎有点不整洁。

这是在冒险游戏中组织描述的首选方法吗?我也在想,这可能会更好,因为我可以查询数据库以查找有关数据的公共属性。

任何意见,将不胜感激。

回答

6

不,请勿在代码中包含级别/房间描述,这种方式不是动态的。

许多开发框架现在倾向于将代码与数据分离。因此,对于通常的情况,我们会将游戏室数据放入文件中,并读取这些数据以构建关卡,并可能使用户自行构建新关卡,并最终创建一个新文件来携带房间数据。

4

我在一家制作游戏的公司工作,他们的房间与代码分开,他们在mysql中。实际上,每个房间的物品都放在一张桌子上,还有一张桌子,上面写着哪个房间在哪个房间。 除此之外,如果你想扩大你的游戏或者做统计数据,用数据库做得更好。

0

我会构建一个这样的游戏作为一个解读器,读取房间数据,并根据房间数据,允许一组有效的命令(移动,取,放,改...)。对于移动,你将有一个预先建立的图,其中节点是房间和边缘被允许移动。

3

我会在这里解决两个问题。首先,将游戏定义的数据远离将要使用它的引擎是正确的。这使得你不必重新编译所有东西,以便在基于文本的游戏的情况下修复打字错误等。

其次,但我只是质疑使用MySQL。如果你正在制作一个安装在人们系统上的dos类型的游戏,你不希望pre-req是'安装MySQL',呵呵。这里有一个用C语言编写的小程序,可以让所有人免费使用称为SQLite的程序,它可以更好地满足您的需求。如果在另一方面,网络是这个基于文本的游戏的发布媒介,那么必须在它:)

1

如果房间的描述是源代码的一部分,还是应该 被分离出来?

分开。

尝试使用Prolog语言。

  • 它具有类似的数据库,以SQL(实际上是逻辑谓词)
  • 随着一些技巧您可以检查是否经过一些变化是你的冒险最终处理。
  • 如果你不介意它是非常“电脑般的”,你可以通过一些逻辑谓词轻松地创建这个描述。

您可以看到examples of Prolog text adventures in simple Google search

0

我将从代码中分离出描述,拥有一个对象Room,它拥有一个对象通过某个Facade调用“数据库”的描述,以便您可以使用文件或数据库或任何您希望的内容。它最终还会允许你为房间本身添加一些脚本,比如描述中的对象具有行为。

2

您可以使用像ADRIFT这样的系统,那么您只需要担心的是描述和逻辑。

1

我建议使用已经有一个充满活力的社区周围的引擎。这样,你的源代码就是这样;游戏的源代码。我会去TADS 3Inform 7