游戏开发:我应该编程我的关卡还是从文件中解释它们?

时间:2010-06-19 19:54:40

标签: c++ interpreter

游戏将用C ++编写

编程:

enemies.puch_back(new DefaultEnemy(200, 300, 3, 5));
enemies.puch_back(new DefaultEnemy(500, 400, 4, 5));
enemies.puch_back(new DefaultEnemy(300, 420, 3, 15));
enemies.at(2).createAward(new Key(4), "pling.wav");

或者从这样的文件中解释它们:

DefaultEnemy 200 300 3 5
DefaultEnemy 500 400 4 5
DefaultEnemy 300 420 3 15
CreateAward 2 "pling.wav" Key 4

程序会更容易,人们不能(不说黑客)编辑你的关卡。但是编制这一切可能有点垃圾吗?还有其他理由选择编程或口译吗?

内存管理怎么样(如果我应该去解释)?

如何在级别卸载时删除(游戏)对象?

4 个答案:

答案 0 :(得分:11)

始终将应用程序与数据分开。

答案 1 :(得分:6)

第一个变体相当于硬编码游戏资源。这绝对是错误的,仅适用于调试。

每个游戏都将其资源存储在外部文件中 - xml,归档包并在运行时解析并加载它们。

因此,现代游戏引擎几乎每次都都有与它捆绑在一起的工具集。

删除游戏资源也是一个很大的问题 - 依赖。取决于您的对象的生命周期管理以及您需要将数据解压缩到临时文件中的事实。

答案 2 :(得分:2)

好吧,我会将关卡设计保存在文件中。这就是正确的脚本。这给了我一个方法来改变水平..

此外,它将保持您的对象(级别中使用的东西)与逻辑(游戏逻辑)分开。这将有助于调试并具有更清晰的结构

答案 3 :(得分:2)

取决于您是否可以节省用于口译的资源,以及您打算使用您的工作的其他人。如果你和你一个人在创造它,那么硬件代码本身就没有错。

但是,如果您曾经打算让用户或其他任何人修改它,那就解释一下。