Войти
ПрограммированиеФорумГрафика

Рендер как в Minecraft-е - кто нибудь знает основные "секреты"? (97 стр)

Страницы: 196 97 98 99101 Следующая »
#1440
17:07, 26 дек. 2017

>https://www.youtube.com/watch?v=MVdwhTCunpE - 2017 год.
ой, ФУУУУУУ!
Деревья должны быть моделями. Точка. Или рассыпаться при подрубании, как в Террарии.
Вот это вот "подрыл - а оно висит в воздухе" ВЫБЕШИВАЕТ. Особенно после AoS, где я один раз заработал четверной фраг, подкравшись снизу и перепилив из минигана мостик с увлёкшимися кемперами. Все четыре понесли несовместимый с жизнью урон типа Аааа-хряп.

>это ад и анархия. Все дома, построенные игроками будут кривые, косые и с разной толщиной стен.
Естественно, шаблоны и префабы во все щели. Испытано на собственной шкуре на примере того же AoS.
Шутер, где надо строить по одному кубику - адЪ. Тоже, конечно, весело по своему - но, блин, 80 минут лимит матча. Восемьдесят! Минут! И все игроки вооружены мосинками, которые инстаджибят при хедшоте, безо всяких намёков на то, откуда прилетело.
Шутер, где каждый класс умеет срать префабами, в десять секунд высирая целый кособокий форт - это реально весело, и лимит матча 15 минут естественнен.  https://www.youtube.com/watch?v=_wJiagkYmgA https://youtu.be/shwgj8sJeco?t=193

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

Потом, должен быть на выбор доступен уровень интерфейса типа Master of Magic: "постройте кузницу, мне насрать, где она будет стоять, но чтобы мечи для арми были!"

Копать?.. Взял дезинтеграторную дрель, вжжжик - и готов двухметровый тоннель. Опять же, прообраз - дрель-пушка из AoS
https://www.youtube.com/watch?v=LaXjrHsTgUQ
https://www.youtube.com/watch?v=zIukGalDT9g
https://www.youtube.com/watch?v=qQjsDcdghnQ


#1441
17:37, 26 дек. 2017

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

А насверленные игроком дырки - лениво обходятся волной A* и строится навигационная сетка. Причём, ИИ может достаточно тупыми методами проверки целостного объёма (большой цилиндр коллайдить, например) оклассифицировать ноды этой сетки на "коридоры", "комнаты" и "ямы под открытым небом".

#1442
20:34, 26 дек. 2017

Cheb
> миньоны, быстро сообразили мне комнату такую-то вот в этом примерно месте
См. Castle Story. Там идея вроде бы неплохая, но неудобное управление и кривая камера убивают весь геймплей на корню. Сейчас может и поправили, но когда я смотрел - был ужоснах.

Ставил на майн Minions mod. Там можно себе призвать мелких трудоголиков и давать им задания. Вариантов, правда, маловато. Копать шахту 4*4 вниз до бедрока, ровнять площадки/выкапывать боксы, рубить деревья, копать горизонтальные шурфы 2*1, таскать ресурсы в сундук и носить животных/хозяина.
Довести бы этот мод до ума, и на нём потренироваться в написании ИИ, но у меня почему-то ни разу не получилось (пробовал трижды) правильно настроить нетбинс/яву/майндевелоперпак, и, соответственно, не получилось скомпилировать мод из исходников. Видимо плохо старался.

В AoS не играл, по видосам понятно, о чём речь.

И, раз уж тема про рендер, то интересно было бы узнать, как в первых версиях Блокскейпа (2012 года) чувак делал такое приятное сглаживание кубиков. Может есть у кого идеи/наработки на эту тему?

#1443
10:39, 27 дек. 2017

СерыйМыш
>
> И, раз уж тема про рендер, то интересно было бы узнать, как в первых версиях
> Блокскейпа (2012 года) чувак делал такое приятное сглаживание кубиков. Может
> есть у кого идеи/наработки на эту тему?
Вероятно какие то свойские правила выбора сглаженной геометрии куба на основании наличия соседних кубов.

#1444
21:36, 28 дек. 2017

denesik
> Вероятно какие то свойские правила выбора сглаженной геометрии куба на
> основании наличия соседних кубов.

denesik, ты прям лейтенант очевидность )
Понятно, что правила сглаживания проверяют соседние кубы. Вопрос был не об этом, а о механике процесса.
Что он там делал с мешем? Судя по всему добавлял поверхностей, но как? При сборке/подготовке меша - не вариант, будет всё тормозить адски.
Может быть какой-то хитрый ход с вертексным шейдером?
Надо попробовать почитать его старый форум, или где он там про свой движок пять лет назад хвастался.

Кстати, вдогонку к моему недавнему посту - автор Блокскейпа замутил очередной майнкрафтоподобный движок, но игру так и не сделал.
То же самое наблюдаю у Scrap Mechanic. Обещали-обещали сюжет и режим выживания, да так и нет его до сих пор, зато народ вовсю резвится и строит всякие убермашины.
Может есть смысл пойти от обратного? Сначала писать всю механику игры, а рендер взять от любого опенсорсного клона майнкрафта, не особо заморачиваясь с качеством картинки? А уж когда всё будет работать, тогда уже озадачиться красотой. Как жизнь показывает, графон сделать гораздо проще, чем всё остальное.
 

#1445
21:58, 28 дек. 2017

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

Начинать надо с брашей-комнат, у которых задана только форма и толщина стен. Да, получатся бетонные коробки. Но тут важно спросить себя: целью геймплея является очередной конструктор-песочница, коих уже тьма, или что-то более интересное и конкурентоспособное?

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

Далее добавляется конструктор домиков-префабов, которые можно втыкать в местность одним кликом (и с игрой уже идёт куча таких префабов).

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

Дальше, должен быть механизм автоматического втыкания домика. С выравниванием по двери, вкапыванием в ландшафт и просто вырубанием в скале, если стены наложатся на оную.
(т.е. у домика должен быть снизу браш "фундамент", который внедряется в грунт, обрезаясь по нужной глубине)
Получаем автоматом реалистичный (а, главное, наглядный) процесс строительства: сначала ИИ выкопает яму, потом заложит фундамент, а уже затем возведёт стены.

>Сначала писать всю механику игры,
Я так и делаю. Пишу роман, чтобы на сюжетных поворотах обкатать основные игровые механики.

#1446
10:20, 29 дек. 2017

СерыйМыш
> При сборке/подготовке меша - не вариант, будет всё тормозить адски.
делаешь это в отдельном потоке и ничего не тормозит

#1447
10:39, 30 дек. 2017

Cheb
> целью геймплея является очередной конструктор-песочница, коих уже тьма, или
> что-то более интересное и конкурентоспособное?

А как насчёт конкурентоспособной песочницы? )
Пару лет назад я писал диздок на такую песочницу. Рабочее название - Архитектор. Основная идея - на старте игрок постепенно развивает свои умения через взаимодействие с неписями и выполнение заданий. В начале игрок находит первого "учителя", тот озадачивает игрока простейшими заданиями - выровняй площадку (даёт простую лопатку, копай), построй забор (из чего строить? - из палок. где палки? - вон деревья, на топор.), загони свиней в загончик (как? - палкой), сделай им кормушку (как? - выдолби из толстого бревна, топор есть), накорми (чем? - свари им жрачку. из чего? - накопай на грядке свеклу и картошку, лопатка есть. как варить? - вот тебе котёл, набери воды, построй очаг из камней, разводи костёр из палок. где камни? - на кирку, надолби булыжника вон там.), и так далее.
Сначала игрока учат выполнять дискретные действия - копать по одному блоку, рубить дерево, отрубать от него ветки, строить забор из отдельных палок, долбить камень.
Затем задания сложнее: построй навес (как? - вот чертёж, нужны средние брёвна, палки, доски. как получить доски? - на пилу) - это первый элементарный блюпринт, по которому игрок строит сам. Построй сарай - более сложный блюпринт, игрок корячится, строит, учителю надоедает, он даёт игроку двух помощников. Игрок учится управлять помощниками, сначала даёт дискретные задания (это бревно сюда, это сюда, напилите досок), затем, когда задания усложняются, можно давать более объёмные задачи (вот здесь - стена из брёвен, брёвна вон из тех деревьев), прокачивается профессия "строитель" до уровня "бригадир". Постепенно задачи усложняются, добавляются новые элементы - двери, окна, мебель и т.д. Идёт начальная прокачка вторичных специализаций - столяр, каменотёс и т.п. С определённого момента игрок получает оплату за свою работу.
Далее прокачка выглядит так: нпс дал задание, озвучил стоимость, дал чертёж. Можно нанять неписей-помощников, они будут строить, причём если уровень неписей низкий, то стоят они дёшево, но ими надо командовать как таджиками - это сюда, это сюда. Более дорогие неписи имеют более высокий скил в профессии, им можно ставить более крупные задачи. Либо можно ковыряться самому, тогда вся оплата останется у игрока, но скил в профессии не растёт.
На определённых этапах неписи перестают всё разжёвывать, и дают более размытые задания - вот тут нужен жилой дом. Как строить? - по типовым чертежам. Где чертежи? - у городского архитектора. Нужно найти архитектора, выполнить пару его заданий на репутацию, подтвердить уровень профессии, купить у него подходящий чертёж, нанять работников, купить материалы, построить, получить оплату. Чем выше уровень профы (строитель-бригадир-прораб-архитектор), тем больше можно нанять неписей, тем сложнее задания можно получить, и тем выше оплата. При выполнении простых одинаковых заданий уровень перестаёт расти, нужно стремиться брать всё более сложные задания.
В теории, в многопользовательском режиме в качестве помощников могут выступать игроки с более низким уровнем профессии. Игрок нарезает задачи, помощники строят, и одновременно качают профу. Можно нанять часть игроков, часть нпс. При росте сложности построек нужны бригадиры, которые руководят "таджиками".
Город может разрастаться по заранее прописанным шаблонам, для каждого вида постройки есть несколько типовых чертежей, и определены места, где эти постройки могут стоять. В некоторых случаях можно сносить старые постройки, чтобы поставить на их место более высокого качества.
В процессе прокачки у игрока скапливается "книга знаний", в определённый момент игрок получает умение самостоятельно комбинировать элементы отдельных построек, получая "авторские" чертежи. При дальнейшем росте игрок получает возможность строить, используя отдельные фрагменты, формируя постройку по ходу дела, и по завершении сохранить результат как авторский чертёж. Естественно, игрок строит не сам, а нанимает работников, причём на высоких уровнях можно делегировать процесс найма "прорабам" и специально нанятым "начальникам", процесс покупки/добычи ресурсов - "завхозу" и т.п.
На определённом этапе игрок получает возможность купить/арендовать участки земли и строить там по своему усмотрению что угодно.
Это часть, касающаяся архитектурного направления.
Примерно в том же ключе прорабатываются другие профы - горное дело, деревообработка, металлообработка, животноводство, пищевая промышленность, инженерные направления (механика, автоматика, машиностроение). На вершине этих проф можно организовывать крупные предприятия, поставляющие в игровой мир ресурсы - стройматериалы, инструмент, оружие, еду, машины и механизмы. В идеале должна быть возможность строить мануфактуры, фабрики, фермы, открывать рестораны и т.п.
При этом для начинающих игроков появляются дополнительные участки для прокачки - можно пойти в найм к нпс, прописанному изначально, а можно пойти на ферму, принадлежащую игроку, и получить задание от наёмного нпс, работающего на хозяина фермы.
За счёт такого подхода убираются "рельсы" в прокачке проф, и мир становится "живым" и "саморазвивающимся". Все нпс имеют определённые модели поведения, завязанные на их скил в определённой профе. Для игроков не должно быть разницы, обращается ли он для прокачки среднего уровня профы к "свободным" неписям, либо к "наёмным", работающим на игрока более высокого уровня и выполняющим его задание.
Основная проблема - в балансировке экономики, постепенном истощении ресурсов, как материальных, так и "людских" (количество неписей для найма должно расти пропорционально потребностям контингента играющих, и соответствовать требуемым уровням, часть нпс заменят низкоуровневые игроки, при этом надо как-то регулировать рынок труда). Задача решается с помощью проработки математических моделей, я этим пока не заморачивался.
Также нужно регулировать взаимодействие между игроками: штаф на случай некачественного выполнения заданий, репутация и т.п. Нужна возможность на время оффлайна превратить своего аватара в нпс, чтобы не страдало общее дело, когда игрок оффлайн, но при этом он не растёт в уровнях и не получает оплату за время отсутствия.

Вот, как-то так.

#1448
22:51, 7 янв. 2018

Всем привет!
Сделал панораму 360 для оценки стиля блоков HardWorld мира.
Со временем, текстуры будут перерисованы, добавятся эффекты шейдеров, тени и "игра со светом".
Панорама: https://kuula.co/post/7lM4j
Эта сцена в редакторе: https://yadi.sk/i/gmu2ncw03RFoQm

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

#1449
13:26, 8 янв. 2018

CriDos
> Сделал панораму 360 для оценки стиля блоков HardWorld мира.

Таких демок много, так что пока ничего необычного.

> Со временем, текстуры будут перерисованы, добавятся эффекты шейдеров, тени и
> "игра со светом".

Текстуры 32*32 как-то ни туда, ни сюда. Визуальный стиль напоминает первую кваку. Делайте 128*128 что ли. Да и свет решает. Затенение в углах + тени от солнца, и будет красота.
Не видать прозрачных и неполных блоков. Жду посмотреть.

Интересно глянуть на расход памяти и фпс при разной дальности отрисовки.

Непонятно, зачем вам юнька. Лень писать свои коллайдеры и физику? Так всё равно придётся. У кубического мира много своих особенностей, которые стоит отрабатывать в угоду играбельности.
Пример:
Игрок идёт или бежит, впереди щель в 1 блок поперёк пути. Для игрока будет логичнее, если при ходьбе он будет падать в эту щель, но если при этом он держит кнопку "вперёд", он должен повиснуть на краю, и иметь возможность спрыгнуть или подтянуться и залезть наверх. Если игрок "крадётся", зажав шифт, то для него щель становится препятствием, и он должен остановиться, либо начать скользить по краю как вдоль стены. При беге более логично не проваливаться в такую щель, а "перепрыгивать" её на бегу. Стандартной юньковской физикой это тоже можно сделать, но придётся мудрить, и по сути всё равно писать костыли на разные случаи. Как вариант - вытягивать объект игрока при беге так, что он будет длиннее ширины щели и не свалится, выстраивать невидимую стену, если игрок крадётся и т.п.
Или такой прикол:
В майне при движении вдоль стены по карнизу можно зажать шифт, и "обогнуть" угол, если за углом карниз продолжается, а на самом углу блока нет. Но если просто идти вдоль стены, то обязательно свалишься. Тут тоже можно придумать, как изменить коллайдер, например, срезать внешний угол стены, или удлинить карнизы, но это всё тоже костыли, и непонятно, что будет удобнее - костылить готовый движок, или писать свой.

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

#1450
14:12, 8 янв. 2018

Визуальные эффекты добавляют очень много :)
Вот старье с 2014 года:
https://imgur.com/a/bt6QP
https://imgur.com/zkO9bjr

#1451
21:45, 8 янв. 2018

СерыйМыш
> Текстуры 32*32 как-то ни туда, ни сюда. Визуальный стиль напоминает первую
> кваку. Делайте 128*128 что ли. Да и свет решает. Затенение в углах + тени от
> солнца, и будет красота.
У нас есть контейнеры текстур (альтернатива атласам, на основе EXT_texture_array), которые собираются в рантайме.
Каждый контейнер умеет разные размеры текстур (равный размер в пределах контейнера).
1 контейнер == 1 материал.
В конфигурации блока можно указать контейнер и текстуры из контейнера для любой из сторон.
Так что, в чанке могут присутствовать блоки с разными текстурными контейнерами, материалами и соответственно - размерами текстур.
А сейчас у нас и так 128х:)
Просто мы 32px текстуры ресайзим до 128px и средствами юньти доводим до идеала:)
Там всё равно за пару минут можно применить текстуры любого разрешения (текстур-паки типа).

> Интересно глянуть на расход памяти и фпс при разной дальности отрисовки.
Вот как-то так на следующих железках r7_200, gtx_750, r9_200 + 1100 Far + 8xMSAA: https://yadi.sk/d/nfo8LAjf3RH3uM
Также на стареньком ноутбуке постоянно провожу тесты и различные оптимизации в пределах того, что допускает Unity.
Хотя таких дистанций и не будет в игре.
С оптимизацией GPU и CPU я довольно много провозился и ещё буду возиться, всё же хочется охватить мобильный рынок.
К сожалению, в Unity пока не удаётся реализовать Occlusion Culling относительно специфики блоков и чанков, но идеи есть...

> Не видать прозрачных и неполных блоков. Жду посмотреть.
Как только доработаем приемлемую концепцию освещения, займёмся кастомизацией блоков.

#1452
12:55, 9 янв. 2018

Нравится мне простота кубов.
Такие простые и красивые..
Ещё мы вот так умеем (видюшка): https://cloud.mail.ru/public/6GE6/H2YZqoorn
Хотя это больше тестовый функционал, но тем не менее, штука забавная:)

#1453
15:19, 9 янв. 2018

>писал диздок на такую песочницу. Рабочее название - Архитектор.
Великолепнейшая задумка :D
Можно добавить только приправу в виде сюжета, обосновываюшего, почему архитектура спасёт мир, как бы ставящая искусственную сверхцель "пройти" игру.

#1454
15:22, 9 янв. 2018

CriDos
> Каждый контейнер умеет разные размеры текстур (равный размер в пределах
> контейнера).
> 1 контейнер == 1 материал.
> В конфигурации блока можно указать контейнер и текстуры из контейнера для любой
> из сторон.

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

>Вот как-то так на следующих железках r7_200, gtx_750, r9_200 + 1100 Far + 8xMSAA
Прикольно. Сглаживание слегка замыливает, но на таком расстоянии оно примерно так и должно быть. Возможно, 2х/4х дадут результат не намного хуже, наверное есть смысл сделать переключаемо.
По объёму памяти неоднозначно. Вроде бы почти 3 миллиона кубов, но 200+Мб всё равно как-то дохрена. Если даже отдать половину на собственные заморочки движка,  40-50 байт на блок... И это без физики/механики.
В реальной игре скорее всего не будет такого количества блоков, упрётся в пропускную сети.
Видос пока не посмотрел, 77 метров на скорости 64к упаришься ждать, а на 240р не видать нихрена.

В целом круто, у меня дальше баловства дело не пошло )

Страницы: 196 97 98 99101 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.