Добавлен , опубликован

Живой Лес - Forest Alive

Как началось

Сколько себя помню, мне интересно было как живёт природа, по каким правилам и для чего.
Экология стала одним из любимых предметов в школе.
Изучая Редактор Карт Варкрафта и мастеря поделки на основе уже готовых карт, попробовав оживить срубленные деревья, я понял, что моя карта обязательно будет иметь живой лес. Лес, который растёт, лес, который может меняться и возобновляться как ресурс, как часть живого мира.
И конечно, что-то должно придавать ореол величественности такому живому лесу - например одно большое древнее дерево.
Таким оно создано было в то время:

Текущее состояние

Что это: Скриптовая Наработка
Название: Живой Лес - Forest Alive
Авторы: Вармиръ
Версия: 1.06ar
5 / 8 (62%) - Завершённость

Описание

Что в данном случае обозначает "живой лес"? Это лес, изменения в, котором происходят в том числе и без участия игрока. Лес растёт - расширяется, в первую очередь, но и умирает.
  • Периодически падают деревья от старости или болезни.
  • На освободившееся место могут попасть семена и - новое дерево готово.
  • При агрессивной вырубке или иной причине массового вымирания - лесной покров может исчезать вовсе.
  • При благоприятных условиях лес может расширить ареал своего обитания.
Все эти процессы в реальном мире тонко связаны с экосистемой, в которой участвует лес. Современный уровень научного знания позволяет прогнозировать развитие популяции деревьев. Это зависит от многих многих межвидовых факторов, и в целом сформулировано в так называемом S-образном росте численности. Это кривая временной зависимости численности описывающая основные свойства развития отдельной популяции - согласно динамическим моделям развития леса.
Данный фактор - S-образный рост численности - взят за основу при создании модели развития нашего Живого Леса. Двумя другими основными расчётными факторами взяты - Начальная численность популяции - и - Диагональ площади игрового мира. Последние факторы приняты за "гомеостатическое" состояние, к которому стремится Живой Лес посредством S-образного роста численности.

Что сделано

  • выведены основные расчётные формулы;
  • расчёты переведены в триггеры;
  • проведён анализ, который показал, что команда "Pick every destructible matching conditions" работает многократно лучше, чем цикл из "Random destructible matching conditions". В первом случае сначала происходит выборка всех подходящих, потом применение к ним действий, одномоментно обрабатывается любое количество. Во втором же случае происходит "подмерзание" игрового процесса при обработке более 10-15 циклов одномоментно;
  • выведена панель наблюдения для отслеживания статистики работы скрипта, а так же специальные функции;
математическая модель живого леса
  1. Шанс, что дерево умрёт в лесу - 0.04%. Можно сказать, что каждые 2500 живых деревьев умирает одно, хотя случайность расчитывается для каждого дерева отдельно. Больше деревьев на карте - больше умирает в 1 расчётный период.
  1. S-образный рост влияет на шанс пророста новых деревьев от 0.1% до 0.5%. Чем сильнее экосистема отклоняется от гомеостаза, тем сильнее её стремление выровнить баланс. Однако при переходе определённой черты нанесённого экосистеме ущерба естественное стремление к гомеостазу снижается и может дойти до минимума. Основа показателя это отношение живых деревьев к общему количеству на карте.
  1. Каждые 1000(200) пней может воскрешаться одно при условии, что рядом есть живые деревья. Шанс воскрешения представляет собой S-образный рост, который меняется в зависимости от состояния экосистемы. Мало пней на карте - мало воскрешений в расчётный период.
    • 100% воскрешение если в радиусе 1024 есть более 4 живых.
    • 66% если в радиусе 1024 3-4 живых.
    • 33% если в радиусе 1024 1-2 живых.
По данным произведённых наблюдений расположение деревьев на карте относительно друг друга, при вырубке снижает вероятность успешного всхода(выполнение условия радиуса 1024) примерно в 5 раз.
  1. Как видно воскрешение будет происходить реже заявленных минимальных коэфицентов 0.1%(0.5%) из-за ограничения по расстоянию от живых. В случае же когда деревьев на карте остаётся мало, менее 10%, то шансы на рост новых могут уменьшится из-за сосредоточенности деревьев в одном месте. Хотя пней на карте будет много, пророст будет низким. Для компенсации этого и отыгрывания проростания семян разнесённых ветром(животными,долгим хранением в почве) добавляем вероятность пророста с отношением к диагонали карты.
    • каждые 10000 может прорасти 1 дерево на расстоянии 1/6 диагонали карты если есть 3 живых в радиусе.

Что сделать для будущей версии

  • Дополнительные возможности:
  1. Вымирание, рассчитать формулу, ввести в скрипт.
  2. Расширение ареала, рассчитать формулу, ввести в скрипт.
  • Универсализация:
  1. Прикрутить к триггеру массив обрабатываемых типов. Задание доступно для выполнения. Выдам задание любому желающему, пишите в комментариях или в лс.
`
ОЖИДАНИЕ РЕКЛАМЫ...