Симуляция воды в моей песочнице (YASG) / YASG :: разное

#YASG 

Симуляция воды в моей песочнице (YASG)

Проблема симуляции воды - это сложная задача для игр-песочниц, поэтому многие индюки (инди-разработчики) решают воду вообще не делать. Я подумал, что из этого получилась бы прикольная фишка, поэтому все же реализовал.


У меня в игрушке мир состоит из 2d блоков 32х32 пикселя. Вот представим, что у нас есть 1 такой блок воды. На блок воды действует сила тяжести. На гифке в яму падает по пол блока воды.



Блок воды делится на 4 части, которые "лежат" одна на другой. Количество воды в блоке - дискретная величина.

У каждого блока есть 2 параметра: объем (сколько там частей, от 1 до 4) и "псевдодавдение". Псевдодавление нужно, чтобы разравнивать поверхность воды - чтобы вода равномерно распределялась по доступной области.


Для каждого блока воды запускается конечный автомат, который проверяет, есть ли снизу, слева и справа место, куда вода может утечь из этого блока.


У этого подхода есть один недостаток: не работают сообщающиеся сосуды.



Водичка булькает :)


Если в воде кто-то плавает, то при поднятии уровня воды этот кто-то телепортируется на 1 блок наверх. Если сверху нет места, то появляется утопленник(и).



Пока оно работает вот так, но мне лично очень хочется когда-нибудь сделать сообщающиеся сосуды.


Подробнее



YASG,разное
Еще на тему
Развернуть
Насколько я помню, в той же Террарии была нормальная вода, насколько я помню... в Starbound тоже. Есть видео и статьи на тему воды в этой игре... в Oxygen Not Included даже механики разные на жидкостях завязаны.
Zuraki Zuraki 02.09.201920:10 ответить ссылка 0.7
В террарии прикольная вода, но вряд ли её можно назвать нормальной. Там она увеличивала объём скатываясь по ступенькам, на чём были основаны генераторы воды.

Показанное мне нравится. В смысле физика её, а вот визуальная часть слегка напрягает блочностью. Круглях хочу!
меня что-то перемкнуло. как бы ты себе представил кругляхи? круглые блоки чтобы падали?
Ну да. Просто эстетически приятнее и больше похоже на каплю воды.

Как ты внутри обсчитываешь и управляешь ими тебе виднее, но ты ж не привязываешься конкретно к пикселям, верно? А значит выглядеть блок воды может как угодно. Я бы вообще предложил анимированным его сделать, пока вода в сводбодном падении, то выглядит как колышущаяся условно круглая полупрозрачная фигня.
А потом ещё партиклами брызги фигачить во все стороны при колизии!
dimwalker дело говорит. Вообще particle system делают игру в разы красивее и веселее. Игра можно сказать оживает
У powder toy открытые сорцы и там есть сообщающиеся сосуды (включается в опциях), позырь.
Mousy Mousy 04.09.201911:19 ответить ссылка 0.1
можно посмотреть. боюсь правда у них там слишком сложно с точки зрения вычислительных ресурсов, мне же целую карту обсчитывать
Seed of andromeda с открытыми сорцами, там целые планеты и тоже сообщающиеся сосуды.
Mousy Mousy 05.09.201901:29 ответить ссылка 0.0
Добавь еще условие:
Если у блока слева или справа есть блок воды на единицу выше - то этот блок сдвигается на единицу вверх(+проверка на границу).
Место передвинутого вверх блока занимает новый(место под ним занято), теперь сдвинутый блок может двигатся горизонтально до новой границы.
2ru4ki 2ru4ki 04.09.201917:38 ответить ссылка 0.2
есть такая игра "Clonk" называется, вот там офигенная симуляция воды и земли. http://www.clonk.de/
ggghh ggghh 04.09.201918:33 ответить ссылка 0.0
Я занимался алгоритмами по эмуляции поведения физики различных предметов, в том числе воды. Пиши, если интересно.
AnToxin AnToxin 04.09.201922:18 ответить ссылка 0.0
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты