Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Рендер как в Minecraft-е - кто нибудь знает основные "секреты"? (98 стр)

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

Страницы: 197 98 99 100 101 Следующая »
CriDosПользовательwww9 янв. 201812:55#1455
Нравится мне простота кубов.
Такие простые и красивые..
Ещё мы вот так умеем (видюшка): https://cloud.mail.ru/public/6GE6/H2YZqoorn
Хотя это больше тестовый функционал, но тем не менее, штука забавная:)
ChebПостоялецwww9 янв. 201815:19#1456
>писал диздок на такую песочницу. Рабочее название - Архитектор.
Великолепнейшая задумка :D
Можно добавить только приправу в виде сюжета, обосновываюшего, почему архитектура спасёт мир, как бы ставящая искусственную сверхцель "пройти" игру.
СерыйМышПостоялецwww9 янв. 201815:22#1457
CriDos
> Каждый контейнер умеет разные размеры текстур (равный размер в пределах
> контейнера).
> 1 контейнер == 1 материал.
> В конфигурации блока можно указать контейнер и текстуры из контейнера для любой
> из сторон.

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

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

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

СерыйМышПостоялецwww9 янв. 201816:59#1458
Cheb
> Можно добавить только приправу в виде сюжета, обосновываюшего, почему
> архитектура спасёт мир, как бы ставящая искусственную сверхцель "пройти" игру.

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

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

KKHПостоялецwww9 янв. 201817:31#1459
чтобы человек шевелился, его нужно либо пинать страхами, либо давать свет в конце тунеля. (классические кнут и пряник). В самом майнкрафте заложено в примитиве. Кнут: Наступает ночь, кто не спрятался тому п...а. Пряник - портал и второй мир. Теперь как человека заставить работать творчески. Творчество можно оценить по совокупности одобрения другими людьми. Набираешь XXX лайков - закрытый бонус 1го уровня. YYYY лайков - закрытый бонус 2го уровня. И т.д.  Если кого-то прёт с выпендрежа от бонусов, то они будут завлекать народ на лайки.
alexzzzzПостоялецwww9 янв. 201817:42#1460
СерыйМыш
> Для синглплеера можно придумать в качестве конечной цели прокачку до уровня
> "божественный архитектор", после чего игрок получает задание построить храм
> какому-нть богу.

Я люблю песочницы, но подобные цели не воодушевляют.

Постройка должна быть полезной, как-то использоваться. Факторио выгодно отличается от Майнкрафта тем, что в ней в процессе игры появляются практические задачи, для эффективного решения которых надо строить всякие большие хитрые системы, а в Майнкрафте практических задач особо нет, можно построить замок с окрестностями, но пользы от него, как от примитивной землянки.

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

ChebПостоялецwww9 янв. 201818:08#1461
>Постройка должна быть полезной, как-то использоваться.
В Террарии заметная часть прокачки - получение новых инструментов и материалов (расходников), которые получаешь только от неписей, которых надо найти, спасти и построить им домик. Причём, если домик защищён слабо - непися ночью ухайдакают монстры, и будешь сидеть без расходников пока он не отреспавнится.

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

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

З.Ы. Вот если бы кто-нибудь хотя бы тупо повторил ту же Террарию, но в 3d...
Ракетные сапоги, сапоги-лавоходы, волшебные палочки и бластеры, куча измерительных приборов, от счётчика монстров до GPS и глубиномера, которые можно скрафтить в один, экономя место в инвентаре, абордажный крюк, верёвки, которые можно удлинять вниз от своей позиции, честно текущие вода и лава, которыми можно затопить полмира, сотни видов монстров, крутеющих с глубиной, ползучая демоническая коррупция, медленно пожирающая мир, распространяясь на соседние блоки, а подо всем этим - ад, полный лавы, Hidden Fun Stuff и чертей, стреляющих *сквозь* блоки. Десятки эпичных боссов, часто разлочивающих доступ куда-либо (сунулся в данжон, не победив Скелетрона == взорвался на мясо) или дропающих уникальные ингредиенты для брони следующего тира или, ещё круче, для кирки следующего тира, позволяющей копать крутые блоки, ранее бывшие для тебя неуязвимыми.

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

Ну, я тут, мерзки хихикая, бросаю внутрь улья  две бомбы. Бах! Бах! Дырищи много блоков диаметром, мёд течёт рекой!
И вдруг! Раздаётся дикий рёв, и на меня несётся гигантская пчела! Панически отстреливаясь, замечаю, что вместо жопы у неё дырки, вроде сот. И тут она начинает срать пчёлами!
К моему счастью, все ейные пчёлы застряли в одном месте, где была впадина в один блок, и до меня не долетели. Пчелобосс дропнул пчеломёт - зачётнейшая пушка с бесконечным боезапасом, поскольку работает на мане! Теперь хожу like a boss, лениво постреливая в потолок. Пчёлы сами наведутся на всех окружающих и зажалят, роясь. Жаль, только против низкоуровневых: пчела наносит 6 урона, но у большинства мобов в хардкорном режиме шкура толще, и в результате пчела наносит только 1 урона. Но даже такая "смерть от тысячи порезов бумагой" работает, только строгать надо дольше.

Правка: 9 янв. 2018 18:37

Programmer777Постоялецwww9 янв. 201818:41#1462
CriDos
> У нас есть контейнеры текстур (альтернатива атласам, на основе
> EXT_texture_array), которые собираются в рантайме.
На DirectX 9 будет работать?
СерыйМышПостоялецwww9 янв. 201819:40#1463
Cheb
> Начинаешь с того, что бравым защитникам надо спать в домике, а не под сырым
> небом - как только строишь им казарму - их статы вырастают, становится легче,
> они отвоёвывают лесопилку.
> И далее в том же духе. Каждый домик - прокачка города. Пивоварня, кузня, хоромы
> мага...

Думал о чём-то подобном. На выходе почему-то всё время получается некая злобная смесь Майнкрафта, Дварф Фортресс и Сеттлеров (IV), с лёгким налётом Арканума и Террарии.
Как сюжетка для синглплеера вполне себе подходит. Главное вовремя успокоиться и перестать наращивать мощь набИгаторов, иначе игрок может надорваться и бросить. Чтобы было нескучно можно после спасения первого города/замка получить запрос от соседа, и организовать помощь ему. Чтобы не было хождения по кругу, для каждой новой итерации нужно добавлять развитие технологий (новые оборонительные сооружения, новые постройки, новые технологические цепочки). Как окончательная цель - освободить свою любимую страну от злых человекоядных монстров, защитив все города и наладив между ними транспортное сообщение и взаимовыгодный товарообмен.

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

СерыйМышПостоялецwww9 янв. 201820:33#1464
alexzzzz
> На этом сюжет заканчивается, что делать дальше, решайте сами.

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

Полезность построек вполне можно реализовать на уровне взаимодействия с "ядром" поселения - скрипторванными нпс, выдающими задания на постройку определённых типов сооружений. Можно применять как готовые чертежи/шаблоны, так и некоторый набор обязательных элементов для постройки определённого вида, при относительной свободе в остальном. Например, чтобы получилась кузня, нужно поставить в домике наковальню, горн, корыто с водой, загородку для угля. Для обороны можно строить крепостные стены, башни, оборонительное вооружение. Нужны какие-то алгоритмы для оценки пригодности получившейся постройки для целевого использования, и методика "заселения" построек неписями соответствующих профессий.
Очень интересно сделаны производственные цепочки в 3-4 Сеттлерах. Если перенести подобную механику в кубический мир, то должно получиться неплохо.

ChebПостоялецwww9 янв. 201820:48#1465
>Если можно разорить логово чудовища, то это будет одноразовый квест, который достанется только первым счастливчикам.
Монстры медленно прокачиваются, пока один из них не эволюционирует в босса, и не устроит себе новое логово, которое снова надо расковыривать. Работа стражи и тех игроков, что любят рубиться - пропалывать монстров, вырезая высокоуровневых.

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

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

CriDosПользовательwww9 янв. 201823:09#1466
Programmer777
> На DirectX 9 будет работать?
Нет.
Unity начиная с версии 2017.3 выпилила поддержку dx9...
Так что, за сим и было принято решение в пользу массивов текстур из dx10/opengl3.
CriDosПользовательwww9 янв. 201823:26#1467
СерыйМыш
> По объёму памяти неоднозначно. Вроде бы почти 3 миллиона кубов, но 200+Мб всё равно как-то дохрена. Если даже отдать половину на собственные заморочки движка, 40-50 байт на блок... И это без физики/механики.
Ну там на самом деле не 3 миллиона.
3 миллиона блоков которые не являются типом "Air" (не указал в статистике:().
Если учитывать блоки воздуха, то получится больше:)
1594 * (16*16*16) = 6529024 кубов, если уж быть совсем точным.
Блоки воздуха тоже память занимают..

Правка: 9 янв. 2018 23:34

ChebПостоялецwww10 янв. 20180:24#1468
Блоки монолита, контачащие только с блоками монолита, тоже должны памяти занимать - одно целое размера указателя на весь субчанк 16х16х16. Потому что мобам на конкретный тип породы глубоко по барабану, а игроки тип породы узаЮт только когда докопаются, и это с лёгкостью достраивается на лету по необходимости.
Отсюда, мир должен состоять только из околоповерхностей и не более того.

Если взять видимость 16 чанков (164 метра), то круг поверхности выйдет площадью 16*16*Pi ~ 800 чанков.
Положим средней изрезанности поверхность будет иметь примерно 6 существующих субчанков 16х16х16 на чанк.
Тогда физически существующих блоков = 800 * 6 * 16х16х16 ~ 20 миллионов = 80 мегабайт, если быть безнадёжным оптимистом.
А для рендера это, наверно, требует LODов - для дальних чанков один меш на 4 чанка, где блоки усреднены в группы по 2х2х2. И дымку погуще, чтобы не так в глаза бросалось :D

CriDosПользовательwww10 янв. 20181:31#1469
Ну а так, вот мои любимые 3 полные сферы, радиусом в 128 блоков каждая (1 любой блок == 2 байта):)
После 10 секунд работы GC: Изображение
Самая тяжёлая сцена, полная загрузка (не генерация) за 20 секунд на i5 и обычном hdd.
Изображение

Кстати, после компиляции проекта в натив с помощью il2cpp (unity 2018.1.0b1), общее потребление ОЗУ значительно снижается.
Т.е. последние 547mb смело можно делить на ~2.
Также производительность относительно операций с блоками повышается на 30-40%.
Я пока работаю над корректной сборкой под натив, т.к. сейчас приходится делать даунгрейд до C# 6 и кучу правок:(

Правка: 10 янв. 2018 3:21

Страницы: 197 98 99 100 101 Следующая »

/ Форум / Программирование игр / Графика

2001—2018 © GameDev.ru — Разработка игр