MineCraft 社会mod计划

这个想法我很早就有了,最初的想法是如果把上古卷轴和魔兽争霸结合起来会是什么样?在上古卷轴中有两个主要的势力,一个是帝国势力,另一个是风暴斗篷势力,玩家可以选择加入其中的一个。但是之后的剧情基本上都是固定的。但是如果这两股势力会像魔兽里面的种族一样开矿,发展兵力,相互对抗,这不就有意思多了吗。这样结局就是未定的,一切也都是开放的。

沿着这个最初的想法,我想了很多。我想要一个更开放的世界,一切都是不确定的。我对社会进化的一些理论一直都有很大的兴趣,也读了些群体智能方面的书。然后这两个想法结合起来就诞生了想要做一个MineCraft社会mod的想法。为什么选MC呢,因为MC足够简单,足够开放,开发的相关资源也比较多。说了这么多,我到底要做什么呢?

在MC里面会有村庄,但是这种村庄很大程度上只是一种摆设,没有什么实际上的作用。我的宏观上的想法是给每个村民设计出基本的需求,基本的行动准则,当然这个准则不是完全由我来定的,有一定的随机性。然后通过不断的淘汰得到能够使村民活下去的准则。这样就相当于通过自然选择的方式进化出了社会结构。

这样说对于没有群体算法基础的人是不太好理解的。我还是比较喜欢用蚂蚁的例子来说明问题。

一群蚂蚁可以做出很复杂的事情,比如筑巢,通过较短的路径寻找食物。但是对于单个蚂蚁来说他们要做的事情很简单。以通过最短的路线来运送食物来说,蚂蚁会在自己经过的地方留下气味,单个蚂蚁所知道的只是向着浓的地方走。这样最初可能各种路线都有蚂蚁在走。如下图


但是由于较短的路线来回的时间会更短,所以这个路线上的气味会更浓些。这样经过一段时间以后几乎所有的蚂蚁都会走到较短的路线上。


这样群体的蚂蚁完成了一次漂亮的优化选择。但是对于单个蚂蚁来说他们甚至完全都没有意识到要进行选择这回事。
为什么会出现这个现象呢?这就是进化的结果,可以想象最初的蚂蚁是没有这种群体上的行为特性的,但是经过变异某一群蚂蚁有了这种特性,结果优胜略汰,这种特性也就被保存了下来。

看了这个例子应该明白我想要做什么了吧。MC里面的村民也会有这种简单的原则,在这种简单原则下他们也许会做出很多意想不到的行为,进化出属于自己的文化之类的。

当然这只是宏观上的想法,但是这个想法实施起来却太困难了。怎么去随机生成这样的原则,又怎么使这些原则进行变异。这些我还没想清楚。

然后我又想到了一种更具有可行性的方案。但是同时也会丧失一定的自由度。那就是人为的为城镇加上意志。城镇就好像有一个领导者一样。具体怎么做呢?首先对于单个村民来说,他所考虑的就是自己的基本需求,衣、食、住。而城镇会为村民提供这些,还是举个例子来说会更方便些。

城镇自身会有一种想要扩大,发展的目标。而这些目标的实现是通过村民来完成的。城镇会发布任务,比如挖矿每天给一个面包,村民如果觉得可以接受那么他就会去完成这个任务。如果没人接受这个任务,那么城镇就只能提高待遇。这样就会形成一个市场。城镇的面包要从哪里来呢?城镇会向居民收取各种费用。比如你要在城里住,那么你就要交房租。这样就形成了一个现金的流动。通过这个现金的流动城镇利用村民去实现了自己的目标就是扩大和发展。

不同的城镇间会有竞争关系,比如一个城镇会向另一个城镇发动战争。只要这个城镇发布战争的任务,给的待遇又足够好那么就会有村民去参加战争。一个城镇还会吸引另外一个城镇的人口。因为村民是自由的,他可以随意的选择在哪个城镇生活。所以如果别的城镇待遇更好,那么就会有村民去移民。

虽然上面的全部都是我想要实现的游戏内容,但是意外的发现现实生活好像也就是这样。虽然大多数人的目的就是为了赚钱,有个好点的生活。而实际上都被用来做城镇的发展了。曾近在网上看到有人说钱是最重要的,国家的目的也是钱。这实际上就本末倒置了,钱是国家用来调动人民实现国家自己目的的手段。而国家的目的就是存在和发展。因为如果不是为这个目的服务,它就不会存在。一切都是进化的结果。

继续回到我的这个mod的想法。由于这个想法工程量比较大,而且有很多需要先验证的地方。所以我准备先把基本的模型算法搭出来。比如在一个城镇的经济,人力等物资条件已知的情况下城镇应该发布什么样的任务,应该怎么发布任务。还有就是村民如何决定是否接受某个任务。村民的行为准则,村民间消息的传递。这些都是可以独立于MC进行开发的,而对这个想法来说也是最重要的一块,同时也是最有趣的一块。所以我准备先关注这个地方。

不知道有没有说清楚,以后成果的话我会在博客里面跟踪介绍的,我觉的这真的是一个很棒的想法,如果你感兴趣也欢迎和我交流。我的邮箱newnewton@qq.com。
标签上篇: 测试多插几个音乐 次篇: simsocial 第一步,基本的世界和物种