我正在尝试创建一个老式的文本冒险游戏。我有点卡在创建世界地图和房间。
房间描述是否应该是源代码的一部分,还是应该分开?我想把所有这些描述和房间属性放在MySQL数据库中,然后有代码来组织每个房间的逻辑;将每个房间描述与实际的源代码放在一起似乎有些不整洁。
这是在冒险游戏中组织描述的首选方法吗?我也认为这可能更好,因为我可以查询数据库以找到有关数据的常见属性。
任何意见都将不胜感激。
答案 0 :(得分:6)
不,不要在代码中包含级别/房间描述,这不是动态的。
现在许多开发框架都倾向于将代码与数据分开。因此,对于通常的情况,我们将游戏室数据放在文件中并读取这些数据以构建关卡,并且可以使用户自己构建新关卡并最终创建一个新文件来传输房间数据。
答案 1 :(得分:4)
我在一家他们制作游戏的公司工作,他们把房间与代码分开,他们把它放在mysql中。实际上每个房间里的物品都放在一张桌子上,还有一张桌子说明当时哪个房间在哪个房间。 此外,如果你想扩展你的游戏或做一些关于它的统计数据,那么使用数据库做得更好。
答案 2 :(得分:4)
我将在这里讨论两个问题。首先,您保留定义游戏的数据远离将使用它的引擎是正确的。这使得您无需重新编译所有内容,以便在基于文本的游戏中修复拼写错误等。
其次,我只会质疑MySQL的使用。如果你要制作一个dos类型的游戏,安装在人们的系统上,你不希望预先要求是“安装MySQL”,呵呵。有一个用C语言编写的程序,所有人都可以免费使用,称为SQLite,可以更好地满足您的需求。另一方面,如果网络是发布这种基于文本的游戏的媒介,那么请在其中:)
答案 3 :(得分:2)
您可以使用像ADRIFT这样的系统,然后您需要担心的是描述和逻辑。
答案 4 :(得分:1)
房间描述是否应该是源代码的一部分或应该是它的一部分 被分开了?
分开。
尝试使用Prolog语言。
您可以看到examples of Prolog text adventures in simple Google search。
答案 5 :(得分:1)
答案 6 :(得分:0)
我会构建这样一个游戏作为解释器来读取房间数据,并根据房间数据,允许一组有效的命令(移动,接受,丢弃,改变......)。对于移动,您将拥有一个预先构建的图形,其中节点为房间,边缘允许移动。
答案 7 :(得分:0)
我会将描述与代码分开,拥有一个对象Room,它拥有一个对象Description,通过一些Facade调用“数据库”,这样你就可以使用文件或数据库或任何你想要的东西。它最终还允许您向房间本身添加一些脚本,例如说明中的对象具有行为。