Автор Тема: Материалы. Геймдев. Стёкла в машине.  (Прочитано 3626 раз)

Оффлайн lexpartizan

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


Оффлайн Samovar

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #1 : 25 Май 2019, 04:28:25 »
Думаю, что самый оптимальный метод - это использовать в модели несколько материалов. На прозрачный материал не обязательно накладывать текстуру, да ещё и с альфа-каналом (логично, что текстура  с альфа-каналом будет жрать видеопамять, больше, чем без него, и впустую, особенно если большинство частей текстурного атласа непрозрачны)... и соответственно не нужно делать UV-развёртку для геометрии с прозрачным материалом. И ещё многое зависит от движка. Почитай инструкцию к движку, который ты используешь для игростроя, и о том, что его создатели пишут про прозрачность материалов и оптимизацию (Z-буфер, сортировку, отсечение и  т.п.)...Как правило, во многих предусмотрены оптимизированные на производительность материалы... С другой стороны, многие игровые 3D-движки поддерживают связи родитель->потомок для объектов, так что запилить несколькими объектами тоже можно...
« Последнее редактирование: 25 Май 2019, 05:02:04 от Samovar »

Оффлайн Николай Николаев

  • Житель
  • emerge --keep-going
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #2 : 25 Май 2019, 04:59:24 »
>> Думаю, что самый оптимальный метод - это использовать в модели несколько материалов.
... немного поясню - речь идет про мультиматериал, то есть использование нескольких материалов на одном объекте, то есть машина и стекла это один объект, но с разными материалами ...
https://docs.blender.org/manual/ru/2.79/render/blender_render/materials/assigning_a_material.html#multiple-materials
https://blogs.unity3d.com/ru/2017/08/01/multi-material-using-custom-inspectors-and-scriptable-objects-for-udim-materials/

Оффлайн lexpartizan

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #3 : 25 Май 2019, 15:12:22 »
Мультиматериалы довольно тормозят в годоте. Хотя это по слухам, надо проверять.
Пока склоняюсь к тому, чтобы сделать другим объектом.
По крайней мере это процесс мне понятнее.
Постараюсь освоить мультиматериалы, главное, чтобы они в развёртку не ложились. Ибо тут надо по максимуму экономить. Пока что мои модели настолько убоги, что сами они занимают куда меньше, чем текстурные карты.

Большое спасибо за разъяснения.

Оффлайн Samovar

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #4 : 25 Май 2019, 21:52:19 »
А под какую платформу пилишь игру? Если под Windows или Linux, то проще запилить на Irrlicht. В нём куча оптимизаций. Если шаришь в С++, то лучше его использовать.
Вот тут есть враппер Irrlicht 1.8 для Freebasic с физикой Newton или ODE. Или ещё проще запилить в UPBGE. Совсем просто в CopperCube, но Линукс в пролёте пока... Unity  и Unreal 4, не рекомендую, т.к. не знаком с ними...Хотя, на вкус и цвет фломастеры разные... Считаю, что для новичков в игрострое, в GoDot слишком много необходимости знания программирования... и его ЯП не вполне понятен...
« Последнее редактирование: 25 Май 2019, 22:42:09 от Samovar »

Оффлайн lexpartizan

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #5 : 26 Май 2019, 00:02:20 »
Пока ни под какую.
Пока пилю в свободное от безделья время какой-нибудь начальный стаф.
Буду делать что-то типа квеста-адвентюры с диалогами. Или выживастик.
Тут хочу заюзать реально работающие вещи, которые должны правдоподобно выглядеть.
Например, есть на ютубе Сергей Юрко, у него крайне прикольная солнечная станция, которая даже зимой способна выдавать пар и которую реально сделать в условиях постапокалипсиса. Туда можно прикрутить турбину теслы. Есть также реальный процесс изготовления топлива из пластика, верёвок из пластиковых бутылок и тд и тп. Короче, много всякой херни с ютуба, которую можно было бы обыграть.
Думаю, так будет интересней.

Вообще присматриваюсь к годоту.
1. Маленький и шустрый, красивый интерфейс. Люблю маленькое, шустрое, красивое. Типа блендера и годота))
2. Язык похож на питон.

Из недостатков:
1. Не тянет открытые пространства и вообще любит тормозить по рендерингу.
2. Язык не питон. То есть его знание потом не сильно пригодится. Есть возможность использовать Си-шарп и С++, но это сложнее и кривее.
3. Нет ассетов. Типа, воды и прочих колхозных шейдеров. Системы дня-ночи и тд.

Ирлихт, как по мне, давно мёртв. БГЕ выперли из блендера, так что его форки - то такое, тоже дело мёртвое, как по мне. Интересен был армори. Но он на Haxe, по нему нет книг и он врядли пригодится.

Из опыта - на С++ и SFML написал мини-клон Марио. С системой диалогов (чем я горжусь и считаю, что аналоговнет, одна небольшая функция способна обработать диалоги любой ветвистости, сложности, с условиями, событиями и тд, всё записано в самих диалогах в формате json), инвентарём, крафтом, крафтовыми фабриками (как самостоятельно работающими, вроде костра, пока есть топливо, так и обычным "верстаком"). Из плохого - всё продвигается ОЧЕНЬ медленно, я жутко ленив. Эту игрушку я писал полгода после работы и по выходным. И далеко не каждые выходные я мог заставить себя это делать)) По сути для меня там работы на месяц.

Если что ссылка на этот клон вот. Код и ресурсы там же. Для запуска кода необходимо подключить в визуал студио библиотеку SFML.
https://yadi.sk/d/IvuIovDvZLuvRA
Для прохождения босса задумано использовать тот факт, что вне экрана физика не работает. Ибо оптимизация. Хорошая концовка достигается фармом, ибо карты сохраняются и всегда можно вернуться.

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

В процессе немножко разочаровался в С++. В частности, в скорости его работы.
Было у меня так - подбираю вещь с земли, если инвентарь полон - то выкидываю. Если нова на неё наступаю, то снова подбираю (удаляю с карты) и выкидываю (добавляю на карту). Карты мизерные. Находятся в векторе (или в списке, сейчас уже не вспомню, надо код смотреть). Процесс подбора в игровом цикле может выполнится только один раз. Но если я иду в ту сторону, куда выкидывается вещь из инвентаря, то есть постоянно подбираю-выкидываю, то начинаются жуткие тормоза.  На современном компьютере на клоне Марио с картой, которая меньше килобайта весит.  я думал, что современный комп и С++ простят мне некоторую неоптимальность. Хрен там. В итоге перед тем, как взять вещь (удалить с карты), я проверяю влезет ли эта штука в инвентарь (код практически одинаков, то есть я ложу в инвентарь виртуально и если нет переполнения, то разрешаю реальные действия с картой). Тормоза исчезли. Так я к чему, если код не оптимизирован, даже С++ не спасёт.
А ещё я понял, что не собираюсь вручную освобождать память, ибо ленив. Вот.
А ещё понял, что нужно познать шаблоны проектирования, потому что даже в процессе разработки такой примитивной игры у меня началось пересечение классов. Например, инвентарь, чтобы выкинуть вещь на карту, должен иметь доступ и к карте (чтобы добавить что-то туда) и к координатам игрока (ну не в угол же выкидывать, надо рядом с игроком). И это сделало код довольно кривым. Упоминание одного класса в другом не позволило мне красиво разнести код в мультифайловый проект, так что всё в одну строку.

Оффлайн Samovar

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #6 : 26 Май 2019, 00:32:51 »
Могу пожелать только успехов. Ты явно шаришь больше чем я...
Касаемо "мертвецов"... они будут работать и на относительно старых компах... хотя, если ты  решил запилить игру с графикой AAA класса и вложить в её рекламную раскрутку столько же бабла и труда, сколько в её производсто, а не просто использовать "народное радио" в тырнетах :) , то странно, почему не юзаешь Unity или Unreal. Или я тебя не понял... и нафига тогда, зачем тебе извращаться с Substance Painter и PBR, ключевыми формами для генерации персонажей? Кстати, диздок планируемой игры у тебя есть, или нечто на него похожее? Хотя, думаю, что нет, т.к. ты даже пока не определился с платформой... Ещё раз успехов в твоём хобби!
« Последнее редактирование: 26 Май 2019, 00:52:10 от Samovar »

Оффлайн lexpartizan

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #7 : 26 Май 2019, 00:55:00 »
нафига тогда тебе извращаться с Substance Painter и PBR

Ха! Это не извращение. Процесс текстурирования в сабстенсе довольно прост и с полным отсутствием таланта даёт неплохой результат. На сабстенс шаре есть около полутора тысяч PBR материалов, так что мне проще использовать их, чем искать текстуры. А ведь текстурировать хоть как-то надо. Короче, я реально в восторге от того, что проблема с текстурированием (хоть каким-то, я не требовательный) решилась. А сразу PBR - это большой плюс. Выглядит ПБР замечательно. А если оценивать сабстенс, как просто софт - то он тормозной и глючный. Но проблему решает относительно легко и просто.

Шейпкеи - у меня был месяц отпуска и я искал чем его занять. Проблема генератора персонажей весьма серьёзная,  а я увидел путь её решения через использование моделей из мейкхумана с шейпкеями. Отпуск закончился и я теперь немножко на проект забил. В принципе поставленная задача решена, с большими оговорками, конечно. Есть над чем работать. Естественно, есть задумка использовать его в проекте, как без этого?

Диздока, конечно, нет. Да и не нужен, я ж не собираюсь заниматься профессионально. и реально закопаться насмерть в большом умном проекте.
Нет, как и в случае с клоном Марио (где всего три уровня), там будут реализованы базовые механики, как основа. А дальше уже можно будет подумать об игре. Может чего другого захочется.

Юнити и анреал много весят, и они какие-то попсовые, чтоли. Годот мне показался проще и симпатичнее. К тому же я тогда хотел, да и сейчас не против, учить питон. А ЯП лучше учить программируя игры, ибо это и так скучно и нудно.

Оффлайн Samovar

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #8 : 26 Май 2019, 01:21:39 »
Цитировать
А сразу PBR - это большой плюс
??? нафига PBR в инди-игре не AAA-класса?
Я вообще не знаком с Substance Painter, увы, т.к. он чересчур требователен к оборудованию, но знаком с предыдущей ему бесплатной прогой Map-Zone.

Цитировать
Диздока, конечно, нет.
Это огромный минус... как не может быть снят нормальный мульт или кино, без литературного, и основанного на нём режиссёрского сценария и раскадровки, так не может быть запилена более-менее серьёзная инди-игра без диздока (даже 2D-казуалка)... Будут только тесты механик и другие тесты... и прочее, но игра в итоге никогда не выйдет :)

Вообще, на стадии проектирования, как я понял из прочитанного мной по игрострою, во многом плюётся на графику (что есть правильно), а упор делается на играбельность...
Думаю, ты совершаешь ошибку, сразу занявшись моделированием и шлифованием игрового контента, не имея ни плана игры, ни, тем более играбельной её версии с упрощёнными примитивами, а только смутные о ней представления у себя в голове. Но в принципе, даже если нет диздока, то с помощью BGE (или UPBGE), того же CooperCube, можно создать примитивный играбельный прототип (концепт игры). А потом уже ёго допиливать и шлифовать на ином движке... Странно, что мало кто это делает, хотя, BGE именно так и позиционировался разработчиками Blender, как, в основном, средство для быстрого прототипирования игр, а не создания их законченных оптимизированных версий..
С другой стороны: хозяин - барин... делай как знаешь.... Но разве не логично вначале создать прототип игры с упрощённой графикой и написать диздок?

Вот я сволочь, навязчиво ко всем приколёбываюсь с прадигмой системного и методичного подхода в их творчестве: и к "художникам", и к "дизайнерам", и к "режиссёрам-мультипликаторам", и к "гейм-дизайнерам"...навязываю им концепцию работы: от большого к малому или от общего к частному... вероятно, я что-то делаю не так :)
И как тут не упомянуть политику в связи с этим? Вот в СССР были пятилетние планы не спроста...  а кто говорит, что без стадии планирования в живом творческом процессе созидания можно обойтись, тот вам нагло врёт, при этом сам используя планирование на 100%, с учётом финансовых рисков, политической ситуации, статистики техногенных и природных катастроф и прочего  :)
« Последнее редактирование: 26 Май 2019, 02:22:12 от Samovar »

Оффлайн lexpartizan

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #9 : 26 Май 2019, 09:16:11 »
нафига PBR в инди-игре не AAA-класса?
Зачем отказываться от ПБР, если он уже есть и довольно легко, благодаря сабстенсу?
Там можно как заморачиваться с наложением грязи, пыли и прочими мелочами, дорисовывать вручную, а можно тупо наложить разные готовые ПБР-материалы. Что я и делаю. Результат для инди неплох. Выглядит хорошо. Сделано быстро и без заморочек. А что ещё надо? Зачем отказываться от ПБР, если проще сделать сразу с пбр? Потому что ты инди? Ну так может и от блендера отказаться в пользу пейнта 3д?

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

Вот в СССР были пятилетние планы не спроста...
Кстати, где он? И где его планы?

то с помощью BGE (или UPBGE), того же CooperCube, можно создать примитивный играбельный прототип (концепт игры).
А ещё можно сделать это с помощью годот.

Оффлайн Samovar

  • Житель
Re: Материалы. Геймдев. Стёкла в машине.
« Ответ #10 : 26 Май 2019, 11:03:10 »
Цитировать
Зачем отказываться от ПБР, если он уже есть и довольно легко, благодаря сабстенсу?
Ты ещё запили реалтаймовый рэйтрейсинг в игре с помощью шейдеров, а потом спрашивай, почему так тормозит? И что лучше для производительности игры в материалах? :)
Цитировать
Кстати, где он? И где его планы?
Россия - правопреемник СССР (если ты не знал) и использует все наработанные им технолигии. И многие нагло украдены пиндосами и другими нагличанами и цэевропэйсами в месте с разработчиками в 80-е - 90-е годы :)
Цитировать
А ещё можно сделать это с помощью годот.
Можно, но это будет сложней в разы...
Цитировать
Это огромный пофиг. У меня нет плана делать законченный коммерческий продукт.
Тогда зачем заморачиваться с оптимизацией текстур и прочего?

Вот, грубо, этапы игростроя https://docs.google.com/document/d/1hcDZmgBSvKsejK6XZEV7C--6PrfgbDdUuzwQ7y_yp9k/edit#heading=h.9rpwe3tpa51d:

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

Альфа
   Продвинутые препятствия
   Продвинутые враги
   Грубая графика / музыка / звуки
   Грубое представление уровней и их содержимого (ресурсов)
   Игра должна быть полностью законченной, но не оптимизированной

   Содержимое (ресурсы) игры может быть в виде грубых набросков, но должно быть чётко определено
Бета
   Полный комплект препятствий / врагов
   Все уровни в игре завершены и готовы
   Финальное содержимое (ресурсы: графика, звук и т.п.)
   Отладка, отладка, отладка
   Оптимизация, оптимизация, оптимизация
Гамма / дельта
   Предвыпускные версии (релиз-кандидаты)
   Завершение отладки
Омега / финал!
   Готово!


А ты начал зачем-то заморачиваться на производительность, не имея даже играбельной пре-альфы ...
Взял бы уже готовые халявные модели из инета для начала, в качестве временной графики, а не мудрил со всякими субстанс-пэинтарами и текстурными атласами (это дело последнее)... заодно бы и поглядел на текстуры и материалы в этих моделях.
« Последнее редактирование: 26 Май 2019, 11:29:33 от Samovar »

 


Яметрика

* По форуму

* Рекламный блок

* Последние вложения

1 (1).png
Скачано: 67
Автор: LEXA ANЭGROWND
blender.png
Скачано: 77
Автор: ipv2007
4.png
Скачано: 99
Автор: hiroyukiss
2.png
Скачано: 121
Автор: hiroyukiss

Скачано: 111
Автор: Dilifa12