2010-08-17 42 views
4

我设计(并最终写入)在Django的系统主要由两个部分组成:如何最好地组织Django系统的规则组件?

  1. 一个游戏管理器:这本质上是一种数据输入件。可信(非公众)用户将在游戏系统上输入信息,例如玩家可能拥有的选项。这个界面完全是Django管理控制台,除了保存信息之外,它不会“执行”任何操作。
  2. 一个字经理:这是上述数据的消费者。公共用户将在上面定义的角色扮演系统中创建角色,并从这些可信用户输入的选项中抽取角色。从Django的角度来看,这是一个单独的应用程序。

有一件我不确定放哪里,但是,这是与每个游戏相关的“规则”。实质上,对于放入第一个应用程序的每个游戏,都有一组特定于该游戏的先决条件,限制和其他业务逻辑。 (也有类似结构的逻辑,这对所有游戏都是常见的。)逻辑将用Python编码,而不是用户输入。

即逻辑是在验证一个特定字符的过程中使用,但是相关与特定的游戏和需要被动态地换出。它是一个单独的应用程序,还是应该验证绑定到角色管理器的形式?或者它可以兼得?

这是第一个Django应用程序,我是白手起家(而不是咀嚼别人的代码),我是新来的Python的理念来引导,所以我在这所有的耳朵。

在此先感谢。

回答

1

我将与游戏逻辑的应用程序创建一个名为rules子目录,并有创造每场比赛后命名模块,你想上桌。然后为这些模块创建一个通用界面,这些界面将被你的游戏利用,并通过名称导入适当的规则模块(如果你的游戏叫做adom,那么只需在主游戏引擎内部__import__('rules.adom')并且调用游戏特定的方法)

If你的游戏不建立自己的模型和视图,然后似乎没有理由创造每个方面的具体应用,这是一个棘手的问题,因为使用的代码是基于存储在数据库中的数据。没有你想象的?有关数据库内存储更多的游戏脚本,然后exec他们这似乎更自然:游戏设定与游戏相关的数据和其他脚本的

+0

游戏组件确实有它自己的一组模型,但没有视图(管理控制台除外),并且所有游戏数据都是在单个应用程序(“游戏管理器”)中输入的,而不是单独的应用程序。人物角色将在游戏方面拥有不同的模型和视图,但会从该角度提取一些数据。 我想到了游戏脚本的方法,但担心可能会有很多数据库调用和执行者遇到速度问题。角色侧将使用AJAX调用对每次更改进行验证。您认为这是一个非问题吗? – 2010-08-17 16:35:37

+0

啊,好吧。这很有道理。 – 2010-08-17 18:28:05

+0

很高兴,我可以帮忙。我曾经是RPG迷:-) – gruszczy 2010-08-17 18:45:47

1

的“规则”。与每个游戏相关联。

每场比赛投入的第一个应用程序,有套特定于该游戏的先决条件,限制和其他业务逻辑。

那么这就是游戏应用程序的一部分。

还有类似结构的逻辑,这对所有游戏都是通用的。

那么这就是游戏应用程序的一部分。

该逻辑用于验证特定角色的过程,但与特定游戏相关联。

正确。那么这就是游戏应用程序的一部分。角色与一个或多个游戏相关联。

它应该与字符管理器的形式绑定吗?

角色形式可以有依赖于游戏的数据清理规则。