1343

Делаю физический 2Д-движок для игры

В этом видео - симуляции, которыми можно управлять с помощью геймпада. Это я прототипирую, чтобы почувствовать, какой геймплей как ощущается игроком - что увлекает, где физика интересно себя проявляет.

Какие физические сущности есть в движке? Во-первых, материя, в которую слипаются частицы. Из них можно делать персонажей и мир. Вычислять их дорого, но всё работает на GPU, так что запас размера мира есть.

Частицы - это абстрактные точки, которые надо отрисовать. Для отрисовки я использую метод marching squares.

Сначала для частиц строится distance field, принцип которого понятен по этому видосу. Затем в окрестностях точек треугольники меша становятся видимыми, и вся материя рендерится в один draw call.

Кроме материи, в игре есть твёрдые тела, который симулируются отдельно у них уже есть момент инерции, произвольная масса. Есть также и пружины, с помощью которых тела можно присоединять друг к другу.

Из примитивов можно строить более сложные фищические объекты. Пара колёс + прямоугольник - получитлась машинка. Чтобы игрок мог управлять сущностями в игре, в GPU передаётся инпут, а для тел устанавливается, как они реагируют на него.

Естественно, для игры с разружаемой средой, нужно оружие. Вся игра работает на GPU, и единственный буффер, который копируется в каждом кажру на сторону CPU - точки взрывов, чтобы создавать VFX и воспроизводить звук.

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

Чтобы сделать управляемых персонажей и врагов в игре, я добавил в движок "мягкие тела". Это те же физические частицы, но соединённые пружинами. Внутри них можгут быть физические кости, чтобы делать анимации.

Рендерятся они так: формируется меш из физических треугольников, слагающих мягкое тело. Всё происходит в GPU, поэтому работает быстро.

Здесь рука - мягкое тело с костями, управляемое игроком. Она взаимодействует с головой, которая сделана из несвязанных частиц, то есть обычной материи.

Из дополниельных фич - присоединение объектов друг к другу. Тут Патрик откладывает икру. Хотели бы поесть икры Патрика?

Кроме самой игры, в игре будет редактор-песочница, чтобы игроки могли создавать физические сцены. В движке можно делать занятные симуляции, довольно красивые.

Какой в итоге будет геймплей? У меня есть список из 60 вариантов геймплея под физику. Но я склоняюсь к одному, с копанием земли, добычей ресурсов, постройкой базы и элементами аркадного платформера.

Если желаете вишлистить игру, она тут:

https://store.steampowered.com/app/3343970/Simulario/

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
69
Автор поста оценил этот комментарий

Опять желейная земля, так и не решили эту проблему.

раскрыть ветку (16)
13
Автор поста оценил этот комментарий

Решение есть, скоро доделаю

раскрыть ветку (7)
11
Автор поста оценил этот комментарий

Давай, пока никто эту проблему в реалтайме решить не смог.

раскрыть ветку (2)
2
Автор поста оценил этот комментарий

И это странно, потому что само по себе это решаемо

раскрыть ветку (1)
7
Автор поста оценил этот комментарий

включаешь хардкор левел сложности и ультранастройки графики - берешь лопату и на дачу!

4
Автор поста оценил этот комментарий

Привет. Это не ты, случайно, писал игру “ Jelly in the sky”? Концепция и физика очень похожи

UPD: глянул посты. И вправду ты)
Будут ли апдейты игры ещё?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Я сейчас занимаюсь этой, новой игрой. Тут вся физика лучше, фичей больше.

2
Автор поста оценил этот комментарий
поищи научные статьи по Discrete Element Method (DEM), они есть для сыпучих сред, есть для связанных. возможно, поможет понять как правильно делать механический упругий отклик материала. но это тяжелые расчеты всегда, даже для гпу.
0
Автор поста оценил этот комментарий

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

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

4
Автор поста оценил этот комментарий
Посмотрите на игру "ноита", никакого желе
раскрыть ветку (3)
Автор поста оценил этот комментарий

Конечно, тамже объекты цельные, а не состоят из множества элементов.

раскрыть ветку (2)
4
Автор поста оценил этот комментарий
Как раз наоборот, там всё можно разложить на пиксели, пробурить, взорвать и т.д. там полная 100% разрушаемость мира, попиксельно
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Разрушаемость не имеет к этому никакого отношения. Это два кардинально разных подхода. Soft body и rigid body.

Автор поста оценил этот комментарий

В этом вся суть прорывных физических движков. В бимнг фольга, в тирдаун вафли, в ноита песок... хотя в ноита разные элементы реагируют по разному, но все еще топорно...

ебнешься наверное все процессы в одном месте собрать

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

В тирдаун не вафли

раскрыть ветку (2)
1
Автор поста оценил этот комментарий

А что? Всё ломается, крошится и ничего не весит

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Между ноитой и теардауном нет разнсицы в плане типа симуляции.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку