> For the complete documentation index, see [llms.txt](https://evlko.gitbook.io/machinations/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://evlko.gitbook.io/machinations/getting-started/framework-basics.md).

# Основы Программы

Machinations создает схемы

В своей основе платформа Machinations построена на:

{% hint style="info" %}
6 базовых механизмов:

* **Pool** (хранилище) собирает ресурсы
* **Source** (источник) создает ресурсы
* **Drain** (сток) уничтожает ресурсы
* **Converter** (преобразователь) преобразует различные типы ресурсов в другие
* **Trader** (обменник) обменивается ресурсы
* **Gate** (ворота) перераспределяет ресурсы
  {% endhint %}

#### **+**

{% hint style="info" %}
2 типа связи:

1. **Resource Connections** определить, как ресурсы проходят через диаграмму
2. **State Connections изменяет состояние** элементов диаграммы
   {% endhint %}

{% hint style="success" %}

### :joystick: **Публичные диаграммы**

{% endhint %}

##

## ◉ Ресурсы

Все игровые системы состоят из элементов в постоянном потоке ресурсов.&#x20;

Ресурсы могут быть чем угодно: деньгами и имуществом в Монополии, боеприпасами и здоровьем в шутерах, или опыт и оборудованием в RPG.

{% hint style="success" %}
Ресурсы вместе с сущностями или действиями, которые вызывают их производство, потребление и обмен, составляют внутреннюю экономику игр.
{% endhint %}

{% hint style="info" %}
Любой поток ресурсов может быть представлен на диаграмме Machinations.

Сущности представлены механизмами, и способ, которым ресурсы производятся, потребляются и обмениваются, определяется соединениями.
{% endhint %}

## ⦽ Механизмы

:wrench: Ниже приведен пример работы источников, хранилищ и стоков. Обратите внимание, что механизмы связаны между собой посредством соединений (стрелки) с меткой, представляющей правило, по которому ресурсы будут передаваться между механизмами.&#x20;

![Источники, хранилища и потребители](https://4292057417-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2EnOzul3IzT7VLF5dC%2F-M2yl82u1xIU6mmqTRHB%2F-M2ym9xmYJsxTCralmet%2Fbasic-nodes.gif?alt=media\&token=46e51e7b-7756-4ddd-992d-1ad7a70d7f91)

1. По клику источник создает 3 ресурса, которые будут переданы в хранилищ
2. Сток потребляет 3 ресурса из хранилища
3. Случайный источник генерирует от 1 до 6 ресурсов при нажатии. Обозначение D6 Label обозначает «Die 6». Чтобы установить поток для каждого шага, Machinations моделирует бросок кубика с 6 гранями, и источник производит полученное количество ресурсов.
4. Сток забирает все ресурсы из хранилища

Больше об этом:

{% content-ref url="/pages/-M2ybsEqXjlR6JedVxa7" %}
[Хранилище | Pool](/machinations/framework/pools.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M2EtKCuc1A38mUvRRmJ" %}
[Источник | Source](/machinations/framework/sources.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M2EtehW0pkXdb5kTTKQ" %}
[Сток | Drain](/machinations/framework/drains.md)
{% endcontent-ref %}

:wrench: Вот визуализация того, как работают Конвертеры и Обменники.

![](https://4292057417-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2EnOzul3IzT7VLF5dC%2F-M3B6OM1vZ7G1qosaBZr%2F-M3B7YKUGQyn4PHiB3bZ%2Fconverter%26trader.gif?alt=media\&token=2385e8cf-7b0d-4c08-afa9-10383c9b173f)

1. Преобразователь преобразует 3 ресурса из начального источника в 1 другой ресурс
2. Обменник обменивает 2 монеты (coins) на 3 дерева (wood) и перемещает эти ресурсы в соответствующие хранилища

:book: Больше об этом:

{% content-ref url="/pages/-M3B850eGq8JuGjpil9u" %}
[Преобразователи и Обменники | Converters & Traders](/machinations/advanced/converters-and-traders.md)
{% endcontent-ref %}

:wrench: Ворота являются более сложными узлами, но основное состоит в том, что они перераспределяют ресурсы **детерминировано** или **случайно**.

![](https://4292057417-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2EnOzul3IzT7VLF5dC%2F-M3B6OM1vZ7G1qosaBZr%2F-M3B9qp8Te8lJIOzc045%2Fgates.gif?alt=media\&token=47264448-6dd6-4fcd-9863-534dc3a6e38d)

1. Детерминированные ворота перераспределяют 9 ресурсов из начального хранилища и переносят их в каждое из целевых хранилищ в соответствии с метками, которые в этом случае представляют **вес** результата
2. Вероятностные Ворота перераспределяют 10 ресурсов из начального хранилища и переносят их в каждое из целевых хранилищ в соответствии с вероятностью, указанной на их метках.

:wrench: Узнать больше:

{% content-ref url="/pages/-M3BAeuFcd6gUAf1D3ux" %}
[Ворота (Gates)](/machinations/advanced/gates.md)
{% endcontent-ref %}

## ⇶ Соединения

Все вышеприведенные примеры включают в себя **соединения с ресурсами**. Непрерывные стрелки, определяющие, как ресурсы проходят через диаграмму. Подробнее об этом:

{% content-ref url="/pages/-M2yU-5GRDaS4ai6bOlG" %}
[Соединения с ресурсами | Resource Connections](/machinations/connections/resource-connections.md)
{% endcontent-ref %}

:wrench: **Соединения состояний**, с другой стороны, изменяют состояние механизмов. Вот как:

![](https://4292057417-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M2EnOzul3IzT7VLF5dC%2F-M3B6OM1vZ7G1qosaBZr%2F-M3BB8_Vc6DsYMBINjdy%2Fbasicloop-state-connection.gif?alt=media\&token=50ab99b2-0ff0-4f4a-b911-e6007e199837)

В приведенном выше примере соединение состояний изменяет метку на соединении c ресурсами и изменяет поток функции ресурсов на количество ресурсов в хранилище. Таким образом, он добавляет к начальному параметру Label (1) количество ресурсов, находящиеся в хранилище после каждого временного шага.&#x20;

Есть кое-что большее в State Connections, но это уже сложнее. Они могут изменять состояние механизмов и действовать как триггеры или активаторы.

:book: Больше об этом:

{% content-ref url="/pages/-M2ypwC5nKvKbW432aPT" %}
[Соединения состояний | State Connections](/machinations/connections/state-connections.md)
{% endcontent-ref %}
