Воскресенье, 20 Сентября 2020, 03:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » puksus4 [43]
Результаты поиска
puksus4Дата: Среда, 24 Июня 2020, 14:30 | Сообщение # 1 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
Сделяль дымочек. Это правда уже не относится к пиксельной физике, ну да ладно))

ВеДос

Как сделано:
1) Дым испускают частицы
2) Для дыма есть сетка с размером ячейки 4х4 пикселя покрывающая весь экран и даже чучуть больше
3) каждый кадр в отдельном компут шейдере частицы фигачат чучуть дыма в сий буфер в нужной позиции
4) периодически вызывается компут шейдер отвечающий за распространение дыма.
Берём дым из соседних тайлов, из текущего, смешиваем и также уменьшаем его плотность чтоб он пропадал. Пишем в отдельный буфер
5) свапаем буфера (двойная буферизация для дыма, поскольку писать "по месту" здесь не получится)

Рендер.
6.1) При инициализации создаём вертексный буфер по вертексу на каждую точку сетки дыма. Но при этом в вертексы ничего не кладём вообще. Вертексы как бы есть, но они виртуальные чтоли.
6.2) Фигачим индексный буфер, для того чтобы описать каждый треугольник сетки. У меня получилось что в индексном буфере лежит ~700000 значений
6.3) В вертексном шейдере поскольку вертексы у нас описывают вертексы сетки, а не ячейки, берём из буфера дыма соседние для точки вершины и усредняем. Поскольку в вертексах у нас ничо нет, определяем позицию точки через SV_VertexId
6.4) В пиксельном шейдере тупо выводим цвет как есть исходя из количества дыма и его цвета с полупрозрачным блендом.

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


Сообщение отредактировал puksus4 - Среда, 24 Июня 2020, 14:41
puksus4Дата: Среда, 17 Июня 2020, 08:12 | Сообщение # 2 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
Цитата puksus4 ()
Даже если хотите юзать константное капнутое время кадра - лучше юзайте дельта тайм. Иначе поменяете кап - получите другую игру.


Как я уже сказал 2 проблемы:
1) А вот захотите 75 вместо 60 - и у вас всё что в мире есть - ускорится.
2) при просадке фпс весь мир замедлится

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


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 08:13
puksus4Дата: Среда, 17 Июня 2020, 08:04 | Сообщение # 3 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, Анимация длится некоторое время. Оттолкнётесь от количества кадров - получите что длительность анимации будет варьироваться. Получите просадку фпс относительно капа - весь мир замедлится.
С дельтатаймом высчитываете какой кадр отобразить сейчас. Если фреймтайм слишком большой и некоторые кадры из анимации пропустились - это абсолютно нормально.

Есть правда такие штуки как физика. Она скорее всего будет работать с константным фреймрейтом по схеме: ждём пока не накопится 1\60 секунды. Накопилось - при вызове делаем шаг симуляции и сбрасываем счётчик, иначе не делаем ничего вообще.

Отсюда следует что если вы допустим закапите фпс на 100, будете при этом иметь физику работающую на 60 фпс - то в пределах от 60 до 100 кадров в секунду у вас мир будет абсолютно одинаково себя вести

А если у вас скажем 30 кадров в секунду, то воизбежание взрыва перфоманса (как бы если у нас проблемы с перфомансом - нелогично нагружать его ещё больше), физика сделает только 1 шаг симуляции а не 2 за кадр. Тут уже пойдут несостыковки. Либо учитывайте это в своём дельта тайме и замедляйте всё, либо миритесь что при просадках физика может работать медленнее чем ваши другие расчёты.

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


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 08:05
puksus4Дата: Среда, 17 Июня 2020, 07:48 | Сообщение # 4 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
длительность кадра.
Простейшее использование:

speed += acceleration * dt;
pos += speed * dt;

Это не абсолютно полностью верно наверн, но достаточно точно. За полной точностью надо проинтегрировать. Возможно то же самое выйдет.

Я использую в качестве этой величины длительность предыдущего кадра по той простой причине что длительность текущего неизвестна

Даже если хотите юзать константное капнутое время кадра - лучше юзайте дельта тайм. Иначе поменяете кап - получите другую игру.


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 07:51
puksus4Дата: Среда, 17 Июня 2020, 07:42 | Сообщение # 5 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, Ну игры щас кто попало делает. Уверен есть даже те, кто лочат фпс с целью избавиться от зависимости от дельта тайма))
Либо исходя из нагрузки на комп вырубают, или чтоб избавиться от разрывов картинки. Кароч скока игроделов - столько и игр. Найдутся всякие. Ктото просто посчитает что вот я уверен что всинк нужен\не нужен и мне пофиг чо думаешь ты, дорогой мой пользователь, так что хрен отключишь\включишь)
Да и важно ли это? Серьёзные дядьки обычно дают возможность нажать галку)
puksus4Дата: Среда, 17 Июня 2020, 07:24 | Сообщение # 6 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, чот я не понял суть вопроса тогда, задай его заново другими словами)
puksus4Дата: Среда, 17 Июня 2020, 07:17 | Сообщение # 7 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
Лол, у меня вообще максимально просто))))
void Graphics::Renderer::present()
{
Graphics::dx11Graphics->getSwapChain()->Present(vSync ? 1 : 0, 0);
}

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


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 07:18
puksus4Дата: Среда, 17 Июня 2020, 07:11 | Сообщение # 8 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
Насколько я знаю, с помощью std::this_thread::sleep_for можно задать интервал ожидания хоть с точностью до микросекунды, да толку мало, как я понимаю никаких гарантий сия ф-ция не даёт. И именно она корячила мне перфоманс со старой реализацией, когда я пытался ей в цикле ждать пока потоки не завершатся чтобы завершить кадр
(Да, самому стыдно что писал такой трешак, но щас уже имею адекватную реализацию)


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 07:12
puksus4Дата: Среда, 17 Июня 2020, 07:02 | Сообщение # 9 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
Цитата DivES ()
А то я пока что только микросекундами оперировать могу.

Дык, микросекунда - это в 1000 раз меньше, чем ms)

Это у меня не ограничения, это замеры при максимальной работе железа
Пользую ф-ции
QueryPerformanceFrequency
QueryPerformanceCounter

Цитата DivES ()
Даже чёткий кап на 60 кадров сложно реализовать (всегда будет погрешность)

Когда я пилил многопоток и синхронизировал потоки слипами - был лютый трешак с производительностью. Когда переписал под нормальный таск пул с std::conditional_variable стало на порядки лучше.

Даже не знаю как правильно капить перфоманс кроме как всинком. К слипам отношусь настороженно.


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 07:06
puksus4Дата: Среда, 17 Июня 2020, 06:44 | Сообщение # 10 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, В моём случае и над тем и над другим)
Кап можно, но мне нужно знать актуальный перфоманс игры. Я себе метрики вывожу, что скока жрёт. Если закапить - всё это будет хуже заметно. А так я точно вижу когда какой перфоманс и если низкий - то глянуть что больше всего жре.

А в паблик релизе - да, сделаю ограничитель)

кортинка

Я кстати недавно троекратно повысил перфоманс - всётаки профайлинг - полезная вещь
Нашёл что больше всего жрал перерасчёт мип уровней (и там был очень жирнющий баг который и жрал перфоманс). + Жрал, кто бы мог подумать, дебажная рисовка физики)))
+ улучшил многопоточность пиксель физики и вуаля +200% к фпс в худших случаях для симуляции.


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 07:06
puksus4Дата: Суббота, 09 Мая 2020, 09:45 | Сообщение # 11 | Тема: Набираю группу для изучения C++
частый гость
Сейчас нет на сайте
Когда я ещё учился в 10-м классе, я на летних каникулах, если не ошибаюсь месяц потратил чтобы в полноте объять 75% предложенных тем. Занимался довольно плотно, часа по 4-5 в день. Как раз изучал с нуля. Программировать, понятно, что не научился, просто понял эти темы, понял как всё внутри работает и понял, как надо всё это использовать, но не понял, в каких случаях. Учителя не было, но была превосходная на то время книжка (А.Хортон - Хортон_Visual C++ 2010 - Полный курс. Впоследствие перечитывал её ещё не один раз).

Далее уже было дело техники и практики - пилил свои недопроекты, учился на своих ошибках, понимал как надо, как не надо. Начал рационально юзать stl, шаблоны, начинал юзать новые фичи новых стандартов и т.д.
Будучи в универе, на олимпиадном программировании освоил основы алгоритмов (тоже очень важная тема. Необязательно знать 100500 алгоритмов, но понимать что такое сложность алгоритма, и сложности стандартных алгоритмов stl просто необходимо + появится понимание, как оно всё внутри работает).
Если изучать с++ и вообще программирование с нуля - я бы дал срок в 2 года, прежде чем чувак сможет полноценно писать более-менее качественный код.

В принципе при наличии учителя, которому можно задавать вопросы, и который выдаст краткую выжимку полезной информации - то за 2 месяца, думаю, уже вполне реально охватить все указанныце темы более-менее полно (только теория). + месяц на простейший проект-практику, чтобы хоть как-то закрепить материал. Но, это при наличии большого количества свободного времени, при самостоятельной работе дома и повторением после пар. И это будут только основы языка.

Кроме того, 80% этого материала забудется в ближайшие 3 месяца после курса, если эти знания активно не пользовать после курса, т.к это новые незакреплённые знания.

Насчёт срока в неделю - вижу это возможным только при хорошем знании близкого к с++ языку, и то опять же при наличии огромного количества свободного времени. Индивидуальных особенностей плюсов более чем достаточно, чтобы убить на них неделю, притом только на основы.

Это моё имхо, основывающееся исключительно на опыте самоличного изучения плюсов и программирования. И попыток изучать другие языки, но безрезулльтатные в силу отсутствия реальной заинтересованности и нужды.
Ещё пример приведу. Я изучал lua уже достаточно хорошо умея программировать на плюсах. Чтобы охватить все темы, мне понадобилось чуть меньше чем 2 недели активных занятий после работы. Эти темы я особо не закреплял, прошло полгода и 80% материала я уже забыл.
puksus4Дата: Пятница, 08 Мая 2020, 22:50 | Сообщение # 12 | Тема: [Rigidbody] Применение сил, и скрепление объектов
частый гость
Сейчас нет на сайте
Ну я не знаю какая физика в юнити используется, но в своём проекте (юзаю Bullet physics) я похожую задачу решал Compound шейпами. Пихал в ОДНО Rigidbody группу из склеенных примитивов.
Выглядит вот так.
https://prnt.sc/sbzxv4

Я б очень удивился если б в юнити так было бы нельзя.


Сообщение отредактировал puksus4 - Пятница, 08 Мая 2020, 22:56
puksus4Дата: Пятница, 08 Мая 2020, 07:39 | Сообщение # 13 | Тема: А кто на чём музыку для игр делает?
частый гость
Сейчас нет на сайте
Есть Reaper, чья лицензия стоит 60 баксов в отличии от всего остального барахла по 300 - 1000 баксов.
Инструментов в нём нету, это считай просто чисто программа для создания музыки. Зато инструменты на ура качаются в виде плагинов на любой вкус и цвет. Плагины бывают как бесплатные так и платные.

Сам я его особо не юзал, так что конкретнее ничо сказать не могу. Но его хвалят юзеры.
puksus4Дата: Четверг, 07 Мая 2020, 18:23 | Сообщение # 14 | Тема: Что происходит в голове у этого человека?
частый гость
Сейчас нет на сайте
Цитата pixeye ()
Но выпуск своей игры так же мало относится к творчеству. т очно так же может накапливаться говнокод, просто он будет твой

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

Добавлено (07 Мая 2020, 19:06)
---------------------------------------------
Кстати, насколько может быть полезным распихивание игры по торрентам, на всякие small-games, и им подобные. Возможно на первых порах получение доли известности важнее доли денег?

Сообщение отредактировал puksus4 - Четверг, 07 Мая 2020, 18:24
puksus4Дата: Четверг, 07 Мая 2020, 17:23 | Сообщение # 15 | Тема: Что происходит в голове у этого человека?
частый гость
Сейчас нет на сайте
AlexanderBekker, pixeye, спасибо большое за ответы.

Цитата pixeye ()
Если рассматривать как ремесло то программисту с навыками выгоднее работать на фрилансе с несколькими большими заказчиками или работать в большой компании нежели заниматься самостоятельной разработкой игры. Игры не про программирование и требует гораздо больше навыков и сил чем часто есть у одного человека, а в современном мире с повышенными требованиями к качеству и перегреву с кол-вом игр так вообще нужно из кожи лезть.

Ну лично я уже работаю в крупной конторе прогером 2 года сразу после выпуска с универа и вполне успешно, но это дичайше бесит, что пишешь чужую, тебе не нужную и не интересную игру, что отнимает кучу времени и сил, которые мог бы потратить на свой, интересный проект, который пусть даже заработает меньше. Главное чтоб жить на чтото было. Крупная контора - это нифига не творческий процесс, это перелопачивание тонн говнокода написанного 10 лет назад пьяным программистом, никто уже не помнит как это работает, всё это связано с 1000 других мест в коде. 99% задач - максимально унылые баги, 95% времени тратишь на то чтоб понять как чтото там вообще работает, и что с этим можно сделать не отломав остальное. Лютая рутина, но притом рутина сложная. В своём же проекте ты всё знаешь, знаешь чего хочешь, пишешь свой код, всё ровно так как хочешь ты. Моя влажная мечта - доделать и продать наконец свою первую игру и уволиться нахрен, если продажи пойдут хорошо.
Вот собсно потому и интересно, какие есть возможные перспективы)
puksus4Дата: Четверг, 07 Мая 2020, 14:29 | Сообщение # 16 | Тема: Что происходит в голове у этого человека?
частый гость
Сейчас нет на сайте
AlexanderBekker, Кстати, я так понимаю, вы в стиме уже выпускали игры. Разовый взнос 100$ не напрягает.
Можете поделиться опытом, сколько приблизительно может заработать мелкая но качественная 2д игрушка, с издателем, без издателя, с ручным пиаром, без издателя и пиара вообще?
Если не секрет)
puksus4Дата: Среда, 06 Мая 2020, 14:30 | Сообщение # 17 | Тема: EggsInCorn
частый гость
Сейчас нет на сайте
DivES, И от меня спасибо, не знал про подписи
puksus4Дата: Среда, 06 Мая 2020, 13:22 | Сообщение # 18 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, а, ну анимация пиксель арта - вероятно да, долгий процесс.Благо в моей игре не понадобится. И наверное я бы для начала попробовал бы даже для пиксель арта фигачить костяную анимацию, а не классическую, ибо ну нафиг столько работы.
Но, классическая, конечно, красивее будет выглядеть.

Добавлено (10 Мая 2020, 00:11)
---------------------------------------------
Новый видос!
https://youtu.be/yM0U6-WOwL8

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

Добавлено (17 Июня 2020, 04:05)
---------------------------------------------
Нимножка стрельбы (о боже, шок контент)
вЕдос

Пульки обрабатываются рей трейсингом, объёмные взрывы (в видосе нету) засчёт ghost objects из буллет физикса
Мой компуктер на данной сцене показывает с кучей частиц и активным разрушением 2000 кадров в секунду. Планирую чтоб игора на самых сраных калькуляторах шла
Кстати физику пиксельных тел считаю многопоточно.


Сообщение отредактировал puksus4 - Среда, 17 Июня 2020, 06:30
puksus4Дата: Среда, 06 Мая 2020, 13:13 | Сообщение # 19 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
DivES, Пиксель арт на достаточном уровне чтоб нарисовать кораблик из видео я поднял за 3 дня.
Чтобы научиться моделить мне понадобится 3 месяца.

И даже на своём нубском уровне я нарисовал этот кораблик часа за 3.
Модель нормальную я бы делал, уверен, дольше

А анимации создавать - я конечно не владею темой, но помоему полная жесть.
Я когда моделил болванчика и загрузил в свой движок, прошёл на простейшем уровне все этапы, создание модели, развёртку, текстурирование, создание скелета, развесовку, анимирование.
Мне показалось анимирование самым сложным этапом

Добавлено (06 Мая 2020, 13:15)
---------------------------------------------
Кроме того, пиксель арт рисуется из фиксированного набора цветов.
Если не устраивает цветовая гамма картинки, эти цвета можно заменить, не тыкая индивидуально каждый пиксель
Затем внести небольшие корректировки - это однозначно процесс быстрый.

Сообщение отредактировал puksus4 - Среда, 06 Мая 2020, 13:13
puksus4Дата: Среда, 06 Мая 2020, 12:55 | Сообщение # 20 | Тема: Демонстрация попиксельной физики
частый гость
Сейчас нет на сайте
А ну ещё в моём случае связь с рендером - нужно постоянно обновлять текстуры тел после столкновений, и даже ещё чаще потому что я планирую сделать температуру пикселям. Они будут плавиться, с них будет слетать краска.

Добавлено (06 Мая 2020, 12:56)
---------------------------------------------
Цитата DivES ()
движок изначально рассчитан на 3d физику? Просто и правда, наверное, избыточно его использовать для 2d проекта, когда есть Box2D

Да. Но если достаточно просто и быстро - почему бы и нет?

К тому же разобравшись в буллете - сможешь юзать его и в 3д играх, которые я собираюсь делать в будущем.

Добавлено (06 Мая 2020, 12:57)
---------------------------------------------
Я ушёл в 2д по ц-м причинам:
1) сложность создания контента в 3д
2) очень хотел сделать именно ту игру которую собсно щас делаю - с попиксельной физикой

а так 3д меня не пугает

Добавлено (06 Мая 2020, 13:04)
---------------------------------------------

Цитата DivES ()
Но спасибо за ссылки, посмотрю обязательно!

Тока осторожно, по первой ссылке просто лютая дикция у чувака)) Но тем не менее объяснения максимально внятные.


Сообщение отредактировал puksus4 - Среда, 06 Мая 2020, 12:56
Форум игроделов » Записи участника » puksus4 [43]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2020
free games download
Рейтинг