添加新游戏类型而无需重新编译程序? (C ++)

时间:2011-02-11 12:45:11

标签: c++ types external recompile

我的游戏有不同的游戏类型,即时间试验,无限游戏等。

每种游戏类型都有不同的时间规则和潜在的碰撞规则。 显然,在时间试验中,当时间耗尽时游戏结束。

我目前正在通过'硬编码'将游戏类型添加到程序中,因此每次我想添加新的游戏类型时,我都必须重新编译整个程序。

基本上,为了使添加游戏类型更容易,我不想重新编译所有内容。因此,潜在的新游戏类型可以是可下载的内容,只需将新类型放入游戏文件夹即可。

怎么会这样做呢?我假设它是使用libs或dll或其他东西(我对此知之甚少,所以我可能完全不正确)。

我希望一切都有道理,我希望你们能帮助我,或者至少让我指向解释这种方法的书或文章的方向。

提前致谢。

1 个答案:

答案 0 :(得分:5)

使用本机DLL实现游戏可扩展性是IMO不是一个好主意,特别是如果代码不是从头开始设计的。

您最好使用一些脚本语言,如LUAPython,因此可以添加游戏模式而无需编写和编译C ++代码。这些很容易实现(特别是如果你使用一些绑定/包装库),但需要你设计一个脚本API,这可能是一个非常重要的任务(取决于你希望游戏可以修改多少)。这是游戏行业中非常标准的方法 - 大多数商业游戏最近都有某种脚本支持。

通常,趋势是将尽可能多的代码从核心(C ++)移动到脚本,因为这些脚本更易于开发,维护和修改。许多现代游戏在游戏性逻辑(用脚本语言编写)和游戏引擎(用C ++或其他编译语言编写)之间有着非常清晰的区别。