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
Автор поста оценил этот комментарий

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

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

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

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

Все из говяжьего студня, даже камни ) А как же хрупкое разрушение?

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

будет!

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

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

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

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

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

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

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

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

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

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

Охренеть, эффект Киберпанка-Бургеркинга или как его там. Вчера с другом обсуждали, к какому процессору какая видеокарта полагается. Я говорил, что это все хрень, потому что задачи бывают совршенно разные - для киберспорта и для красивого 4к с лучами баланс процессора/видеокарты будет совершенно разный. Не говоря уже об уникальных проектах.. И начинаю вспоминать.. Когда-то на Пикабу читал пост одного чела, который сделал игру с полностью разрушаемым миром, состоящим из частиц, который работает на видеокарте. И что я вижу сегодня? Пост с подозрительно похожим проектом. А в профиле те самые посты, которые я видел 7 лет назад, и вспомнил о них вчера)

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

Чудеса!

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

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

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

Если вам это нравится, значит далеко пойдёте.

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

Если речь про Unity (судя по одному из тэгов), то в ней уже реализована 2D физика, зачем изобретать велосипед?

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

Я покатался на велосипеде, он не летает, мне понадобился семолёт.

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

Шарпик? Юнити вывезет такого плана игру? Мне казалось пиксель-физику обычно на кастоме делают и на плюсах, все же обильные вычисления в реалтайме...

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

Я использую compute shader, чтобы вся физика выполнялась на гпу. Написано на HLSL, это как плюсы, но для видеокарты.

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

А где стек разработки? Так не интересно ...

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

Юнити

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

Выглядит круто, но мне кажется, что геймдизайнеры не любят такое. Слишком много случайностей, баланс не рассчитать.

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

Это не проблема, так как я выступлю и как геймдизайнер. Мир инди-разработки суров.

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

Думаю, мир станет лучше, если можно будет.

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

Физика твердых тел считается на гпу? А как физика твердых тел соединяется с физикой частиц?

Тоже делал свои физические движки, хотел даже соединить симуляцию жидкости Навье стокса с физикой твердых тел. Были идеи как это можно сделать, но руки не дошли

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

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