Add detailed technical specification for village economy simulation (v2)
This commit is contained in:
commit
1d10a96930
91
docs/design/village-tz-v2.md
Normal file
91
docs/design/village-tz-v2.md
Normal file
@ -0,0 +1,91 @@
|
||||
# Симуляция экономики деревни (Техническое задание v2)
|
||||
|
||||
## 1. Общие положения
|
||||
Симуляция агентная, пошаговая. Основная цель — наблюдение за формированием экономических связей и выживанием популяции при заданных правилах.
|
||||
|
||||
### Цикл симуляции
|
||||
1. **День:** Длится **10 шагов**. Агенты активны (работают, торгуют, потребляют).
|
||||
2. **Ночь:** Длится **1 шаг**. Все агенты спят.
|
||||
3. **Итого сутки:** 11 шагов.
|
||||
4. **Синхронизация:** Все агенты делают ход одновременно. Следующий шаг наступает, когда все завершили выбор действия.
|
||||
|
||||
## 2. Модель Агента
|
||||
|
||||
### Жизненные показатели (Максимумы / Старт)
|
||||
При падении любого показателя (кроме Энергии) до 0 агент умирает.
|
||||
|
||||
| Показатель | Макс | Старт | Расход (Пассив) | Примечание |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| **Энергия** | 100 | 80 | -2 / ход | Не умирает при 0, но не может совершать активные действия |
|
||||
| **Голод** | 100 | 80 | -2 / ход | |
|
||||
| **Жажда** | 50 | 40 | -3 / ход | Убывает быстрее голода |
|
||||
| **Тепло** | 100 | 100 | -2 / ход | |
|
||||
|
||||
### Инвентарь
|
||||
* Ограниченное количество слотов (например, 10 или по весу).
|
||||
* При переполнении новые ресурсы исчезают (или не могут быть добыты).
|
||||
* Стартовый капитал: **100 Монет**.
|
||||
|
||||
## 3. Экономическая Модель
|
||||
|
||||
Вводится универсальная валюта — **Монеты** (Coins), чтобы решить проблему бартера.
|
||||
|
||||
### Механика Рынка (Биржа)
|
||||
Торговля происходит через общий реестр заявок (Order Book), доступный всем агентам мгновенно.
|
||||
1. **Продажа:** Агент выставляет лот: `{Товар, Кол-во, Цена за шт.}`.
|
||||
2. **Покупка:** Агент ищет самый дешевый лот нужного товара и покупает его.
|
||||
3. **Видимость:** Все видят все заявки.
|
||||
|
||||
### Ценообразование и "Парадокс цены"
|
||||
Для решения проблемы, когда неэффективный работник продает дороже, используется разделение цен:
|
||||
1. **Себестоимость:** `(Потраченная Энергия * Стоимость Энергии) / Кол-во товара`.
|
||||
2. **Рыночная цена:** Динамическая.
|
||||
* Агент выставляет товар по *Себестоимости* (или с небольшой наценкой).
|
||||
* Если товар не покупают `N` ходов -> Агент снижает цену (скидка), даже ниже себестоимости, чтобы выжить.
|
||||
* Если товар купили быстро -> В следующий раз агент повышает цену.
|
||||
|
||||
## 4. Ресурсы и Производство
|
||||
|
||||
| Ресурс | Источник (Действие) | Эффект | Срок жизни | Примечание |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| **Мясо** | Охота | Голод +30, Энергия +5 | 5 ходов | Сытное, быстро портится |
|
||||
| **Ягоды** | Собирательство | Голод +5, Жажда +2 | 20 ходов | "Консервы", мало насыщают |
|
||||
| **Вода** | Добыча воды | Жажда +40 | ∞ | Не портится |
|
||||
| **Дерево** | Рубка | Топливо для костра | ∞ | |
|
||||
| **Шкура** | Охота (побочный) | Крафт -> Одежда | ∞ | |
|
||||
| **Одежда** | Ткачество (из Шкуры) | Снижает потерю тепла на 50% | 50 ходов | Изнашивается |
|
||||
| **Тепло** | Костер (из Дерева) | Тепло +10/ход (пока горит) | 1 ход | Активное действие (разжечь) |
|
||||
|
||||
## 5. Баланс Действий (Draft)
|
||||
|
||||
| Действие | Расход Энергии | Результат (Успех) | Риски/Шансы |
|
||||
| :--- | :--- | :--- | :--- |
|
||||
| **Сон (Ночь)** | +60 (Восст.) | - | - |
|
||||
| **Отдых (Днем)** | +10 (Восст.) | - | Пропуск хода |
|
||||
| **Охота** | -15 | 1-3 Мяса, 0-1 Шкуры | Шанс успеха 70% |
|
||||
| **Собирательство** | -5 | 2-5 Ягод | Шанс 100% |
|
||||
| **Рубка дерева** | -10 | 1-2 Дерева | Шанс 90% |
|
||||
| **Добыча воды** | -5 | 1 Вода | Шанс 100% |
|
||||
| **Ткачество** | -8 | 1 Одежда (нужна 1 Шкура) | |
|
||||
| **Разведение костра**| -5 | +Тепло (нужно 1 Дерево) | |
|
||||
| **Торговля** | -1 | Выставить/Снять лот | Не тратит ход? (обсуждаемо) |
|
||||
|
||||
## 6. Логика ИИ (Приоритеты)
|
||||
|
||||
Агенты используют систему приоритетов ("Пирамида Маслоу") для принятия решений:
|
||||
|
||||
1. **Критическое состояние (< 20%):**
|
||||
* Если Голод/Жажда/Тепло < 20% -> **ВЫЖИВАНИЕ**.
|
||||
* Потребление из инвентаря -> Покупка на рынке -> Добыча (если есть силы).
|
||||
2. **Усталость:**
|
||||
* Если Энергия слишком низкая для работы -> **ОТДЫХ**.
|
||||
3. **Экономическая эффективность:**
|
||||
* Если профильный ресурс переполняет инвентарь -> **ПРОДАЖА**.
|
||||
* Если нет инструментов/сырья -> **ПОКУПКА**.
|
||||
4. **Рутина:**
|
||||
* Выполнение основной работы (Охота/Собирательство/Крафт).
|
||||
|
||||
## 7. Нерешенные вопросы / На будущее
|
||||
1. **Социальное взаимодействие:** Передача ресурсов без денег?
|
||||
2. **Репродукция:** Появление новых агентов?
|
||||
3. **Обучение:** Повышение навыка охоты со временем (снижение затрат энергии)?
|
||||
64
docs/design/village-tz.md
Normal file
64
docs/design/village-tz.md
Normal file
@ -0,0 +1,64 @@
|
||||
# Симуляция экономики деревни
|
||||
|
||||
# Краткое описание
|
||||
|
||||
Идея заключается в том, чтобы проверить как образуется экономика при разных заданных условиях. Первая версия симуляции будет довольно простой с упрощениями. Есть некоторое количество агентов, у которых есть следующие индикаторы: энергия, голод, жажда, тепло. Любые действия агентов тратят энергию. Она восстанавливается отдыхом, сном и едой (ночью все обязательно спят). Голод со временем усиливается, поэтому агенты должны добыть еду. Они могут охотиться (тратит больше энергии) или заниматься собирательством (мясо и растительность в разной степени утоляют голод). Для утоления жажды нужно достать воду (одно действие). Для поддержания тепла нужно дерево (сначала срубить его, затем использовать для прогревания (а-ля костер) \- 2 действия), или шкура (охотимся и затем из шкуры получаем одежду). Если какой-либо из индикаторов дойдет до нуля – агент умирает. У каждого агента также есть некоторое “хранилище” в которое они могут складывать добытые ресурсы (но количество слотов ограничено). Когда агент понимает, что у него есть незакрытая потребность, но при этом у него, например, нет возможности самому сделать необходимые действия – агент может произвести торговлю. Из хранилища товары можно покупать/продавать. Стоимость равна затраченной энергии. Например, если охотник потратил 10 единиц энергии и добыл 5 кусков мяса, то стоимость 1 куска \= 10 / 5 \= 2 у.е.. При этом другой охотник мог потратить 30 единиц энергии и при этом добыть только 1 кусок мяса (неудачная охота), и тогда у него стоимость одного куска будет \= 30 / 1 \= 30 у.е.. При торговле агенты как-то должны выбирать хотят или не хотят они торговаться с определенными агентами (пока опускаем наценку, торг, кредиты \- это добавим позже). Ну и в целом, наверное, желание торговаться должно чем-то регулироваться (не быть рандомным или слишком топорным). Как было описано ранее, для закрывания некоторых потребностей нужно совершить несколько действий (напр. чтобы согреться), но с помощью торговли можно сократить количество действий (т.е. потратить меньше энергии). Например, купить у другого агента шкуру (вместо того, чтобы охотиться), и потом самому уже из него сделать одежду.
|
||||
|
||||
# Симуляция
|
||||
|
||||
1. Симуляция происходит пошагово
|
||||
2. Симуляция имеет цикл день-ночь
|
||||
3. Ночь длится один шаг
|
||||
4. Ночью все агенты спят (восполняют энергию)
|
||||
5. В течение шага житель может совершить одно действие
|
||||
6. Шаги всех жителей происходят одновременно
|
||||
7. Шаг заканчивается, когда все жители сообщили о конце хода
|
||||
8. У жителей есть три потребности:
|
||||
1. Голод
|
||||
1. Голод увеличивается каждый шаг
|
||||
2. Голод восстанавливается путем потребления пищи
|
||||
2. Жажда
|
||||
1. Жажда увеличивается каждый шаг
|
||||
2. Жажда восстанавливается путем потребления воды
|
||||
3. Тепло
|
||||
1. Тепло уменьшается каждый шаг
|
||||
2. Потеря тепла уменьшается при носке одежды
|
||||
3. Тепло восстанавливается при нахождении у костра
|
||||
9. В симуляции есть следующие ресурсы:
|
||||
1. Дерево
|
||||
2. Вода
|
||||
3. Мясо
|
||||
4. Шкура
|
||||
10. Есть следующие виды деятельности:
|
||||
1. Охота
|
||||
2. Собирательство
|
||||
3. Добыча воды
|
||||
4. Рубка дерева
|
||||
5. Ткачество
|
||||
6. Разведение костра
|
||||
11. Работа:
|
||||
1. Работа тратит энергию
|
||||
2. Работа приносит соответствующий ресурс согласно распределению
|
||||
12. У каждого жителя есть энергия:
|
||||
1. Энергия тратится на каждом ходе с работой
|
||||
2. Энергия восстанавливается во время отдыха и во время ночного сна
|
||||
13. В симуляции следующие цепочки производства:
|
||||
1. Охота \-\> Мясо \+ Шкура
|
||||
2. Мясо \-\> (-) Голод
|
||||
3. Шкура \-\> Ткачество \-\> Одежда
|
||||
4. Одежда \-\> (модификация на расход) Тепло
|
||||
5. Добыча воды \-\> Вода
|
||||
6. Вода \-\> (-) Жажда
|
||||
7. Рубка дерева \-\> Дерево
|
||||
8. Дерево \-\> Разведение костра \-\> (+) Тепло
|
||||
14. Порча:
|
||||
1. Еда портится через несколько шагов
|
||||
2. Одежда портится через несколько шагов
|
||||
15. Инвентарь:
|
||||
1. Все ресурсы занимают определенное место в инвентаре
|
||||
2. Ресурсы из инвентаря можно выкидывать
|
||||
16. Торговля:
|
||||
1. Торговля может происходить на любом шаге, кроме ночи
|
||||
2. Цена товара вычисляется напрямую из затраченной энергии согласно формуле
|
||||
|
||||
#
|
||||
Loading…
x
Reference in New Issue
Block a user