开发一个有复杂(和未定义)规则的游戏?

2024-06-08 23:00:29 发布

您现在位置:Python中文网/ 问答频道 /正文

你会如何开发一个游戏,最终可能会有复杂的规则,但你需要在规则(添加,调整,平衡)上下功夫?我研究过基于规则的语言,但还没有找到足够有用的信息。在

UI等将在稍后开发,首先我需要迭代地开发规则和公式,并在迭代之间进行测试。所讨论的游戏将是一个战术的两人游戏,玩家选择“部队”,游戏的很大一部分是选择正确的部队设置。所以规则可以是

If attacker's skill A is greater than defenders skill B and defender does not have extra skill Z then ...

这显然是一个非常简单的规则,我希望有几十条,甚至几百条规则,有路径(如果a,如果B…)。在

为了进行测试,我将编写一个测试框架,它可以通过大量迭代和日志记录来运行规则集,从而让我看到最新的更改是如何影响平衡的。能够定义可接受的值并有可能容易地看到更改,这也是很有用的。有什么工具可以用来做这个?在

选择的语言要么是Python,要么是Java(这取决于我是否希望针对Android——可能我会)。在


Tags: 语言信息游戏uiifis规则玩家
3条回答

这是一个有趣的问题,虽然有点宽泛和泛泛。我会根据我对你所问问题的理解来回答;)

您主要关心的似乎是能够以一种简洁易读的方式表达规则,这将使您始终保持定义的清晰和快速更改。既然你说规则可能会变得复杂,我相信你最好的办法就是为它们编写一个DSL。

试着写一个足够描述你的规则的语法,然后看看如何把它插入你的游戏中。ANTLR在这里可能非常有用,特别是因为它同时支持Java和Python。

不管你做什么,在这类程序中,你最终都会实现Prolog的一半。看看forward-chainingbackward-chaining、和backtracking算法。

最近发布了一个名为Jekejeke的纯Java版本的Prolog。我不能评论它的质量。

Python使使用生成器和yield语句实现回溯比Java简单得多。

larsmans一样,我建议您使用Prolog进行规则开发。它只是最好的半通用的语言,用来做你想做的事情。但是,我将建议tuProlog看起来是适合您需要的理想环境,因为您希望用Java编写游戏。TuProlog是一个可嵌入的Prolog环境(可以嵌入到Java或.NET中),其中包含非常精细的库,因此当您只使用它的一小部分时,您不必随身携带一个完整的、臃肿的Prolog世界。

以下是网站的简介:

tuProlog is a light-weight Prolog system for distributed applications and infrastructures, intentionally designed around a minimal core (containing only the most essential properties of a Prolog engine), to be later configured by (statically and dynamically) loading/unloading libraries of predicates. tuProlog also natively supports multi-paradigm programming, providing a clean, seamless integration model between Prolog and mainstream object-oriented languages -- namely Java, for tuProlog Java version, and any .NET-based language (C#, F#..), for tuProlog .NET version. It is also easily deployable, just requiring the presence of a Java/CLR virtual machine and an invocation upon a single self-contained archive file. Interoperability is further developed along the two main lines of Internet standard patterns and coordination models.

相关问题 更多 >