Comments 10
— «Двухуровневость» — то есть, кормовая база оленей также является восполняемым ресурсом: олень жрёт траву почти под ноль, но если оленей нет — трава отрастает за несколько тиков. Если травы нет, олень голодает или мигрирует.
— «Насыщенность» — сделать жизненное состояние волка не бинарным (жив/мёртв), а добавить «очки здоровья» в зависимости от количества недавно съеденных оленей и голода. Волк будет думать о размножении только в случае, если его «очки здоровья» больше определённой константы (на голодный желудок особо не до секса).
— «Везучесть» — в случае, если волк и олень оказываются на одной клетке, у оленя есть вероятность убежать.
— С вероятностью в N% может случаться либо «bounty day» для той или иной популяции, когда прирост возрастает или наоборот тёмные деньки — эпидемия.
Не понятно только зачем тут нода, докер и пр. Сделали бы лучше веб приложение, чтобы просто давать ссылку на песочницу, где можно поиграться. Тут вот туториал, как сделать такое для собственно игры "Жизнь" с бесконечным игровым полем.
Несколько быстрых, облегчающих жизнь, советов касательно js на будущее:
Сервер у вас определенно лишний, все то же можно запускать сугубо на клиенте. Возни будет меньше, а поднять потом можно будет как статический сайт. Например, можете попробовать мой темплейт для webpack — github.com/tynrare/webpack-template
js — не единственный вариант для веба, и пока вы в этом болоте не погрязли, советую попробовать haxe ради сравнения. Есть игровой движок heaps.io, и околоигровой openfl.org. Очень просто ставятся и очень понятно работаются
под жс есть хорошие библиотеки визуализации данных, вроде visjs.org или d3js.org. Их стоит освоить не потому что без них нельзя вывести инфу на канвас, а потому что они позволяют сделать реально круто.
есть специальные сервисы, заточенные под работу с визуализацией данных для непрограммистов, например p5js.org. Еще observablehq.com нравится
Подобное приложение, по хорошему, стоит проектировать с расчетом на "побаловаться". Подключать dat.gui, писать в какой-нибудь codepen.io, и когда уже вы спроектируете все параметры, у вас будет возможность и самому поиграть со значениями в свободном режиме, и остальным дать попробовать
Удачи!
Модель «Хищник-жертва» на Node.js