《Machinations.io》使用心得


最近使用了这款可视化游戏数值模拟工具,感觉蛮好用的,但是网上的相关教程介绍太少,在这里记录下我的使用心得以供分享

一、介绍

首先简单介绍下,这个网站的用途,它是Machinations 是一款直观的可视化工具,可在浏览器中协作设计、预测和优化复杂的经济模型。
现在,介绍完背景后,我们逐步认识下各个基础组件的作用

二、元素

1.输入:

资源是能为其他节点提供无限资源的节点。它们可以同时以各种速率为无限数量的节点生成资源。

输入

简单来说,他就像一个没有上限的输入源,可以孜孜不倦的输入资源,这个适用于某些无上限持续产出的资源
我们再看下他面板上的功能

面板

先不管名字,外观等不重要内容,有个很重要的Trigger(触发器),他有四个选项,分别是Passive(被动),Interactive(交互),Automatic(自动),Enabling(启用),这些选项在其他组件也同样通用,我一会会用gif动图展示介绍,在展示之前,还需要再介绍几个组件

2.池:

存储资源,它们可以接收资源并将其转发给其他节点。

池

他用于介绍来自其他地方输出的资源,同时可以输出资源到其他地方,他除了之前提到的Trigger之外,还有个重要的功能,就是Action(行动),他也有四个选项,分别是pull-any(拉任意),pull-all(拉所有),push-any(推送任意),push-all(推送所有),这个一会解释

面板

3.输出:

来自资源池和其他节点的资源。它们可以同时以不同的速率从多个节点消耗资源。

输出

有输入自然就有输出,他的主要功能是模拟资源消耗,由于是消耗掉的,因此资源将永远消失掉

4.门:

可以对资源进行分类但不收集资源,或者触发其他节点的操作的节点。
门

他可以对于资源进行分类,因为他除了上述两个功能外,还有个功能是Distribution(分配),它可以通过随机或者确定的概率将资源输送到多个节点
除了分类功能,他也可以作为触发器触发其他节点操作,之后放到展示里讲

面板

5.连接

实线
虚线
对比

这里有两个连接方式,分别为虚线与实线,实线:在节点之间传输资源。虚线:用于修改节点、资源连接或在极少数情况下修改其他状态连接。
实线比较好理解,就是负责两个节点之间的资源传输,虚线是什么意思呢?这里我把他理解为作为一个状态判断触发(if…then)

三、触发器gif展示

ok,这里开始利用我们上面了解的组件进行演示,首先是输入面板中Trigger-Passive,顾名思义,他只有在有其他触发时才会进行输入,那么何为触发?就是状态判断中有*,在Machinations中星号代表着触发符号,而Trigger-Automatic,可以看到就会带着个星号,代表着自触发,不需要外界触发就可以实现自己触发,而没有外界触发的则无法进行输入功能

Passive与Automatic

那么如何使用Passive,还记得我们之前提到的门和虚线连接吗,这里需要运用这两个知识点了,首先门可以作为触发器触发其他节点操作,因此它可以触发输入的Trigger-Passive,然后虚线代表状态判断触发,因此他可以触发。

那么这个有什么用呢,举个简单的例子:玩家初始血量为1,蓝量为10,每次攻击有70%概率命中,每次命中可以恢复1点生命值(上限10点),每次攻击消耗一点蓝量
那我们就可以利用触发器,每次攻击消耗一点蓝,代表着每次门判断时(代表着攻击一次),蓝量池就会输出1点消耗掉,同时门进行判断70%命中,命中则输入一点到生命池中,如果蓝量池为0,则无法发动攻击,设置生命池<11时,才可输入。
这样,一个简单的模型做好用来观测了。

模型

四、拉推含义


我们注意到这三个节点都有拉任意、推任意功能或拉所有、推所有功能,那么他代表什么意思呢?

Pull

我们看到上图,左边的池是被动的,右边的池是主动的,这点我们刚才了解到了,目前这两个池的状态都是pull-any(拉任意)状态,由于左边池无处可拉,右边池可以拉左边池,因此就会从左侧不断拉取

Push

那么拉的反义词是推,我们将左侧池设为push-any(推任意)左侧池右下角的P就代表是push-any,因此我们只需将主动关系相反,就可以做成左侧池主动推向右侧池。

好的,那么我们这就搞明白了推与拉的含义,那么什么是拉/推任意,拉/推所有呢,很简单就是在拉/推所有时,我实线连接线代表的输入资源数量(例图中的11),当它的数字超过了池所含的含量时,则无法传递资源,只有当池含量超过指定数量时才可以触发拉/推,但拉/推任意就反之,无论池含量是否满足指定数量,他都会触发拉/推。

指定数量>左侧池含量