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

Nov*_*viz 1 c++ types external recompile

我有一个游戏有不同的游戏类型,即计时赛,无限游戏等.

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

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

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

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

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

提前致谢.

Mat*_*ský 5

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

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

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