Описание: Все грешники после смерти попадают в ад и ты не исключение, но тебе повезло, ты попал в Ад Данте, на самый первый круг и только от твоего выбора будет зависеть, проведёшь ли ты вечность в аду или возьмёшь судьбу за рога и спустишься на девятый круг Ада, где сразишься с самим Люцифером за свою свободу или вечное проклятье.
Движок: Юнити, язык C#
Ассеты: Блендер и Artweaver
Платформа: ПК
Площадки распространения: VK Play, itch.io (возможно Steam)
Язык: Русский, английский, латинский
На связи капитан Говард. Не успел "отгреметь" релиз предыдущей игры, а я уже готов окунуться в новый водоворот работы над новой игрой, на этот раз немного более серьёзной, но по-прежнему условно коммерческой - Welcome to Dante's Inferno или по-русски - Добро пожаловать в «Ад Данте».
Некоторое время назад, точнее почти год, на одном из Двух Недельном Конкурсе Разработчиков Игр, я наткнулся на одну довольно интересную 2д игру (Мёртвый Анархист). Там некий волшебник в подземелье сражался со всякими монстрами, из них выпадал всякий лут, который улучшал мага, а сами подземелья были полны ловушек и всё это безобразие было выполнено в духе старой восьмибитной аркады Battle City. И я подумал, а что если перенести этот геймплей в 3д, а место действия переместить в ад? Но не в обычный, а тот который описал Данте Алигьери. Сделать мобов такими, чтобы в игре не было ни одного одинакового. Более того ввести перманентную смерть игрока и разрешить ему сохраняться только перед выходом из игры. Тем самым каждый забег в ад может стать для персонажа игрока последним, но сам персонаж после смерти никуда не девается, а навсегда остаётся в том круге ада, где игрок его потерял и будет, ждать нового персонажа, который игрок опять создаст, чтобы вместе пройти уровень. В игре, как и в произведении будет 9 уровней. Каждый уровень будет представлять собой мини инсталляцию, основанную на описании круга ада из книги. Нет, хоть это и упрощённый рогалик, процедурно генерировать уровень я не буду, всё планирую собрать своими ручками, а вот мобы будут рандомными, конечно не такими страшными как в той игре, но свою задачу по уничтожения игрока выполнять будут! И конечно боссы, куда же без них. Они у меня называются стражами круга, каждый будет со своей особенностью.
Более того перед мной стоит глобальная задача - это постепенная наработка игровых механик которые я планирую использовать в своих будущих коммерческих играх.
Если в OLD Racer я смог сделать целых три системы сохранений, отличное меню опций и попрактиковался с графическим дизайном уровней, то здесь я хочу достигнуть несколько другие цели:
1. Прописать несколько уникальных поведенческих моделей для вражеских мобов.
2. Сделать систему укрытий.
3. Рандомизация персонажей.
4. Настроить возможность игры под геймпад.
Вот в принципе то, на что я хочу потратить ближайший год жизни.
И нет, я не вчера задумал разработку этой игры, на самом деле около полу года назад я уже написал дизайн документ, а в обеденные перерывы на работе постепенно построил архитектуру кода и прописал несколько классов для рандомизации мобов. А концепт боёвки я уже протестировал на последнем конкурсе ТВГ. Так что вялотекущая разработка началось уже давно.
На этом всё.
На связи капитан Говард. Не успел "отгреметь" релиз предыдущей игры, а я уже готов окунуться в новый водоворот работы над новой игрой, на этот раз немного более серьёзной, но по-прежнему условно коммерческой - Welcome to Dante's Inferno или по-русски - Добро пожаловать в «Ад Данте».
Некоторое время назад, точнее почти год, на одном из Двух Недельном Конкурсе Разработчиков Игр, я наткнулся на одну довольно интересную 2д игру (Мёртвый Анархист). Там некий волшебник в подземелье сражался со всякими монстрами, из них выпадал всякий лут, который улучшал мага, а сами подземелья были полны ловушек и всё это безобразие было выполнено в духе старой восьмибитной аркады Battle City. И я подумал, а что если перенести этот геймплей в 3д, а место действия переместить в ад? Но не в обычный, а тот который описал Данте Алигьери. Сделать мобов такими, чтобы в игре не было ни одного одинакового. Более того ввести перманентную смерть игрока и разрешить ему сохраняться только перед выходом из игры. Тем самым каждый забег в ад может стать для персонажа игрока последним, но сам персонаж после смерти никуда не девается, а навсегда остаётся в том круге ада, где игрок его потерял и будет, ждать нового персонажа, который игрок опять создаст, чтобы вместе пройти уровень. В игре, как и в произведении будет 9 уровней. Каждый уровень будет представлять собой мини инсталляцию, основанную на описании круга ада из книги. Нет, хоть это и упрощённый рогалик, процедурно генерировать уровень я не буду, всё планирую собрать своими ручками, а вот мобы будут рандомными, конечно не такими страшными как в той игре, но свою задачу по уничтожения игрока выполнять будут! И конечно боссы, куда же без них. Они у меня называются стражами круга, каждый будет со своей особенностью.
Более того перед мной стоит глобальная задача - это постепенная наработка игровых механик которые я планирую использовать в своих будущих коммерческих играх.
Если в OLD Racer я смог сделать целых три системы сохранений, отличное меню опций и попрактиковался с графическим дизайном уровней, то здесь я хочу достигнуть несколько другие цели:
1. Прописать несколько уникальных поведенческих моделей для вражеских мобов.
2. Сделать систему укрытий.
3. Рандомизация персонажей.
4. Настроить возможность игры под геймпад.
Вот в принципе то, на что я хочу потратить ближайший год жизни.
И нет, я не вчера задумал разработку этой игры, на самом деле около полу года назад я уже написал дизайн документ, а в обеденные перерывы на работе постепенно построил архитектуру кода и прописал несколько классов для рандомизации мобов. А концепт боёвки я уже протестировал на последнем конкурсе ТВГ. Так что вялотекущая разработка началось уже давно.
На этом всё.
>рогулик
>процедурно генерировать уровень я не буду, всё планирую собрать своими ручками
Да блин, ты задолбал. Сначала гонки на медленных утюгах без подвески и передач, а теперь рогалик без процедурной генерации подземелий? Сделай лучше простенькую игру, там, крестики-нолики, например. Сложные жанры ты пока что не понимаешь.
Поясняю. Полностью рандомных врагов нереально сбалансировать. Если ты их балансируешь, выходит постепенное нарастание сложности... И отсутствие случайностей как таковых. Процедурные же карты используют локальную случайность: да, ты можешь сбалансировать сложность уровней от лёгкого до сложного, но каждый уровень будет разнообразным независимо от сложности. Плюс, в рогаликах ты вынужден часто умирать и проходить всё заново, а процедурные карты помогают избежать заучивания необходимых действий, что в обычных играх ведёт к утомлению и скуке (когда перепроходишь одну и ту же миссию несколько раз по одним декорациям).
Короче, рогалик без процедурки не рогалик.
Есть ещё жанр рогулайт (roguelite) - там избавляются от пермасмерти, т.е. после гибели ты не теряешь все заработанные ресурсы, а только небольшую часть. Однако даже в рогулайтах делают процедурную генерацию уровней, без неё суть жанра теряется.
>целых три системы сохранений, отличное меню опций и попрактиковался с графическим дизайном
Всё это можно сделать без создания и релиза игры. Более того, хорошая игра может выстрелить даже с плохим дизайном и кривыми сохранениями, а вот красивый дизайн с вялой начинкой смысла для игроков не имеет, не говоря уж о том, что дизайн у тебя... оставляет желать лучшего. Рекомендую сфокусироваться на ядре игры, чтобы сделать интересную (фановую) игру без графики и менюх - наберёшься более полезного опыта, чем раньше.
>потратить ближайший год жизни
По полчаса в день что ли? Понимаю, работа...
>уникальных поведенческих моделей
Для примитивных механик как у тебя это легко.
Рекомендую попробовать реализовать это:
https://en.wikipedia.org/wiki/Utility_system
Минимальная сложность + максимум "интеллекта" + чрезвычайно лёгкая кастомизация поведения NPC.
>Сделать систему укрытий.
Тоже легко решается, рейкастами от игрока и/или поиском ближайших укрытий типа блиндажей.
>Рандомизация персонажей.
Это вообще что? Если у тебя компонентный подход к созданию персонажей - рандомизация тривиальна.
>Настроить возможность игры под геймпад.
Не знаю, как в юнити, но в нормальном современном движке это не сложнее, чем клавиатурой. Только для тестирования нужен сам геймпад, чтобы оценить комфортность управления с него. Также китайские геймпады часто имеют странную раскладку и лучше заложить в игру ребинд клавиш геймпада. Я как-то китайский геймпад купил, а в большинстве игр он неправильно кнопки нажимает и ребинда нет...
>рогулик
>процедурно генерировать уровень я не буду, всё планирую собрать своими ручками
Да блин, ты задолбал. Сначала гонки на медленных утюгах без подвески и передач, а теперь рогалик без процедурной генерации подземелий? Сделай лучше простенькую игру, там, крестики-нолики, например. Сложные жанры ты пока что не понимаешь.
Поясняю. Полностью рандомных врагов нереально сбалансировать. Если ты их балансируешь, выходит постепенное нарастание сложности... И отсутствие случайностей как таковых. Процедурные же карты используют локальную случайность: да, ты можешь сбалансировать сложность уровней от лёгкого до сложного, но каждый уровень будет разнообразным независимо от сложности. Плюс, в рогаликах ты вынужден часто умирать и проходить всё заново, а процедурные карты помогают избежать заучивания необходимых действий, что в обычных играх ведёт к утомлению и скуке (когда перепроходишь одну и ту же миссию несколько раз по одним декорациям).
Короче, рогалик без процедурки не рогалик.
Есть ещё жанр рогулайт (roguelite) - там избавляются от пермасмерти, т.е. после гибели ты не теряешь все заработанные ресурсы, а только небольшую часть. Однако даже в рогулайтах делают процедурную генерацию уровней, без неё суть жанра теряется.
>целых три системы сохранений, отличное меню опций и попрактиковался с графическим дизайном
Всё это можно сделать без создания и релиза игры. Более того, хорошая игра может выстрелить даже с плохим дизайном и кривыми сохранениями, а вот красивый дизайн с вялой начинкой смысла для игроков не имеет, не говоря уж о том, что дизайн у тебя... оставляет желать лучшего. Рекомендую сфокусироваться на ядре игры, чтобы сделать интересную (фановую) игру без графики и менюх - наберёшься более полезного опыта, чем раньше.
>потратить ближайший год жизни
По полчаса в день что ли? Понимаю, работа...
>уникальных поведенческих моделей
Для примитивных механик как у тебя это легко.
Рекомендую попробовать реализовать это:
https://en.wikipedia.org/wiki/Utility_system
Минимальная сложность + максимум "интеллекта" + чрезвычайно лёгкая кастомизация поведения NPC.
>Сделать систему укрытий.
Тоже легко решается, рейкастами от игрока и/или поиском ближайших укрытий типа блиндажей.
>Рандомизация персонажей.
Это вообще что? Если у тебя компонентный подход к созданию персонажей - рандомизация тривиальна.
>Настроить возможность игры под геймпад.
Не знаю, как в юнити, но в нормальном современном движке это не сложнее, чем клавиатурой. Только для тестирования нужен сам геймпад, чтобы оценить комфортность управления с него. Также китайские геймпады часто имеют странную раскладку и лучше заложить в игру ребинд клавиш геймпада. Я как-то китайский геймпад купил, а в большинстве игр он неправильно кнопки нажимает и ребинда нет...
Насчет процедурки выражаю обжекшен.
Процедурные уровни в 90% случаев представляют собой унылое говно без задач и задумки.
Процедурные уровни хороши, когда из довольно крупных кусков-комнат делается подземелье (Айзек, например). А вот полностью сгенерированный данж отличается от вручную слевелдизайненного так же, как нейроарт от человеческого.
НО. В целом я с тобой даже и согласен.
Предлагаю ОПу сделать руками много уровней для разных периодов игры и тасовать их, отбирая последовательность для каждого прохождения. И всё. В пределах времени интереса, который потенциально может вызвать твоя игра(небольших пределах, понятненько?), проблема заучивания и уныния решена.
>Когда игру про жука доделаешь?
Сразу после этой, мне нужно наработать базу механик, чтобы я смог использовать их в ГАДе плюс я пилю контент, но это долго, так как всё делаю сам.
>>72439
>Процедурные уровни в 90% случаев представляют собой унылое говно без задач и задумки.
Вот именно. Я играл в небольшое кол-во рогаликов, а именно в Dead Cells и что меня так раздражало это то что по сути один и тот же уровень постоянно перетасовывался и запутывал меня плюс когда уровни генерируются невозможно выразить явно то что ты хотел показать игроку с помощью левел дизайна.
>Предлагаю ОПу сделать руками много уровней
Я один, и контент делать не самое быстрое занятие, по моим расчётам даже с такой простой графикой, как у меня будет целый месяц уходить на один только уровень.
>Да блин, ты задолбал.
Ты слишком много нафантазировал, я не собираюсь создавать второго айзека, это по прежнему будут восьмибитные танчики, только в другом сеттинге со статичными уровнями и внешне не будет одинаковых танчиков, а игроку вместо второго игрока будет помогать целая толпа предыдущих персонажей.
Короче как сделаю демку с первым кругом, так и увидите, предположительно, через два месяца, вот тогда можно будет делать выводы.
>в 90% случаев
>унылое говно без задач и задумки
То, что многие не умеют готовить вкусный торт, не означает, что сами по себе торты никому не нужны. Особенно когда речь идёт о празднике, на котором поедание торта является обязательным элементом. Боишься готовить торт - не будь организатором этого праздника или заплати кому-то за торт...
>Процедурные уровни хороши, когда из довольно крупных кусков-комнат делается подземелье
При чём тут метод генерации?
>полностью сгенерированный данж
>как нейроарт от человеческого
"Полностью сгенерированный данж" создаётся по.правилам, которые лично ты в него закладываешь. Нейроарт генерируется не по твоим правилам, а по правилам, которые нейросеть извлекла из готовых фотографий и рисунков, которые ты даже не видел. Генератор данжа принимает зерно генерации (число), чтобы построить уровень по правилам; нейронка - такое же зерно генерации в форме текста (который преобразуется в очень длинный набор чисел), чтоб сгенерировать нечто похожее на то, что она "видела". Поэтому разница на самом деле большая и состоит в том, кто закладывает в машину правила работы (обучает её тому, какой контент нужно создавать).
>Айзек, например
Плохой пример, там все комнаты одинаковые...
Попробуй этот рогалик, он минимален, но хорош:
https://shatteredpixel.com/shatteredpd/
Там тоже есть "комнаты", но соединяются в один неразрывный уровень - этаж подземелья. Поэтому исследовать его интересно и не надоедает после множества проигрышей. В этом основа рогаликов.
>>72732
>что меня так раздражало это то что по сути один и тот же уровень постоянно перетасовывался и запутывал меня
Skill issue. Рогалики - не для тебя, не твой жанр. Это "запутывание" - сердце рогалика, баз него ты просто спидранишь одну и ту же последовательность. Тебе, наверное, ближе по духу RPG со статичным миром. Рогалики во многом подражают RPG, отличаясь от них процедурной генерацией мира и пермасмертью.
>плюс когда уровни генерируются невозможно выразить явно то что ты хотел показать игроку с помощью левел дизайна.
Skull issue левел-дизайнера. Например, в SPD (выше) игра делится на четыре основных биома данжа (при этом каждый из этих биомов состоит из 5 этажей):
1. Канализация с крысами и слизью. Типа туториал.
2. Подземная тюрьма со скелетами и бандитами.
3. Подземный город с одержимыми и роботами.
4. "Ад", место обитания демонов разных видов.
Игра в целом рассказывает историю и имеет кучку неигровых персонажей с квестами, и многое можно понять чисто из расположений элементов на карте. Процедурная генерация никак не мешает, а только дополняет и усиливает реиграбельность игры.
>целый месяц уходить на один только уровень
Значит, плохо владеешь инструментами...
>внешне не будет одинаковых танчиков
Есть ли смысл, если отличия только внешние?
>помогать целая толпа предыдущих персонажей
Вот это уже очень сложно как в плане оптимизации, так и в плане геймплея. Если персонажи мешают игроку, тогда от них больше вреда, чем помощи.
>предположительно, через два месяца
Лучше почаще сообщать о прогрессе...
>в 90% случаев
>унылое говно без задач и задумки
То, что многие не умеют готовить вкусный торт, не означает, что сами по себе торты никому не нужны. Особенно когда речь идёт о празднике, на котором поедание торта является обязательным элементом. Боишься готовить торт - не будь организатором этого праздника или заплати кому-то за торт...
>Процедурные уровни хороши, когда из довольно крупных кусков-комнат делается подземелье
При чём тут метод генерации?
>полностью сгенерированный данж
>как нейроарт от человеческого
"Полностью сгенерированный данж" создаётся по.правилам, которые лично ты в него закладываешь. Нейроарт генерируется не по твоим правилам, а по правилам, которые нейросеть извлекла из готовых фотографий и рисунков, которые ты даже не видел. Генератор данжа принимает зерно генерации (число), чтобы построить уровень по правилам; нейронка - такое же зерно генерации в форме текста (который преобразуется в очень длинный набор чисел), чтоб сгенерировать нечто похожее на то, что она "видела". Поэтому разница на самом деле большая и состоит в том, кто закладывает в машину правила работы (обучает её тому, какой контент нужно создавать).
>Айзек, например
Плохой пример, там все комнаты одинаковые...
Попробуй этот рогалик, он минимален, но хорош:
https://shatteredpixel.com/shatteredpd/
Там тоже есть "комнаты", но соединяются в один неразрывный уровень - этаж подземелья. Поэтому исследовать его интересно и не надоедает после множества проигрышей. В этом основа рогаликов.
>>72732
>что меня так раздражало это то что по сути один и тот же уровень постоянно перетасовывался и запутывал меня
Skill issue. Рогалики - не для тебя, не твой жанр. Это "запутывание" - сердце рогалика, баз него ты просто спидранишь одну и ту же последовательность. Тебе, наверное, ближе по духу RPG со статичным миром. Рогалики во многом подражают RPG, отличаясь от них процедурной генерацией мира и пермасмертью.
>плюс когда уровни генерируются невозможно выразить явно то что ты хотел показать игроку с помощью левел дизайна.
Skull issue левел-дизайнера. Например, в SPD (выше) игра делится на четыре основных биома данжа (при этом каждый из этих биомов состоит из 5 этажей):
1. Канализация с крысами и слизью. Типа туториал.
2. Подземная тюрьма со скелетами и бандитами.
3. Подземный город с одержимыми и роботами.
4. "Ад", место обитания демонов разных видов.
Игра в целом рассказывает историю и имеет кучку неигровых персонажей с квестами, и многое можно понять чисто из расположений элементов на карте. Процедурная генерация никак не мешает, а только дополняет и усиливает реиграбельность игры.
>целый месяц уходить на один только уровень
Значит, плохо владеешь инструментами...
>внешне не будет одинаковых танчиков
Есть ли смысл, если отличия только внешние?
>помогать целая толпа предыдущих персонажей
Вот это уже очень сложно как в плане оптимизации, так и в плане геймплея. Если персонажи мешают игроку, тогда от них больше вреда, чем помощи.
>предположительно, через два месяца
Лучше почаще сообщать о прогрессе...
Вот я когда писал обсёр полной процедурной генерации, как раз и думал о Pixel Dungeon. А также о DC:SS и прочих классических рогаликах. А также о #назови-свой-диаблоид#, Below, Sundered и прочих современных играх, использующих процедурную генерацию уровней.
Получаются совершенно монотонные неотличимые уровни в пределах биома. Не то чтобы плохие, но никакого профита от этой вашей процедурной генерации за пределами 4Х игор с генерацией галактик и континентов нету.
Кстати, в жанре диаблоидов у меня даже пример есть хороший - Grimdawn. Все карты отрисованы заранее, но при запуске меняется конфигурация открытых и закрытых проходов, так что проходишь ты их слегка по-разному. Всё, эффект реиграбельности достигнут. А бонусом сверху прекрасные логично слевелдизайненные уровни.
>как раз и думал о Pixel Dungeon
Извинись.
>совершенно монотонные неотличимые уровни в пределах биома
Если так подумать, тебе и в Minecraft, наверное, ландшафт не нравится, и ты будешь играть только во вручную сконструированные карты, да? И чтоб ископаемые ресурсы были всегда в одних и тех же координатах на каждую новую игру, и чтоб в сундуках сокровищ всегда одни и те же предметы... Может, тебе вообще лучше только летсплеи смотреть - там-то уж точно всё линейно и предрешено.
>но никакого профита от этой вашей процедурной генерации
Профит в том, что ты не топаешь напролом к заранее известной точке на карте, как можно сделать, например, в самом первом Fallout, чтобы заспидранить игру за считанные минуты, тогда как в игру напихали контента на долгие часы исследования и всевозможных ситуаций. Игроки оптимизируют из игры весь фан, если им дать такую возможность, и процедурная генерация позволяет игроку заново исследовать карту, вместо того, чтобы топать по заранее известному маршруту.
Если у тебя в игре есть, например, компас и вращающаяся камера, то ты, по задумке, должен использовать компас, чтобы ориентироваться на местности. Но если ты уже знаешь карту как свои пять пальцев, ты можешь просто по памяти пройти её вдоль и поперёк без компаса - механика навигации на местности просто испаряется. А если карта генерируется заново, то ты не знаешь точного маршрута до цели - и есть ли эта цель где-то - и вынужден использовать механику компаса для исследования местности. В этом фан - ты знаешь, из чего состоит карта (тайлы, типы комнат, типы врагов, правила генерации и т.д.), но ты не знаешь, что ожидает тебя за следующим поворотом.
Можно сравнить карты в играх с сюжетом. Многие не любят "спойлеры" - т.е. узнавать о сюжетных поворотах и финале до того, как сами посмотрят/прочитают источник. Так и с картами в играх. Если узнаешь статичную карту в игре из Вики - всё, ты проспойлерил себе игру, убил фан от исследования. Зачем играть, если уже знаешь карту? А процедурную генерацию невозможно проспойлерить, т.к. даже если ты знаешь все правила генерации, ты понятия не имеешь, что генератор выдаст на этот раз. В результате получаешь spoiler-free прохождение карты каждый забег. Можно распространить это на любые элементы игры, но, как правило, карты - это самое простое, потому что от них требуется только набор проходимых комнат/коридоров и разбросанные внутри них ассеты. В идеальном будущем любой сможет запросить себе уникальную игру на вечер у персонального ИИ, и получит опыт процедурной генерации всего игрового контента.
>конфигурация открытых и закрытых проходов
Получается, что карты одни и те же, но ты вынужден каждый раз БРУТФОРСИТЬ одни и те же двери, проходы, замки и т.п., надеясь, что открытая дверь окажется одной из первых. В брутфорсе нет фана, потому что это не исследование, а механический перебор всех вариантов по порядку. Конечно, всё зависит от конкретного исполнения. Если ты издалека видишь правильный маршрут - это одно, а если безуспешно толкаешь каждую дверь - совсем другое. Но это слишком поверхностная генерация. Глубокая генерация отличается тем, что ты не обязан толкать каждую дверь и соваться в каждый проход, чтобы пройти уровень и получить от этого удовольствие - независимо от механик.
>прекрасные логично слевелдизайненные уровни
Можешь прекрасно и логично слевелдизайнить генератор уровней. Кто мешает? Проблема тут в том, что процедурную генерацию по ошибке считают волшебной палочкой типа нейросетей и поэтому используют не по назначению, а чтобы сэкономить время разработки. На самом деле, разработка качественной процедурной генерации займёт не меньше, чем создание карт вручную, а то и больше. Но результат обычно стоит вложенных усилий.
Как я понимаю, у нас просто разные интересы в играх.
>как раз и думал о Pixel Dungeon
Извинись.
>совершенно монотонные неотличимые уровни в пределах биома
Если так подумать, тебе и в Minecraft, наверное, ландшафт не нравится, и ты будешь играть только во вручную сконструированные карты, да? И чтоб ископаемые ресурсы были всегда в одних и тех же координатах на каждую новую игру, и чтоб в сундуках сокровищ всегда одни и те же предметы... Может, тебе вообще лучше только летсплеи смотреть - там-то уж точно всё линейно и предрешено.
>но никакого профита от этой вашей процедурной генерации
Профит в том, что ты не топаешь напролом к заранее известной точке на карте, как можно сделать, например, в самом первом Fallout, чтобы заспидранить игру за считанные минуты, тогда как в игру напихали контента на долгие часы исследования и всевозможных ситуаций. Игроки оптимизируют из игры весь фан, если им дать такую возможность, и процедурная генерация позволяет игроку заново исследовать карту, вместо того, чтобы топать по заранее известному маршруту.
Если у тебя в игре есть, например, компас и вращающаяся камера, то ты, по задумке, должен использовать компас, чтобы ориентироваться на местности. Но если ты уже знаешь карту как свои пять пальцев, ты можешь просто по памяти пройти её вдоль и поперёк без компаса - механика навигации на местности просто испаряется. А если карта генерируется заново, то ты не знаешь точного маршрута до цели - и есть ли эта цель где-то - и вынужден использовать механику компаса для исследования местности. В этом фан - ты знаешь, из чего состоит карта (тайлы, типы комнат, типы врагов, правила генерации и т.д.), но ты не знаешь, что ожидает тебя за следующим поворотом.
Можно сравнить карты в играх с сюжетом. Многие не любят "спойлеры" - т.е. узнавать о сюжетных поворотах и финале до того, как сами посмотрят/прочитают источник. Так и с картами в играх. Если узнаешь статичную карту в игре из Вики - всё, ты проспойлерил себе игру, убил фан от исследования. Зачем играть, если уже знаешь карту? А процедурную генерацию невозможно проспойлерить, т.к. даже если ты знаешь все правила генерации, ты понятия не имеешь, что генератор выдаст на этот раз. В результате получаешь spoiler-free прохождение карты каждый забег. Можно распространить это на любые элементы игры, но, как правило, карты - это самое простое, потому что от них требуется только набор проходимых комнат/коридоров и разбросанные внутри них ассеты. В идеальном будущем любой сможет запросить себе уникальную игру на вечер у персонального ИИ, и получит опыт процедурной генерации всего игрового контента.
>конфигурация открытых и закрытых проходов
Получается, что карты одни и те же, но ты вынужден каждый раз БРУТФОРСИТЬ одни и те же двери, проходы, замки и т.п., надеясь, что открытая дверь окажется одной из первых. В брутфорсе нет фана, потому что это не исследование, а механический перебор всех вариантов по порядку. Конечно, всё зависит от конкретного исполнения. Если ты издалека видишь правильный маршрут - это одно, а если безуспешно толкаешь каждую дверь - совсем другое. Но это слишком поверхностная генерация. Глубокая генерация отличается тем, что ты не обязан толкать каждую дверь и соваться в каждый проход, чтобы пройти уровень и получить от этого удовольствие - независимо от механик.
>прекрасные логично слевелдизайненные уровни
Можешь прекрасно и логично слевелдизайнить генератор уровней. Кто мешает? Проблема тут в том, что процедурную генерацию по ошибке считают волшебной палочкой типа нейросетей и поэтому используют не по назначению, а чтобы сэкономить время разработки. На самом деле, разработка качественной процедурной генерации займёт не меньше, чем создание карт вручную, а то и больше. Но результат обычно стоит вложенных усилий.
Как я понимаю, у нас просто разные интересы в играх.
>Извинись.
Да игра-то хорошая. Мой гейтвей в труъ рогалики, очень уважаю её.
>и в Minecraft
Авотинет. Я выше писал что легитимизирую процедурку для генерации крупных естественных карт для Цивы. Опенворлд песочницы тоже, конечно, подходят, именно по критерию крупных естественных карт и эксплора.
>Зачем играть, если уже знаешь карту?
Ну тут на вкус на цвет. Я вот, например, комбинирую: эксплорю в метроидваниях, пока эксплорится, а потом открываю вики и иду дособирать то, что проебал. А мой сосед спидранит. А сосед с верхнего этажа принципиально не читает игровые вики для чистого экспириенса. И т.д.
>Многие не любят "спойлеры"
Гуд поинт, но в играх с элементами рогалика я бы гораздо важнее в этом плане поднял полурандомно собранный билд персонажа и вытекающий из него подход к боевке и менеджменту. А не пересборку подземелий (а в случае с концептом ОПа это таки подземелья, а не опенворлд).
>у нас просто разные интересы в играх
Ну дык это и делает наш срач джентльменский конверсейшен!
Вопрос: как создать иллюзию бесконечного мира?
Как раз с помощью процедурной генерации карт. Ты попадаешь в случайное место бесконечного мира, несмотря на то, что это место ограничено стенами со всех сторон. Тут только часть твоих союзников - все остальные где-то в другом месте - не успели до тебя добраться, например. Это органично вписывается в концепцию бесконечного ада, где бесконечно сидят бесконечные враги и бесконечные союзники.
Если карты статичные, то союзники либо заполняют пространство так, что врагам некуда встать, либо они исчезают, что не вяжется с концепцией ада, где души бесконечно мучаются в специальном для них месте.
>>73978
>мой сосед спидранит
Вообще, если у тебя карта генерируется, ты можешь генерировать одну и ту же карту по сиду и проходить одинаковым маршрутом сколько влезет... И в то же время Майнкрафт спидранят по рандомному сиду.
Генерация добавляет сложность в дизайн игры, но полностью статичные карты не подходят рогаликам, особенно если по лору (или по логике) бесконечное пространство с бесконечным населением.
>Вообще, если у тебя карта генерируется, ты можешь генерировать одну и ту же карту по сиду и проходить одинаковым маршрутом сколько влезет... И в то же время Майнкрафт спидранят по рандомному сиду.
В майнкрафте так и делают - скриптами перебирают много сидов пока не найдут подходящие условия, потом задрачивают один сид.
Ты сам то осилил прочитать что у тебя на скрине и почему Set Seed ранится за 2 минуты, а не за 7?
На связи капитан Говард. Спешу поделится своим прогрессом по разработке игры.
Если коротко, то всё что запланировал сделать, сделал.
А теперь подробнее.
1. Доделать модель персонажа с первым комплектом доспехов, текстуринг, материалы, анимции все необходимые.
На самом деле я не просто доделал, я полностью перемоделил меш персонажа, создал новые анимации, нарисовал текстуры и подготовил модель под кастомизацию. Более того я сделал простенький второй комплект доспехов, чтобы настроить рандом кастомизации персонажа.
2.Создать контроллер персонажа с анимацией
Ооо. Это особенная часть, я максимально на сколько смог, проработал контроллер, чтобы он был отзывчивым для аркады и простым в управлении. Я учёл последние несколько лет критики стримеров по поводу моих контроллеров, особенного этого мальчика из Челябинска. Как я понимаю его типаж и есть моя целевая аудитория поэтому специально запускал старые твгшные игры и вспоминал всё что ему не нравилась и пытался понять почему и как это устранить.
Так же анимацию я настроил немного особым образом. Я отказался от традиционного юнити подхода со стрелками в аниматоре, чтобы избежать паутины и все анимации сделал независимыми, таким образом я могу в любой момент запустить любую анимацию, без особой возни в редакторе.
3.Создать обёртку игры, менюшки, UI
Ну здесь всё просто. Я столько раз это делал, что уже заготовил целые паки скриптов, единственно я знатно обосрался с настройкой меню под выбор кнопок для контроллера, старая система инпутов в юнити работает крайне плохо, и просто так менять копки, не так уж и легко. Я могу это сделать выбор кнопок клавиатуры, как я это сделал в гонках, но тогда у меня отрубается джостик, а вернуть геймпад это дикие костыли через апдейт. И нет новую систему инпутов в юнити я не юзал, просто хрень какая-то. Пока оставил для пользователя просто 3и варианта игры, Через клавиатуру и мышь, через толко клавиатуру и через геймпад.
4.Создать механику рандомизации доспехов персонажа при взаимодействии с бонусом
Самая интересная часть моей работы. Если коротко, то все работает именно так, как я задумал. Игрок наступает на бонус и бонус постепенно прокачивает игрока. В данном случае бонус прокачивает физику и визуал персонажа, делая каждого внешне разным, но с одними и теми же параметрами в зависимости от уровня. Более того, я полностью до 9го уровня прописал все апдейты героя, которые он получит за бонус.
5.Нарисовать все бонусы персонажа в игре.
Относительно легко, так как для предметов и персонажей я выбрал минималистический стиль, текстурка на 256 (иногда в крайнем случае 1024) и обводка граней чёрным. А вот насчёт окружения я чего то комплексую. Я могу замоделить объект любой сложности, но во первых это время затратно (я не могу потратить целый месяц например на один дворец с чертями) во вторых это ресурсоёмко. Поэтому я выбрал лоуполи модели и хейнд пейт текстуры, вот только я крайне плохо рисую текстуры особенно не персонажей и это начинает меня раздражать, хочется визуал как во втором торчлайте, а получается как в третьем варкрафте.
На этом с прогрессом всё.
План на предстоящий месяц:
1. Прописать скрипты для 3х магических бонусов игрока , начиная от 1 и заканчивая 5м или 9м уроавнем(пока не решил)
2. Замоделить ещё 3и комплекта доспехов для игрока.
3.Создать стандартную модель низшего и высшего демона(это один и тот же демон просто на разных степенях развития.)
4.Создать 2а комплекта доспехов для низшего демона и высшего демона.
5.Написать скрипт поведения для стрелка.
6.Написать скрипт поведения для воина.
7.Написать скрипт поведения для волшебника.
8.Написать скрипт поведения для мясника.
9.Написать скрипт поведения для убийцы
10.Написать скрипт поведения для охотника.
11.Связать врагов и игрока настроить их взаимодействие и урон.
На этом всё ниже буду пытаться выкладывать видосы с прогрессом.
На связи капитан Говард. Спешу поделится своим прогрессом по разработке игры.
Если коротко, то всё что запланировал сделать, сделал.
А теперь подробнее.
1. Доделать модель персонажа с первым комплектом доспехов, текстуринг, материалы, анимции все необходимые.
На самом деле я не просто доделал, я полностью перемоделил меш персонажа, создал новые анимации, нарисовал текстуры и подготовил модель под кастомизацию. Более того я сделал простенький второй комплект доспехов, чтобы настроить рандом кастомизации персонажа.
2.Создать контроллер персонажа с анимацией
Ооо. Это особенная часть, я максимально на сколько смог, проработал контроллер, чтобы он был отзывчивым для аркады и простым в управлении. Я учёл последние несколько лет критики стримеров по поводу моих контроллеров, особенного этого мальчика из Челябинска. Как я понимаю его типаж и есть моя целевая аудитория поэтому специально запускал старые твгшные игры и вспоминал всё что ему не нравилась и пытался понять почему и как это устранить.
Так же анимацию я настроил немного особым образом. Я отказался от традиционного юнити подхода со стрелками в аниматоре, чтобы избежать паутины и все анимации сделал независимыми, таким образом я могу в любой момент запустить любую анимацию, без особой возни в редакторе.
3.Создать обёртку игры, менюшки, UI
Ну здесь всё просто. Я столько раз это делал, что уже заготовил целые паки скриптов, единственно я знатно обосрался с настройкой меню под выбор кнопок для контроллера, старая система инпутов в юнити работает крайне плохо, и просто так менять копки, не так уж и легко. Я могу это сделать выбор кнопок клавиатуры, как я это сделал в гонках, но тогда у меня отрубается джостик, а вернуть геймпад это дикие костыли через апдейт. И нет новую систему инпутов в юнити я не юзал, просто хрень какая-то. Пока оставил для пользователя просто 3и варианта игры, Через клавиатуру и мышь, через толко клавиатуру и через геймпад.
4.Создать механику рандомизации доспехов персонажа при взаимодействии с бонусом
Самая интересная часть моей работы. Если коротко, то все работает именно так, как я задумал. Игрок наступает на бонус и бонус постепенно прокачивает игрока. В данном случае бонус прокачивает физику и визуал персонажа, делая каждого внешне разным, но с одними и теми же параметрами в зависимости от уровня. Более того, я полностью до 9го уровня прописал все апдейты героя, которые он получит за бонус.
5.Нарисовать все бонусы персонажа в игре.
Относительно легко, так как для предметов и персонажей я выбрал минималистический стиль, текстурка на 256 (иногда в крайнем случае 1024) и обводка граней чёрным. А вот насчёт окружения я чего то комплексую. Я могу замоделить объект любой сложности, но во первых это время затратно (я не могу потратить целый месяц например на один дворец с чертями) во вторых это ресурсоёмко. Поэтому я выбрал лоуполи модели и хейнд пейт текстуры, вот только я крайне плохо рисую текстуры особенно не персонажей и это начинает меня раздражать, хочется визуал как во втором торчлайте, а получается как в третьем варкрафте.
На этом с прогрессом всё.
План на предстоящий месяц:
1. Прописать скрипты для 3х магических бонусов игрока , начиная от 1 и заканчивая 5м или 9м уроавнем(пока не решил)
2. Замоделить ещё 3и комплекта доспехов для игрока.
3.Создать стандартную модель низшего и высшего демона(это один и тот же демон просто на разных степенях развития.)
4.Создать 2а комплекта доспехов для низшего демона и высшего демона.
5.Написать скрипт поведения для стрелка.
6.Написать скрипт поведения для воина.
7.Написать скрипт поведения для волшебника.
8.Написать скрипт поведения для мясника.
9.Написать скрипт поведения для убийцы
10.Написать скрипт поведения для охотника.
11.Связать врагов и игрока настроить их взаимодействие и урон.
На этом всё ниже буду пытаться выкладывать видосы с прогрессом.
>А вот насчёт окружения я чего то комплексую.
Делаешь модули @ процедурно генерируешь уровни:
https://book.leveldesignbook.com/process/blockout/metrics/modular
На связи капитан Говард. Спешу поделится своим прогрессом по разработке игры.
Если коротко, работал над проектом почти всё свободное время, однако не выполнил и половины из запланированного, как так получалось, об этом ниже.
1. Прописать скрипты для 3х магических бонусов игрока, начиная от 1 и заканчивая 9м уровнем
Это оказалось самой интересной работой за прошедшее время. Я остановился на том что 3и доступных заклинания игрока можно прокачивать до 9-го уровня. Так же накидал всяких эффектов магии, настроил звуки ( правда они иногда глючат), связал прогресс персонажа с количеством полученных бонусов заклинания.
2. Замоделить ещё 3и комплекта доспехов для игрока.
Тут как и запланировал, создал 5 паков доспехов, чтобы во время их подбора один персонаж никогда не был похожим на другого. Конечно в любой РПГ эта опция доступна по умолчанию, но у меня это несколько упрощённо, обычным рандомом игроку выдаётся определённый доспех.
3. Создать стандартную модель низшего и высшего демона(это один и тот же демон просто на разных степенях развития.)
После некоторого мозгового штурма, пришёл к выводу, что не стоит жопить на качестве игры. Изначально я планировал сделать одну модель с анимациями, а потом просто накидывать на неё дополнительный меш видоизменяя его, тем самым получая и низшего и высшего демона и стража круга. Позже решил отделить модель персонажа от моделей врагов. Теперь же нацелился на 4е типа моделей и скелетов: 1 - игрок, 2 - низший демон/бес, 3 - высший демон/демон и 4 - страж круга/босс. Сейчас я только закончил модель низшего демона и разобрался с его базовой текстурой, даже скелет до конца не доделал, не говоря уже о скининге, ригинге или анимации, но работа идёт медленно, но уверенно.
4. Создать 2а комплекта доспехов для низшего демона и высшего демона.
Вот тут то я и застрял на весь месяц, потому что решил сразу сделать весь пак доспехов и элементов кастомизации для бесов сразу и не 5-ть, а 6 - ть. Хоть и текстурки у меня максимально примитивные, так как я писал об этом ранее, не умею рисовать и размером они всего 256х256, то качество развёртки должно быть максимально высоким, оказывается при таком размере текстуры любая линия по диагонали на развёртке превращается на модели в жуткую лесенку и выглядит это мягко сказать некрасиво, вот и корпел над развёрткой, стараясь выводить только прямые углы, колдуя над швами на модели и толщиной линии кистей.
12. Написать код для сохранения параметров персонажа для последующего их загрузки.
Здесь всё просто, код царапать на консольке, это тебе не красивые модельки делать. За одно утро накидал основу для всей будущей системы сохранения в игре, возможно это может показаться диким - сохранение в роуглайте, но у меня там только перманентная смерть, а просто выйти в любой момент из игры и начать с этого же момента дальше мне кажется максимально демократичным решением. Не знаю, возможно мне кажется, но код писать у меня получается лучше, чем визуализировать, хоть это и не точно.
Остальные пункты, я так и не успел, поэтому они переходят на следующий месяц с новыми пунктами планами.
План на предстоящий месяц:
1. Доделать беса; скелет, скининг, ригинг и пак с анимациями.
2. Создать высшего демона; модель, текстура, скелет, скининг, ригинг и пак с анимациями.
3. Создать пак доспехов высшего демона, всего будет 3и пака с доспехами.
4. Написать скрипт поведения для стрелка.
5. Написать скрипт поведения для воина.
6. Написать скрипт поведения для волшебника.
7. Написать скрипт поведения для мясника.
8. Написать скрипт поведения для убийцы
9. Написать скрипт поведения для охотника.
10. Связать врагов и игрока настроить их взаимодействие и урон.
На этом всё.
На связи капитан Говард. Спешу поделится своим прогрессом по разработке игры.
Если коротко, работал над проектом почти всё свободное время, однако не выполнил и половины из запланированного, как так получалось, об этом ниже.
1. Прописать скрипты для 3х магических бонусов игрока, начиная от 1 и заканчивая 9м уровнем
Это оказалось самой интересной работой за прошедшее время. Я остановился на том что 3и доступных заклинания игрока можно прокачивать до 9-го уровня. Так же накидал всяких эффектов магии, настроил звуки ( правда они иногда глючат), связал прогресс персонажа с количеством полученных бонусов заклинания.
2. Замоделить ещё 3и комплекта доспехов для игрока.
Тут как и запланировал, создал 5 паков доспехов, чтобы во время их подбора один персонаж никогда не был похожим на другого. Конечно в любой РПГ эта опция доступна по умолчанию, но у меня это несколько упрощённо, обычным рандомом игроку выдаётся определённый доспех.
3. Создать стандартную модель низшего и высшего демона(это один и тот же демон просто на разных степенях развития.)
После некоторого мозгового штурма, пришёл к выводу, что не стоит жопить на качестве игры. Изначально я планировал сделать одну модель с анимациями, а потом просто накидывать на неё дополнительный меш видоизменяя его, тем самым получая и низшего и высшего демона и стража круга. Позже решил отделить модель персонажа от моделей врагов. Теперь же нацелился на 4е типа моделей и скелетов: 1 - игрок, 2 - низший демон/бес, 3 - высший демон/демон и 4 - страж круга/босс. Сейчас я только закончил модель низшего демона и разобрался с его базовой текстурой, даже скелет до конца не доделал, не говоря уже о скининге, ригинге или анимации, но работа идёт медленно, но уверенно.
4. Создать 2а комплекта доспехов для низшего демона и высшего демона.
Вот тут то я и застрял на весь месяц, потому что решил сразу сделать весь пак доспехов и элементов кастомизации для бесов сразу и не 5-ть, а 6 - ть. Хоть и текстурки у меня максимально примитивные, так как я писал об этом ранее, не умею рисовать и размером они всего 256х256, то качество развёртки должно быть максимально высоким, оказывается при таком размере текстуры любая линия по диагонали на развёртке превращается на модели в жуткую лесенку и выглядит это мягко сказать некрасиво, вот и корпел над развёрткой, стараясь выводить только прямые углы, колдуя над швами на модели и толщиной линии кистей.
12. Написать код для сохранения параметров персонажа для последующего их загрузки.
Здесь всё просто, код царапать на консольке, это тебе не красивые модельки делать. За одно утро накидал основу для всей будущей системы сохранения в игре, возможно это может показаться диким - сохранение в роуглайте, но у меня там только перманентная смерть, а просто выйти в любой момент из игры и начать с этого же момента дальше мне кажется максимально демократичным решением. Не знаю, возможно мне кажется, но код писать у меня получается лучше, чем визуализировать, хоть это и не точно.
Остальные пункты, я так и не успел, поэтому они переходят на следующий месяц с новыми пунктами планами.
План на предстоящий месяц:
1. Доделать беса; скелет, скининг, ригинг и пак с анимациями.
2. Создать высшего демона; модель, текстура, скелет, скининг, ригинг и пак с анимациями.
3. Создать пак доспехов высшего демона, всего будет 3и пака с доспехами.
4. Написать скрипт поведения для стрелка.
5. Написать скрипт поведения для воина.
6. Написать скрипт поведения для волшебника.
7. Написать скрипт поведения для мясника.
8. Написать скрипт поведения для убийцы
9. Написать скрипт поведения для охотника.
10. Связать врагов и игрока настроить их взаимодействие и урон.
На этом всё.
По замыслу в аду скопилось много доспехов из разных эпох
Там на 1й пикче доспехи, римского центуриона, спартанца и конкистадора, ещё два доспеха - викингав рогатом шлеме и крестоносца в колючем шлеме.
>один персонаж никогда не был похожим на другого
Честно скажу - с первого взгляда на скриншоты мне показалось, что это один и тот же персонаж зачем-то три раза отображается. Только когда я внимательно присмотрелся, как на картинках "найдите 10 отличий", понял, что они разные. Ты так и планируешь продолжать? Или будет больше отличительных особенностей?
Почитай статьи по ссылкам, погугли:
https://duckduckgo.com/?q=oatmeal+problem+in+procedural+generation&assist=true
Это реальная проблема. Не стоит надеяться, что просто навалив вариаций брони у тебя получится круто.
>Это реальная проблема. Не стоит надеяться, что просто навалив вариаций брони у тебя получится круто.
Я думаю у меня других вариантов, нет.
Даже если я буду моделить по одному бесу на каждый уровень, это уже 9 штук, а для того чтобы создать целый ассет беса уходит почти месяц. 9 месяцев только на низших демонов, а ещё есть высшие демоны и стражи круга, которых тоже должно быть минимум девять. И это я не посчитал уникальных монстров, типа гарпий или кентавров, которые также иногда встречаются на уровне.
Поэтому буду продолжать в том же ключе. Сейчас я уже закончил с бесами и интегрировал их в движок, осталось код добавить.
Далее планирую начать пилить высших демонов, у них будет 3 типа брони, хотя теперь подумываю увеличить некоторые элементы брони вроде шлемов и наплечников до 6, так как согласен с тобой, вариативность здесь условная.
Все более менее успешные разрабы советуют доводить проекты до конца, так что не продолжать я не могу.
Просто говоришь - все конец. Видишь как просто.