Хороший генератор, и маршруты интересные.
Осталось обработать парочку исключений (нет, не парочку) и можно засовывать дополнительные комнаты.
А там уж можно будет и разработкой игры заняться.
- 17 ноября 2020, 16:02
- 06
Хороший генератор, и маршруты интересные.
Осталось обработать парочку исключений (нет, не парочку) и можно засовывать дополнительные комнаты.
А там уж можно будет и разработкой игры заняться.
Опять ты начинаешь разработку игры с конца.
Сначала геймплей, потом - генератор подземелий.
Что в этом плохого?
Ну... в моих планах утащить геймплей с кой-какой другой игры, так что на этот счёт я не сильно беспокоюсь. Для меня бутылочным горлышком являются именно сложные программистские штуки.
Как можно говорить о бутылочном горлышке в создании игры, если игры никакой не выбрано для создания?
То, что я не выкатываю свои планы на суть и содержание игры ещё не означает, что я не имею ни малейшего понятия о сути и содержании будущей игры.
Просто экономлю своё и ваше время, показывая только фактически сделанное :)
Слова о бутылочном горлышке - мои личные субъективные ощущения. Вот так, в плане сложности реализации, я на данный момент оцениваю реализацию базового геймплея и функционирующий генератор подземелья.
Кстати.
https://kolenka.net/posts/generacziya-i-naselenie-urovnej-dlya-zhanra-dungeon-crawler
Е бой, случай с касательным прохождением коридора успешно обработан (проходящие по касательной клетки присоединяются к комнате).
Теперь с любой комнатой коридор соприкасается только одной клеткой, т.е. в этом месте абсолютно спокойно можно ставить дверь.
Помню были времена, когда я очень любил случайные подземелья,
а теперь почему-то хочется локации выполненные вручную,
не знаю с чем это связано, может старость :'D
Ну а так, в целом неплохо выглядит.)
PS А может потому-что хочется игр с большой и продуманной вариативностью,
и кажется что с помощью генератора пока что сложно (во всяком случае для меня)
создать локацию в которой можно будет пройти несколькими способами:
1) прямой - атакуя всё что движется (именно для этого обычно и создают такие подземелья)
2) обходной - обходя через безопасные проходы, канализацию и вентиляционные шахты
3) мирный - подкупая врагов или очаровывая их, гипнотизируя
4) рабский - отдаваясь врагам, попадая в плен и сбегая (как раз способ для игр Разери ( ͡° ͜ʖ ͡°) )
5) ловкий - убегая, уворачиваясь от врагов, обманывая их используя стелз или инструменты побега
6) битва чужими руками - призывая демонов, зомби, создавая армию кукол, големов, нанимая армию
При этом продумывая очень опасные участки с мега супер сокровищами и их опасными хранителями,
которые желательно обходить. Если в лабиринте нет опасных мест и его можно 100% очистить, то это скучный лабиринт, всегда должно быть что-то сверх опасное там.
Ручные локации - теплые, ламповые.
Рандомносгенерированные - холодные, бездушные.
Да, появляется такое чувство. Но я также не хочу отказываться от генерации совсем,
например монстров и размещение интерактивных объектов можно делать случайным или наполовину случайным.
Также мне нравятся случайно сгенерированные события на карте мира или ещё где-либо.
Локации ручной работы полностью из натуральных компонентов. Без ГМО (генерированных математикой областей).
Я вот кстати никак не пойму прикола вот этих коридорных подземелий. Достаточно просто подумать, сколько игроку придется грести по коридорам чтобы попасть с одной комнаты в другую. И ведь коридор при этом нельзя сделать более интересным - там просто некуда вместить бои, паззлы, точки интереса и т.д..
В Unexplored эту проблему круто решали тем, то что подземелья все генерировались кольцами.
А ведь хорошая идея.
Вышло видео про этот метод.
Звучит прикольно!
Бои - почему бы и не вместить. Плюс ловушки, плюс точки интереса ("идя дальше по коридору вы чувствуете как воздух теплеет. Скорее всего, реактор в той стороне"). Еще по коридорам может ходить стража, и от них надо ныкаться в комнаты.
В целом смысл коридора - давать выбор. Открывать эту дверь или пойти дальше поискать более перспективную. Повернуть в отворот налево или идти прямо. Если в итоге оптимальной тактикой будет стучаться в каждую встреченную дверь то да, в коридоре смысла нет, с тем же успехом комнаты можно было напрямую в линию поставить.
Хорошо звучит, но на практике в таких подземельях нет выбора, нужно всё очистить по максимуму.
Придумать бы какие-то ограничения, чтобы всё подземелье невозможно было очистить, например из-за усталости.
Согласен. Хотя я раньше любил случайную генерацию, даже если она прямая как палка. А потом после Айзека и Персоны начал понимать как всё это устроено и стало не так приятно играть в игры со случайными подземельями.
Мне вот например на скринах Разери не хватает таких участков на уровне:
1) Сверх опасные участки, которые лучше всего идти в обход, но можно и попытать удачу напролом,
но шанс выжить там например 1-5% (сложно будет генерировать обход для сверх опасных мест, надо дополнительную логику вводить)
2) Секретные комнаты (хотя и в Binding of Isaac было такое, в старых Айзеках уже точно знаешь какое количество секретов на уровне есть, и терялось чувство непредсказуемости и радости от открытия секрета, в Айзеке это уже не секреты, а обязанности были)
3) Секретные лазы для мелких героев (чтобы можно было в вентиляцию пролезть или канализацию, чтобы можно было обходить разные участки локаций, незаметно переходя из комнаты в комнату)
4) Возможность пройти игру не сражаясь с боссом, например для ловкачей или тех кто любит альтернативные прохождения
5) Неожиданный провал в другую локацию или резкий переход в совершенно другое подземелье
6) Лагерь нейтральных существ, с которыми можно или подружиться или лучше не подходить, если нет каких-то навыков или вещей
7) Магический артефакт или монстр, с которым если неправильно обращаться, то он может разнести пол подземелья или сделать что-то другое нехорошее.
(вообще считаю, что "Защита от дурака" в играх это зло, лучше пусть будет много крутых и опасных вещей или врагов, которых лучше не трогать, особенно если это хадркорный рогалик, пусть игрок через боль познаёт законы подземелья)
8) Босс не в конце подземелья, а вначале или допустим в середине, или его вообще нет, а может на локации сколько комнат, столько и боссов, или может босс фальшивый
Ну... вроде ничошненько получается.
Коридоры бы поперёк стеночками с дверьми местами перегородить, и была бы конфетка.
вижу комнату с боссом, вижу за ней комнату с лутом)))
В таких лабиринтах может надоесть исследование где-то после 10-го раза, когда уже начнёшь пропускать комнаты, думая что там ничего хорошего нет, а просто очередная комната со скучным сундуком без нормального лута и пару вражин. Я бы рекомендовал уменьшить количество комнат где-то раза в 2, чтобы только после 20-й катки игра начала надоедать, ну это условно, всё зависит от субъективного восприятия и насколько сильно надоели рогалики из-за большой частоты игры в них)
В Persona 3 и 4 появлялось такое чувство, когда уже начинаешь скучать из-за предсказуемости генератора лабиринта.
А если по мере прохождения уровней добавлять механики и менять обои? Как, например, в Spelunky с каждой новой локацией.
О, хорошая густота дверей, нормальный данж теперь наваривается.
С лёгкой проверочкой на то, чтоб двери слишком близко друг к другу не заспавнились ^_--
А вот так мне кажется было бы более поприятнее, с секретными лазами, тайными комнатами,
![kFwziCA](https://i.imgur.com/kFwziCA.png)
и локациями с монстрами, которые опаснее босса...
Но я не смог бы сделать такой генератор, чтобы он такие сложные вещи продумывал.
слишком сложно, если в игре нет механики завязаной на такой сети и у игрока не появляется преимущества. Это же все учить, запоминать в ущерб погружению
Можно сделать, что только слабые и худые персонажи могут использовать вентиляции.
Но вообще да, сложно, просто немного надоели подземелья без выбора, ибо в классическом случае,
как у Разери мы пройдём все комнаты и убьём все что там двигалось, чтобы случайно экспу или лут не пропустить, в этом случае тоже никакого погружения, ибо манчкинство.
Худые да, но слабые, учитывая что вентиляция обычно наверху стены, если не на потолке...
Ну, тут сразу ясно, где босс. Почему коридоры соединяются именно в конце? Так я просто дошёл бы до самого конца и точно знал бы, что вот он босс, вот он маршрут к нему. Но это так, личный комментарий.
Только ты дойдешь до него непрокачанный.
Идея насчёт увеличения связности подземелья.
- делаем пещеры шумом и клеточным автоматом
- поверх, перезаписывая, генерируем подземелье (именно так, чтобы алгоритм клеточного автомата не трахал мозги и не образовывал слой непроходимых стен вокруг подземелья или не расступался вокруг него как водичка вокруг жирного пятна)
- находим места, в которых помещения от пустот в пещере отделяет всего одна клетка стены и с небольшим шансом (или, лучше, нужное число раз) убираем стену
Готово, вы великолепны.
Также добавил группы генерирующихся "биомных" комнат, куда планирую жахать свои, тематические, тайлсеты (например, ледяной) и соответствующих противников, с принципом большего риска и большей награды.
Что думаете, какие идеи по геймплейному использованию пещер?
А какие идеи по жанру игры? Пока что у тебя только карта, на ней никто не ходит и ничего не происходит.
Игра реального времени, с тремя режимами этого самого времени:
![q7JUIhl](https://i.imgur.com/q7JUIhl.jpg)
1) пауза, с доступностью осмотра характеристик и отдачи приказов
2) обычное время
3) режим соника
При появлении в поле видимости нового противника - автоматическая смена быстрого режима на обычный.
Управление в стиле РТС: есть пешка(и), их можно выделить и куда-то направить или приказать атаковать, при этом к нужной точке юниты движутся сами (при помощи алгоритма поиска пути), а в случае гибели цели или потери её из виду способны выбрать себе следующую цель, но без самостоятельной смены позиции (т.е. без сближения и преследования - чтоб не разрушали строй и не лезли под выстрелы).
Дополнительный элемент: возможность отметить на карте какие-то работы а для юнитов указать возможность заниматься этими работами, с установкой приоритетов.
Примерный игровой цикл:
- послушали шебуршание и порыкивание монстров / посмотрели через решёточки
- выбрали направление
- либо заманили монстров в уже зачищенное помещение, с расставленными как надо пешками, либо заломились внутрь нового, на ходу разводя народ
- привели себя в порядок, насколько это возможно
- (опционально) разобрали часть хлама в комнате, получив какие-то стройматериалы, и организовали блокирующие видимость хлипкие разрушаемые заслоны (для всяких противных выходов в пещеру или узкие проходы), либо замутили замедляющие передвижение и частично укрывающие от оружия дальнего боя баррикады
- залутали всё ценное, разделали монстров (или отметили для разделки, чтобы во время следующего боя отмеченные для такой работы юниты сами сделали дело), если нашли какие ценные кристаллы - подогнали пацанов с кирками
- (опционально) шум услышала какая-то особо крупная ебака (или большая толпа мелких), и началась пизда и космодрама
РТС? Это больше похоже на тактику аля X-Com: Apocalypse (третий), но в фентези. Но играться будет скорее как Диабло, потому что акцент делается на битвы, только с расстановкой препятствий. Вопрос был о геймплейном использовании пещер - ну, там могут быть какие-то секретные/необязательные монстры, и уж точно что-то слишком большое для обычных казуальщиков, но таковые туда не должны долезть. Тут бы знать ЦА, а то получается что высказывая идеи, кто-либо будет просто придумывать назначение и конкретную траекторию игры за тебя. В среднем как-то так. Звучит играбельно, но надо запрогать и посмотреть так ли всё чётко играется как задумано. Получившееся отполировать, остальное выкинуть.
Имхо как-то дофига фич, их резать и резать. Реалтаймовую игру с расстановкой пешек можно было бы и вообще без генератора подземелий сделать. Без механики работ тоже можно обойтись. И без решёток. И инвентаря. Но если прототип без всего этого будет играбельным - отлично.
возможность пропускать комнаты подразумевает выбор - зайти в них до босса или нет. Если бонус от прохождения комнаты влияет на финальный бой, то выбор фейковый. Если не влияет, то это обычный линейный уровень, где все самое важное в коридоре. Значит коридор должен быть разнообразнее, а вот побочек слишком много.
Если механика включает в себя выбор, в какую комнату зайти, а в какую нет, то это должно быть примерно понятно еще до входа в нее. Нужно обозначить.
Норм бектрекинга при такой конституции карты не обеспечить - короткие пути не открываются, возвращение не дает нового опыта, значит все квестовые идеи геймплея отваливаются.
Оч интересно, что ты задумал, потому что ничего кроме коловдютиев при виде на карту не вспоминается. но там проработка коридора недостижима для простого смертного.
ЗЫ. может этот коридор не путь по которому идет игрок буквально. А сюжет генерирующийся каждый раз заново из событий. Где база для генерации - фабула и полная фабула станет видна только при многократной генерации и прохождения сюжета, создаваемого по некоторым событиям из фабулы.
В смысле что поле это такая матрица событий, а генерация сюжета прям задействует те из них, на которых сгенерировался коридор
В пещерах сделать что лута нет (или он специфический, скажем компоненты для крафта), враги послабее тех что в основных комнатах но все ещё опасные. Тогда будет две причины соваться туда - либо чтобы добрать недостающие компоненты/опыт с мобов до уровня, либо, и это самое интересное, рискнуть найти через них другой вход в основной комплекс, если по обычному коридору ситуация стала совсем провальной.
Осталось сделать возможными ситуации когда продолжать обычное исследование становится невыгодно или невозможно - заодно и выбора добавит. Ловушки которые после обнаружения проблематично обезвредить, замки на дверях в комнаты и ограниченное количество ключей, пол превращающийся в лаву или завалы в процессе перестрелок, размножающиеся монстры, да просто ограниченные ресурсы (хп/патроны/мана/снадобья) которые в зависимости от успешных или провальных комнат колеблются то вверх то вниз.
"обычное исследование становится невыгодно" - для этого требуется очень тщательный расчет нагрузки на игрока и способность игрока предсказать весь дальнейший путь. при этом унылость пробегания коридоров туда-сюда никуда не делась.
нехватка ключей в результате действий не зависящих от игрока - ну такое се.
хотя при грамотной реализации опытным девом будет интересно
(может, комнаты видны на несколько секций вперед, а прошлые(вместе с не выбранными) недоступны?)
Унылость пробегания я вообще не понимаю что такое. В рогаликах часто фасттревел есть, да даже просто кликнуть по нужному месту и если врагов в видимости нет герой туда прибежит.
А с планированием - нет, по-моему как рулетка должно быть, выбор между двумя неизвестностями и опыт игры в том чтобы правильно оценивать шансы. Например - либо зачищаем текущую комнату (с надеждой что нам хватит ресурсов чтобы добраться до лута в конце), либо убегаем и ищем новую (с надеждой найти там лёгкий лут, но и шансом окончательно растратить ресурсы).
учить всю игру правильно оценивать шансы через усложнение ситуаций - да, наверно, как облегченный вариант Desktop Dungeons.
А "либо зачищаем, либо убегаем" - меня расстраивает очень всегда, когда игра рассчитывает, чтоб я не смог все зачистить перед боссом и вынуждает отказываться от незачищенных комнат. Наверно я качественных реализаций не видел
встречаться с проблемами и избегать решения проблем - нафиг такую реалистичность в играх ящитаю)
Меня вот боссы в играх расстраивают. Я за равномерный челлендж, а не скучный гринд+редкие нервные бои. Соответственно цель в любом случае зачистить все, но чистить можно в разном порядке. Если оказалось что с этой стороны сплошь стреляющие монстры а у тебя нет нормального лука, то можно пойти попытать счастья с другой стороны. А можно пытаться прорываться в надежде что аптечек хватит. И убегание - вполне нормально, примерно в любом хорошем рогалике (да и вообще игре с открытым миром) есть. Убегание чтобы потом вернуться и навалять.
Мне раньше нравились боссы, а теперь тоже уже только расстраивают.
Боссы стали как обязанность, которая почему-то обязательно должна быть в конце уровня.
А где сиськи то?
Подожди, пусть сначала генератор подземелий напишет.
Но ведь сначала надо написать алгоритм паузы. Какая это игра без паузы?
Мне бы такой генератор карт для динамичной игры типа Hotline Mayami, только с рогалик составляющей,
и чтобы также было видно врагов "с потолка" в соседних комнатах, чтобы вовремя тактику придумать до захода в комнату, вот это было бы топ. Мне в Hotline Mayami с её быстрым гемплеем всегда было мало уровней, приходилось несколько раз перепроходить заново старые локации.
А если эта карта для обычной JRPG игры, да и ещё с пошаговой боёвкой, то такой одной карты на полчаса хватит, считай на всю игровую сессию короткой рогалик игры. Слишком уж много комнат, если игра не сверх динамичная.
Я кстати, не учитывал эти едва заметные коридоры типа муравьиных шахт, если это тоже тоннели, то уж слишком их много, прямо перебор.)
Это можно отрегулировать количеством дырок в стенах, после появления геймплея и начала тестов.
Ну, если речь идёт про возможность выйти из основного подземелья за "добавкой".
Блин, так может ты просто сделаешь свою игру в этом жанре, раз ты в нём так хорошо понимаешь? Там же реально фигня делать это всё. Ничего выдумывать не надо, просто натянешь туда свою стилистику, думаю многие фаны этой игры оценят и такой вариант, особенно если его механику развить в процессе.
Если что, то могу, кстати, проконсультировать насчёт алгоритма/дать готовые куски кода на C#, если кому-то внешний вид подземелья понравился и захотелось так же в своей игре, не жалко.
Кстати да, я стеснялся попросить, но код было бы офигенно. Я обычно использую свою реализацию вот этого: https://www.gamasutra.com/blogs/AAdonaac/20150903/252889/Procedural_Dungeon_Generation_Algorithm.php
Но у нее есть проблемы с непредсказуемостью числа комнат, да и вообще - больше генераторов больше разнообразия.
Ой. Я это тоже видел, но это сложна, я у себя заметно проще сделал, без страшного бородатого ботан-матана, да ещё и, действительно, управляемее.
Да, я был бы не против забабахать статью, в том числе с картинками и подробным описанием - благо что вполне умею это и внимание очень люблю, но... это заняло бы довольно много времени, а мне хочется потратить его на создание штук.
Так что в настоящее время я готов только на частные консультации по частным вопросам, а до статьи раскачаюсь только... когда-нибудь, там...![Wni5NUr](https://i.imgur.com/Wni5NUr.gif)
Ксит, я не знаю как перевести управление как в Hotline Miami для консолей и джойстика, если ты предлагаешь делать на GMS.
Ибо по умолчанию в Hotline Miami управление мышкой, чтобы целиться в какую-то конкретную сторону.
*Miami
Я хотел посмотреть как пишется, но лень взяла своё. Спасибо!
Стики +/- автоприцел к ближайшему, если прям совсем тяжело целиться.
Сложновато для первого раза, я никогда стики не программировал.
А, ну это жаль. Надо подождать пока реинкарнируешься в кого-то, кто прям вот только родился и с детства прогал стики. Эх, не повезло же!
Лол, пока более простой шутер сделаю для начала.
Со стрельбой только в сторону.
Надо только быть поосторожней с перерождениями.
А то возьмёшь, и превратишься в котика в средневековом мире. Как дальше программировать-то? о_0
Разери, ты там уже что-то новое читаешь?) А про Освободите Ведьму глянул?)
Не, это я читал давненько, просто к слову пришлось.
Про ведьм да, почитываю прямо сейчас, очень круто.
:3
А я ищу что-то подобное типа этих Ведьм.
Где есть развитие цивилизации, эволюция или научный прогресс. Или хоть что-то подобное.
Мм? Только после начального ознакомления нужно за ранобкой идти - манга сильно отстаёт и не больно шустро выходит.
И-и... тут не такой уровень проработки, как в ведьмочках, но выглядит всё равно неплохо.
Лол, кстати да, читал давно, там правда очень мало глав было в манге, проржался когда гг бревно по почте привезли :D
Что-то в духе того, что предложил alexsilent - система узких туннелей со своими особыми комнатами:
Часть проходов собираюсь перекрыть железными решётками, чтобы смотреть было можно, а трогать руками - нет.
Кстати, эти же железные решётки местами в перемычках коридоров и в стенах комнат могли бы нормально смотреться, для той же самой разведки.
И поводы для поиска обходного пути появятся о_0
Ну а связность у подземелья теперь... м-м-м... ~ ♡
Вау круто! Разери, это реально круто, я б такое точно не смог сделать, алгоритмы не моё)
Не прибедняйтесь, для решения подобной задачи достаточно разбить её на ряд достаточно простых по-отдельности шагов.
За похвалу - большое спасибо, очень приятно такое слышать (=^‥^=)
Да я даже Матч3 медленно программирую, что уж говорить об AI или генераторе подземелий.
Но недавно придумал своего рода рогалик, где не нужно генерировать подземелья.
Хотя может такое уже кто-то придумал до меня, я хз.
"Генератор командировок. или Генератор приключений."
Это когда генерируем не локации, а ситуации, ведь самое главное в том же рогалике - это ситуации,
которые мы можем встретить на сгенерированной локации.
Игра должна следить за генерацией:
1) 4 Варианта для выбранного пути (всё зависит от того, какие у героя навыки)
Сила - подымать вещи, бить, получать урон, ломать что-то
Ловкость - прыгать, уворачиваться, бежать?, убегать, плавать, прятаться?
Ум - экспериментировать, читать, писать, учиться, проводить опыты, магия, учёные диалоги
Харизма - торговля, тусовка, лидерство, выступление, актёрство, бард?, танцы?
2) Чередуя спокойствие с экшоном, вечеринка с ужастиком, мистика с упоротостью, уныние с романтикой. Неуютную обстановку с уютом.
3) Мирные зоны должны чередоваться с боевыми (для отдыха и смены настроения)
4) Игра должна подстраиваться под раны игрока и психологическое настроение (динамическая сложность игры)
В экшон миссиях нужно полностью выжать из героя эмоции посредством усложнения игры.
А как только станет совсем фигово, подкинуть небольшие бонусы или "рояль в кустах"/"бога из машины".
Держать гг на пределе HP и Energy.
Если ситуация совсем выходит из контроля - создать "бога из машины".
5) Чередовать сеттинги (чтобы игрок не устал)
сладости, вампиры, камни, холод, курорт, лес, городок, горы, небеса, вода, тёмная земля и прочее
6) Чередовать окружение (то что должно быть на локации, сама локация не лабиринт, а небольшой участок арены с небольшими ответвлениями и возможными секретами)
жидкости, ямы, ровная почва, холмы, болото/зыбучка,
7) Секреты появляются чаще, если долгое время ни одного ни находил. А если нашёл, то некоторое время больше не появляются.
8) Если у гг много лута, то почти не появляются места с лутом.
почему "Генератор командировок"?
Ну например эти ситуации будут генерироваться во время экспедиции или похода или работы, которую возьмёт герой (то же классическое сопровождение каравана).
И динамическая сложность в игре будет создавать много критических ситуаций для игрока,
чтобы здоровье игрока почти всегда было меньше 10-50%, да и другие ресурсы (Энергия, Лут и прочее)
вот только пока не придумал как сделать так, чтобы эта сложность не казалась слишком искусственной.
Признаться честно, у меня были просто ужасные тормоза, когда я только начинал этот самый генератор делать.
Не мог придумать, как подступиться к решению задач, постоянные ошибки, которые хрен пойми как искать и исправлять, пару раз пришлось с нуля весь код переписывать - просто из-за того, что я заходил в тупик и не видел возможности сделать его работоспособным...
Но не смотря на всё это, написание генератора всё-таки стало возможным.
Как?...
Благодаря 137-ми часам работы. \( ̄▽ ̄)/
Так что не унывайте. Если действительно хотите сделать игру - она у вас получится.
Просто нужно вусмерть заебать отсутствие опыта и недостаток понимания необходимой структуры кода - тогда они от вас отстанут и у вас всё выйдет :3
думал о подобном, но это тоже тот ещё гемор...
>> гемор
Да есть такое, можно придумать базовые структуры основанные на ресурсах и боёвке,
как бы просто всегда генерировать поля битв и передышки между ними, но контролировать ресурсы,
и никогда не давать игроку больше, и не оставлять совсем его без помощи.
А в критической ситуации есть шанс появления экстренной помощи.
А если игрок слишком долго живёт без ранений, то срочно ввести опасных врагов в игру или опасные ситуации, ибо нечего с полным HP бегать)
Теперь ждем начала разработки игры "Хентайные подземелья анального ужаса".
Временное название проекта на юнити - Lord Of Monsterpussies.![Z7JNUlH](https://i.imgur.com/Z7JNUlH.gif)
"Хентайные разработки анального ужаса" - вполне название для рубрики
Но тут всё ещё слишком много комнат, если только это игра не про Ёжика Соника, только в изометрии/вид сверху, чтобы их быстро пробегать, либо этот один лабиринт на всю игровую сессию.
Сделал расстановку стеночек в зависимости от окружения, причём код оформил таким образом, что он будет работать и для любых других видов стен/клеток скальной породы (как только графон соответствующий сделаю).
зависть. То чего мне не хватало на конкурсе для нескучных подземелий. Надо будет как-нибудь запилить свою версию.
Когда я смотрел на вашу игру, то тоже - зависть.
Геймплей.
То, чего мне не хватает для генератора, чтобы превратить его в игру. Надо будет как-нибудь запилить свою версию.
Да сделали бы вместе уже одну полноценную игру))
Есть еще такая тема, при генерации лабиринтов использовать шаблоны: https://twitter.com/lorenschmidt/status/1340890166458789891?s=19
Что-то у меня в твиттере гифки не открываются, да и вообще я ту гифку никак скачать или посмотреть не могу.
Можете как-то сюда её кинуть? о_0
Спасибо!
Хотя по гифке я вообще ничего не понимаю, если честно.
Как я понял, это вариант этого алгоритма: https://github.com/mxgmn/WaveFunctionCollapse
Намутил себе тайлсет грубой каменной кладки для узких туннелей, с несколькими вариантами для некоторых видов стеночек, дабы не слишком повторялось.
Ещё вдруг внезапно (ха) выяснилось, что Юнити изначально не предназначен для 2D и очень любит давать ошибку округления чисел с плавающей точкой при выводе изображения на экран, даже если координата спрайта является целочисленной, что проявляется во всяких странных тонких щелях между идеально, казалось бы, подогнанными друг к другу спрайтами.
Что решается методом пролонгации спрайта в атласе на два-три пикселя во все необходимые стороны.
Ну, то есть, на атласе я всё так же выделяю квадрат 96х96 px, но сам спрайт имеет габариты 102х102 px, вместе с окантовкой шириной в три пикселёчка.
На спрайтах можно заметить, я там монотонным цветом красил, плюс себе в помощь пометочки оставил.
Благодаря этому, в моменты, когда Юнити решает воспринять квадрат со стороной в 96 пикселей как квадрат со стороной 95,9 пикселей, он смотрит на соседние пиксели на атласе, видит там очень схожие цвета и... его попускает.
Ну, или точнее, в супер-тонких щелях рисуются именно эти пиксели, что совсем незаметно и спасает ситуацию.
Мда.
Понятия не имею, почему три пикселя, если смотрится только соседний.
Чуваки на форуме так советуют.
Может, это нужно при каких-то конских удалениях камеры, чтобы прям точно щели не проглядывали.
Третий пиксель, он как бы половинчатый получается, от чего и происходит, что цепляется соседний регион тайла...
Так а что же ты хотел то. Намутить по быстрому pixel perfect в 3ждэ движке, без регистрации и смс. Нет, дружочек не выйдет.
Ну а если без шуток, у Юнити разве нет выбора типа картинки, при импорте ее в движок? Допустим с размытием, без размытия или еще как-то...
Есть, надо выбрать "Sprite".
Я не так выразился, я про режим импорта. Спрайт - это конечный ресурс.
Нет, там именно тип картинки надо выбирать Sprite при импорте.
Ну мы тут, как бы, все время об этом говорим.
Я уже даже не говорю. Что тут сказать? Раз большинство инди-разработчиков на Юнити, то люди автоматически выбрали "2D шашечки" вместо "2D ехать". Решить эту проблему можно, скорее вопрос, зачем её было создавать.
Значит большинству достаточно шашочек.
У тебя есть 2 трудных пути (в рамках Юнити). Вариант1. Если оказывается, что спрайты не пиксель перфектны, то намутить шейдер с этим пиксель перфектом (не знаю как, но знаю, что спрайты тогда должны быть точно прямоугольные).
Вариант2. Секрет плохих 2д пикселей в Юнити и хороших в ГМС на самом деле в правильной матрице проекции (ортогональной). Из своих тестов я выяснил, что в ГМС 1.0 юнити в 3д пространстве это 1 пиксель считай. То есть вид с размерами 640х480 собственно охватывает 640.0х480.0 3д пространства. По дефолту в Юнити там всё иначе и значения куда меньше.
Я не знаю что там у тебя сейчас и вероятно я написал капитан-очевидные вещи и ваще у тебя там всё правильно настроено. Нужно просто округлять короче, при этом не round думается мне, а какой-нибудь floor.
Плагин для пиксель пёрфекта, кстати, для Юнити уже есть, бесплатный и вложенный в дополнительные материалы по умолчанию.
Дело в том, что:
1) Я узнал о нём уже после того, как решил проблему (кек)
2) Мне в любом случае не хочется замедлять программу лишними штуками и не хочется тратить время на их освоение
Полоска из дополнительных пикселей работает просто отличненько, а большего мне и не нужно.
А написал я про всё это только чтобы Кситилона порадовать, и забайтить его на "а я же говорил", а также на вайн в сторону Юнити *yak*
Кстати, загрузка картинок на Гамине приболела.
А, вот оно что! YAK
Ну главное, что решил! А плагин для пиксель перфекта прям сильно нагружает? Мне кажется, что там как раз что-то около шейдерное, но могу ошибаться конечно.
Фиг его знает, но как программист я просто чудовище, так что лучше приберегу ресурсы железа на мой неоптимизированный игровой код.
Я юзаю встроенный плагин на юнити, проблем почти нет, и совсем не нагружает ПК, просто плагин управляет камерой так, чтобы пиксели чётко смотрелись, хотя у меня иногда были проблемы со скачущими спрайтами на 1 пиксель, это было раза 3-4 из сотни спрайтов, но всё же неприятно, так и не понял в чём прикол.
А то я не знаю. Эт скорее грустно, но в целом никак. Видимо я уже постарел перерос злорадство.
Кстати.
Может, я сейчас и не занимаюсь "2D поехали", но в разделе "2D шашечки" явно прогрессирую.
Как вам, а?![uMZxT48](https://i.imgur.com/uMZxT48.gif)
Не какой-то очередной сраный тайлсет для РПГ-мейкера
Светлые камни прикольные
Для пола бы еще дорожку щебнем выложить.
Просто ещё пока не успели им вытереться)
Эй, ребят, вы же слышали фразу "Нарисованная программистом графика"?
Зацените новую хохму.
Ну, у тебя получилась отличная игра "укажите все одинаковые переходы".
"Выберите картинки, где есть коридоры."
У тебя все тайлы разбросаны. Ты не собираешься пользоваться автотайлингом?
Если речь идёт про автоматическое разбитие атласа на участки, то нет - у этих тайлов размеры друг от друга отличаются, так что все области я расставлял ручками.
Я про автоматизированный процесс рисования плиток с использованием битовой маски.
Э-э-э-э...
Уточняющий вопрос: вы пользовались автоматизированным процессом рисования плиток с использованием битовой маски на Юнити? о_0
А что такого? На юнити нет, но он там точно должен быть. Это какая-то проблема его использовать?
Кхм.
Лично я в статье (к которой приложено данное видео) вижу следующее:
1) Чувак сделал набор тайлов
2) Чувак прошёлся по массиву карты, проверяя расположение и тип соседей для всех клеток
3) Чувак по-хитрому записал необходимый номер тайла для каждой клетки
4) Чувак расставил заранее заготовленные тайлы в нужных местах, сверяясь с хитро записанными номерами
И... как бы, и всё.
Там нет никаких-таких масок, а единственное побитовое что там есть - это тот самый способ записи нужного номера тайла (что выглядит прикольно, но, на самом деле, именно так это делать не обязательно).
Вообще, эта штука правильнее называется "Bitwise Tile Indexing", а не "Bitmasking", насколько я знаю.
Я... просто не понял, в чём тут прикол о_0
Речь идёт про использование каких-то шейдеров или другие манипуляции с изображением программными средствами и я просто что-то не прохавал?
И как вообще способ организации атласа спрайтов может чему-то помешать? о_0
Я понял, ты не в курсе этого. То видео немного не то, о чем я хотел сказать, оно взято лишь для наглядности.
Помешать чему-то не помешает, но удобство при реализации есть. Вот например простой атласт при использовании автотайлинга:![pKR7Ygn](https://i.imgur.com/pKR7Ygn.png)
Гугл отказывается выдавать что-то вразумительное по запросу.
Что подразумевается под автотайлингом? о_0
Каков алгоритм, вкратце? о_0
😳 Мне кажется или ты меня троллишь?
клик
тыц
Но это же два одинаковых видео!![X8Ka79x](https://i.imgur.com/X8Ka79x.gif)
Окей, теперь понял, спасибо.