Другая идея, которую мне хотелось реализовать - это передвижение массы юнитов, потому что очереди-толпы (если не в жизни) - это обычно весело. Например, когда в игре за твоим юнитом чешет толпа и рубится с другой толпой. Похожая идея, например, была в Crowd City - среди списка рекомендованных "Индикатором" гиперказуальных игр для погружения в жанр.
Какой то мужик из Саратова одобряет эту игру.
Мне казалось, что это будут ландшафтные (может быть космического масштаба) изменения и в этом меняющемся ландшафте игрок будет постоянно менять планы, как ему реагировать на происходящее.
@Maxim Nuriev , клеточные автоматы в контексте генерирования уровней, хорошо подходят для создания подземелий:
https://jeremykun.com/2012/07/29/the-cellular-automaton-method-for-cave-generation/
https://gamedevelopment.tutsplus.com/tutorials/generate-random-cave-levels-using-cellular-automata--gamedev-9664
http://www.roguebasin.com/index.php?title=Cellular_Automata_Method_for_Generating_Random_Cave-Like_Levels
http://www.evilscience.co.uk/a-c-algorithm-to-build-roguelike-cave-systems-part-1/
https://www.gridsagegames.com/blog/2014/06/mapgen-cellular-automata/
Но все же лучше применять КА для других штук: моделирование эпидемий, пожаров, процедуральная генерация музыки и т.д. и т.п., в общем для моделирования любого распространяющейся процесс, например, КА неплохо работают для генерирования распространения растительности, правда для деревьев хорошо работает все же Пуассоновский процесс
http://devmag.org.za/2009/05/03/poisson-disk-sampling/
Также еще забавным алгоритмом является DLA
https://en.wikipedia.org/wiki/Diffusion-limited_aggregation
http://www.roguebasin.com/index.php?title=Diffusion-limited_aggregation
Особенно для всяких снежинок, симуляции диффузии и т.д. и т.п.
А вот для генерация general-purpos ландшафта лучше всего работают именно шумы Перлина, т.к. дают результат очень похожий на реальный:
https://www.redblobgames.com/maps/terrain-from-noise/
http://www.jgallant.com/procedurally-generating-wrapping-world-maps-in-unity-csharp-part-1/
https://medium.com/@yvanscher/playing-with-perlin-noise-generating-realistic-archipelagos-b59f004d8401
http://libnoise.sourceforge.net/tutorials/tutorial3.html
http://libnoise.sourceforge.net/tutorials/tutorial5.html
http://libnoise.sourceforge.net/tutorials/tutorial8.html
https://www.youtube.com/watch?v=WP-Bm65Q-1Y
http://jcgt.org/published/0004/02/01/
https://www.iquilezles.org/www/articles/morenoise/morenoise.htm
http://thingonitsown.blogspot.com/2018/11/monstrous-terrain.html
https://pvigier.github.io/2019/05/12/vagabond-map-generation.html
В общем-то на самом деле на основе шума Перлина можно все что угодно смоделировать — шумы непрерывные, значение зависит только от координаты, результат похож на что-то природное, и они отлично масштабируемы.
Хз на чем вы пишите, но вот хорошая библиотека с примерами
https://github.com/rthome/SharpNoise
Шейдеры правда побыстрее будут.
Для космоса (солнечные системы и бла-бла-бла-бла) лучше всего работает прямая симуляция процесса аккреции космической пыли в лоб.
Но это все для естественных объектов. Для процедуральной генерации рукотворных помещений лучше подходят уже алгоритмы совершенно другого типа, ну там, например, двоичное разбиение пространства:
http://www.roguebasin.com/index.php?title=Basic_BSP_Dungeon_generation
Другая идея, которую мне хотелось реализовать - это передвижение массы юнитов, потому что очереди-толпы (если не в жизни) - это обычно весело.
Модель жидкости хорошо подходит, но это если их реально дохрена, прям совсем дохрена.
А если акторов немного, то steering behavior хватит (к слову сказать в старом Бэтмене нашествие пингвинов именно так и моделировали):
https://gamedevelopment.tutsplus.com/series/understanding-steering-behaviors--gamedev-12732
https://gamedevelopment.tutsplus.com/tutorials/finite-state-machines-theory-and-implementation--gamedev-11867?_ga=2.235534977.1613626926.1616110355-2119885010.1607534354
https://gamedevelopment.tutsplus.com/tutorials/finite-state-machines-squad-pattern-using-steering-behaviors--gamedev-13638?_ga=2.235534977.1613626926.1616110355-2119885010.1607534354
Перевод:
https://habr.com/ru/post/358366/
https://habr.com/ru/post/358460/
Первоисточник:
https://www.red3d.com/cwr/steer/gdc99/
Но это все достаточно хорошо известные техники, про которые можно почитать вот здесь
https://www.oreilly.com/library/view/ai-for-game/0596005555/ch04.html
Поэтому космические просторы будем бороздить в другой раз. А в этот раз он предлагает сделать игру про цыплят.
Космические корабли, бороздящие просторы Большого Театра — самое простое, инфа 145% Впрочем если замаскировать космические корабли под цыплят, а галактические фоны под лужайку, то тоже норм :-)
Комментарий больше статьи вышел :)
Спасибо тебе, Доброе Сердце
Был рад приложить свою руку к этой милой игрушке :)