Послал душную офисную жизнь и бюрократов в ВУЗе. Самостоятельно изучил программирование и гейм-дизайн. Сделал игру «Echoes of the Abyss» (трейлер ниже) – экшн-рогалик, где мир трансформируется в зависимости от уровня Безумия героя.
Регулярно проходил по несколько этапов сомнений, подавленности, воодушевленности и вкалывал целыми сутками
Все, у кого была и есть похожая история, делитесь опытом, и как вы справлялись с трудностями? Если хотите пообщаться, можно в Дискорд https://discord.gg/gtfVhb4q
Всем привет. Поработал над светом учитывая комментарии под предыдущими постами. Пока успел переделать только малую часть, выбирая не большие локации т.к времени на запечку освещения уходит крайне много.
Эти скриншоты пока все, что я успел переделать и запечь. Знаю что многие хотели бы видеть наглядное сравнение было/стало, но пока нет возможности этого сделать. Это не последний пост по освещению.
На все локации которые нужно перезапечь с моей среднечковой конфигурацией ПК займёт пару месяцев скорее всего.
Итак, здравствуйте, пользователи Пикабу! Меня зовут Андрей, я ученик 11 класса и вот уже 2,5 года я пишу свою игру. В этой статье я бы хотел поделиться с вами своей историей: от идеи до релиза.
Да, это я:)
НАЧАЛО ПУТИ
Итак, начнем! Долгое время мы с друзьями пытались снимать мини-сериалы на ютубе. Как вы можете догадаться, ничего успешного из этого не вышло. И вот в один день мне пришла мысль: "К черту это все, все равно наши видео только знакомые смотрят, хочу сделать игру!" То было лето 2021 года, я переходил в 9 класс. Друзья идею поддержали, и я тут же начал изучать движок Unity и язык C#. Давным-давно мне уже приходилось с ними сталкиваться, но дальше колобка, прыгающего по стыренным из интернета платформам, дело не дошло. В принципе, первое, что я сделал - было повторение того колобка, чтобы узнать базовые механики и интерфейс Unity.
Это, определенно, шедевр!
АРКАДЫ, РЫЦАРЬ, 2 СКЕЛЕТА
Спустя пару недель я решил, что экспериментального опыта мне достаточно(разумеется, я ошибался) и пора сделать что-то более серьезное, но все же простую аркаду. Это должен был быть платформер про рыцаря и темный замок со скелетами и призраками(в плане сеттинга мне сильно подсказала игра "Rogue Legacy"). Казалось бы, обычная детская игрушка, но в моей задумке было написание 5 сложнейших уровней, в которых поражение приводило бы к перепрохождению уровня целиком. В конце нас бы ждал босс - лич!
Рыцарь, выполненный в стиле голова = тело
К проекту я отнесся серьезно. Были созданы концепты, сценарий, план. С появлением спрайта рыцаря, я начал его анимировать. Большую часть кода брал из своих наработок с колобком. И вот тут начались первые проблемы: команда! Рисовать я не умею, но у меня есть друзья, которые занимаются рисованием и в будущем планируют становиться дизайнерами. К таким, в том числе, относится и моя сестра. В начале процесс рисования платформ, ловушек и концептов шел более менее оперативно, но чем дальше - тем медленнее. Однажды, я дал сестре задание нарисовать новые концепты рыцаря в более реалистичном и мрачном стиле.
Выбранный в итоге концепт
Задача была выполнена аж спустя неделю, но ничего. После выбора концепта я сразу же попросил перенести его в спрайт. Прогресса в этом плане так и не было, но он мне и не нужен был, так как случилось неожиданное озарение.
ИДЕЯ ИГРЫ
Я всегда был фанатом настольных игр. Одной из них была "Особняки безумия" по мотивам рассказов Г. Ф. Лавкрафта. Это интерактивная игра, в которой мы играем за сыщиков, которые должны разгадать тайну мистических явлений того или иного места. Создавать поле и двигать прогресс нам помогает приложение, которое говорит, какие части поля нужно добавить, каких монстров нужно выставить, а также контролирует игровые события, мешающие или помогающие прохождению.
Игра "Особняки безумия"
Так вот однажды отец мне сказал: "А почему бы не сделать такую же компьютерную игру? Просто взять и перенести все механики на компьютер, но со своим сеттингом и историей. Пусть сыщики по заброшкам ходят и исследуют их". На что я ответил: "Ага, скажи еще, что это блогеры". И неожиданно для меня услышал: "Да, пусть это блогеры будут".
Эта идея озарила меня. Я тут же ринулся накидывать идеи, рассказал все команде со словами: "Нафиг рыцаря, делаем игру про блогеров, которые по заброшкам ходят". Как ни странно, но она поддержала эту мысль, т.к. эта идея звучала более оригинально, нежели просто рыцарь и скелеты.
ПРИКЛЮЧЕНИЯ НАЧИНАЮТСЯ
Итак, этот момент можно считать началом истории той игры, о которой говориться в названии. Что мы имели в начале пути: 1 программист и сценарист в одном лице(то есть я), 2 художника, 1 музыкант и еще 2 человека, которые очень хотели помочь в разработке, но не знали как. Честно скажу, что оптимистичный настрой был только у меня, хоть я и всеми силами пытался убедить команду в перспективе проекта. Я начал писать сценарий как истории, так и геймплея.
ПЕРВЫЙ КОНЦЕПТ
Было решено, что игра будет в 2D с видом сверху, где главному герою предстоит искать предметы, чтобы выбраться из паранормального места или победить зло. Также в игре была боевка, которая проходила в формате мини-игр типа армрестлинга или покера в "Ведьмаке" или, например, раннер, который по сути являлся той самой игрой, каких пруд пруди в Play Market. История должна была проходить в старинной усадьбе царской России, в которой кто-то проклял ее владельцев и слуг, из-за чего все стали призраками или же иными существами и предметами.
ГЛАВНЫЙ ГЕРОЙ
Главный герой - блогер, который является пародией на самого известного белорусского блогера, чье имя вы уже можете угадать. Один из художников, отлынивая от уроков, нарисовал первое изображение персонажа.
Первое изображение героя
Было решено назвать его Володей Ватманом. В дальнейшем моя сестра переработала и немного переосмыслила образ, внеся в него много важных отличительных атрибутов, которые до сих пор являются неотъемлемыми компонентами образа, а именно рыжие кудрявые волосы, красная шапка, которую он не снимает и красно-белые кроссовки.
Итоговый вид Володи Ватмана
ПРОЧИЕ ПЕРСОНАЖИ
В итоговой версии я выделил еще несколько важных персонажей, которые сильнее влияли на историю и геймплей. Вкратце расскажу о нескольких из них.
Константин Краснов - сын графа и главный антагонист игры. Именно он наложил на усадьбу проклятье, став при этом бессмертным и вечно молодым человеком.
Баров - повар усадьбы. После проклятья он, в отличие от большинства, стал человеком-свиньей. Изначально его звали Тельцов и был он человеком-быком, но о причине изменений чуть позже.
Евдокия - горничная. По задумке это должен был быть первый призрак, которого встречает игрок. Именно она подсказывала бы герою и помогла попасть на 2 этаж дома.
Константин Краснов
ПЕРВЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Лично мне не было тяжело с подготовкой к ОГЭ, но я не мог сказать то же самое о своей команде. Конечно, времени было мало, что приводило к низкой производительности. Игра полностью в 2D, а рисунки выходят раз в 2 недели, и то в лучшем случае. Прошел год, программной части было написано много, а вот спрайты практически полностью отсутствовали. Единственной локацией, которая была проработана полностью был маленький винный погреб.
Винный погреб
Эта проблема привела меня к принятию решения, на которое я долго не решался. Я решил полностью перейти на 3D. Звучит забавно: не хватает спрайтов, зато модели будут? Как оказалось - да, будут. В этом мне помогли low poly модели от Synty Studios. Так вся игра стала 3D, за исключением интерфейса. Даже головоломки были адаптированы и переработаны под трехмерное измерение. Кстати, одной из проблем стала нехватка нужных моделей. Так, например, ни в одном наборе не было модели минотавра, но была модель свиньи-мясника, из-за чего Тельцов преобразился в Барова!
Скриншот из альфа версии игры
ВТОРОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Кто бы мог подумать, но писать каждую мини-игру с проработкой отдельных механик - не тривиальная задача. Многие интересные идеи просто "посыпались" из-за сложности реализации и моего желания выпустить игру как можно скорее. Так была убрана система здоровья и стресса и ивенты, приводящие к изменению этих характеристик, система боя, вариативность действий в разных ситуациях, мини-игры стали частью головоломок... В итоге игра стала простым квестом, о чем я не сильно пожалел, так как изначальной идеей и был квест, но с дополнительными фишками.
ТРЕТИЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Став "идеологом" игры, я взял на себя руководительские обязанности. И что я скажу: это невероятно тяжело. Те 2 человека, которые хотели помочь, практически в самом начале ушли из проекта, хоть и помогли в сочинении нескольких загадок. Один художник разработал первые концепты, создал план дома, из-за чего достоин места в титрах, но по причине тяжелой учебы, решил прекратить свое участие. Потеря художника - это ужасно, особенно когда работа над кодом идет значительно быстрее, чем над иконками и портретами. Так нас осталось трое: я, моя сестра художник и друг музыкант. Вообще мы думали, что написать музыку в игру будет практически нереально, однако с этой задачей нам удалось справиться, сохранив стилистику игры в саундтреке.
Наша команда в стилистике игры
Тем не менее, руководить 2-мя людьми - тоже непростая задача. У каждого своя занятость, разный уровень мотивации, так что новые портреты, иконки и интерфейсы появлялись нерегулярно.
ЧЕТВЕРТЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
БАГИ! Чертовы баги! Их было настолько много, что по неопытности приходилось переписывать целые механики. Особенно сильно я мучался с инвентарем. Вначале он был под кнопкой инвентаря, потом оказался внизу экрана. Вначале было ограниченное количество предметов на сетке, которая видна полностью и без сортировки, потом пришлось сделать иконки крупнее, добавить странички и написать сортировку. Но самое главное: ячейки стали появляться динамически, так что теперь количество предметов в инвентаре может быть любое.
Было
Стало
ПЯТЫЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Назову это чем-то вроде "разочарования в игроках". Мне с детства нравились квесты, мне всегда казалось, что чем сложнее и запутаннее квест - тем лучше. Однако, дав сторонним людям поиграть в игру, оказалось, что пройти ее полностью удалось только 1 человеку - такому же ценителю квестов, как и я. Остальные, зачастую, даже в дом пробраться не смогли. Это привело к тому, что мне пришлось изменять некоторые элементы геймдизайна: менять расположение предметов, подсвечивать слабо заметные предметы, добавлять наводящие символы. Самым масштабным решением было добавление заметок и описания предметов в отдельном меню, где игрок может всегда сориентироваться, какие цели у него выполнены, а какие нуждаются в размышлениях. Как ни странно, это помогло. Люди стали без проблем заходить в дом и даже проходить игру до конца.
Меню заметок
ШЕСТОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Возвращаюсь к теме багов, но не простых. Когда уже все было готово к релизу, я передал игру тестировщикам, которые издевались над игрой как могли. Они закликивали кнопки в неподходящий момент, бились во все углы и стены, из-за чего проваливались за текстуры. Один раз даже удалось пройти сквозь стену в запертую комнату, недоступную в альфа версии, но имеющую заготовки, тем самым проспойлерив финальную часть игры. Кучу раз я собирал проект в надежде, что это последний раз, но тестировщики умудрялись найти новые дыры.
Добро пожаловать в бездну!
СЕДЬМОЙ КРУГ ПРОИЗВОДСТВЕННОГО АДА
Настало время публикации. А куда выкладывать будем? Конечно, изначально все ориентировались на Play Market, но, как известно, сейчас доступ к аккаунту разработчика недоступен в России. Первой альтернативой стали Яндекс игры. Однако это решение было отброшено по нескольким причинам:
Всем думаю известно, что творится на этой платформе и какая у нее аудитория. Через неделю игра уже утонет в каком-то барахле.
Проблема со сборкой WebGL версии в Unity(игра появлялась, но не загружалась).
Решение пало на новую платформу от МТС - AppBazar, которая еще находится в бета-версии. Она публикует приложения под андроид, так что нужна была обычная apk сборка. Единственное что, проект в бета-версии, из-за чего аудитория крайне низкая, и о нашей игре могут узнать разве что из сторонних источников. Однако проект приложения крайне перспективный.
Вначале хотели прикрутить донаты в виде добровольных пожертвований разработчикам, однако плагин в нашей версии Unity отказывался работать, так что эту идею мы отложили. В общем, выбор платформы и настройка игры под нее тоже требовали определенных заморочек. Когда выйдет полная версия - планируем немного переработать управление и интерфейс для ПК и выложить в VK Play и/или Steam.
РЕЗУЛЬТАТ РАБОТЫ
Вот несколько скриншотов из альфа-версии игры:
Статуя у входа в усадьбу
Диалоговое окно
Диалог с персонажем
Повар Баров
Картина
ИТОГИ И ЛИЧНЫЕ ВЫВОДЫ
Итак, выпущена альфа-версия игры и есть заготовки на полную. Я открыл для себя новые фишки в программировании, получил опыт руководить командой, написал интересный сценарий. Конечно, все это было получено потом и кровью, кучей ошибок и провалов, но что нас не убивает - то делает сильней. Сейчас я начал читать литературу по программированию и геймдизайну, в будущем надеюсь связать жизнь именно с разработкой видеоигр. Создание новых интерактивных историй меня сильно вдохновляет, хоть их разработка и включает в себя просто безумные процессы с кучей трудностей, которые придется преодолеть всей команде.
Всех с наступившим Новым годом! Мне предстоит сдать ЕГЭ и поступить в вуз, но я надеюсь, что завершу наш проект уже в этом году. Желаю всем крепкого здоровья, счастья, успехов в жизни и чтобы интернет во время каток был стабильным;)
В нашем понимании хорошее контентное обновление - это переработка нерабочих или неоднозначных механик с добавлением нового контента. Глобальная карта сильно выделялась на фоне остального геймплея и требовала незамедлительной доработки. Именно поэтому данное обновление посвящено данному элементу игры. Далее выделили самое интересное. С полным списком изменений можно ознакомиться по ссылке:
Маршрут игрока Теперь через [shift] можно задать до 10 точек назначения к которым персонаж устремится поочерёдно.Также был изменен эффект визуализации пути до точки назначения.
Скрытность и эффекты на глобальной карте Теперь часть локаций на глобальной карте обладают модификаторами. Первый из модификаторов - это скрытность. Заходя в лесной массив или в плотную растительность, вы уменьшаете собственную видимость для противников. Но учтите, помимо увеличения скрытности меняется уровень видимости и зачастую страдает скорость перемещения
Дороги Довоенный мир оставил в наследие дорожные и железнодорожные магистрали. Перемещаясь по ним, вы увеличиваете скорость перемещения, но зачастую увеличиваете собственную видимость для противников.
Есть три вида дорог: - Сельская дорога. Умеренный прирост к скорости и минимальное увлечение видимости. - Магистральная дорога. Самый большой прирост к скорости, но и максимально увеличение видимости. - Железно-дорожная магистраль. Умеренный прирост к скорости, но максимальное увеличение видимости.
Детальный осмотр глобальной карты Помимо осмотра периметра (это когда с локации спадает туман войны), мы добавили детальный осмотр ячейки. Перемещаясь в пределах ячейке, вы исследуете данную часть глобальной карты намного быстрее.
Изменение и переработка UI - Новые маркеры локаций, врагов и маркеры взаимодействия с миром. - HUD на глобальной карте теперь полностью соответствует игровому интерфейсу.
Спасибо за ознакомление c патчноутом. Дополнительную информацию о проекте можно найти по следующим ссылкам:
Для тех кто первый раз читает мой гоблинский блог - расскажу кратко что тут происходит. Я сам являюсь зеленым новичком в разработке игр и в своем блоге описываю этапы изучения столь сложного дела. На данный момент - это работа с движком Godot 4.
Чтобы не мучать вас длинными статьями, я разбиваю этот путь на кучу мелких блоков. Один пост - одна механика движка. Все гоблинские заумные слова расшифровываются на человеческий, так что даже пациент из Кащенко поймет о чем речь. Погнали!
● Узлы, сцены и прочие слова не связанные с BDSM - это интерфейс Godot 4:
▸Наглядно показываю что и где
Основа движка Godot - это узлы и их древо. Блоки могут быть самого разного назначения, от визуального изображения, до настроек звука. Сцена - это отдельная группа узлов. Она нужна чтобы структурировать элементы и не путаться. Например, можно создать отдельную сцену с узлами нашего персонажа, а после добавлять эту сцену как узел в другую.
Создадим сцену нашей карты и назовем ее World. Для этого выбираем "2D сцена" как на скрине выше. Теперь можем добавить к сцене дочерний узел, нажав на плюсик. В поиске ищем TileMap - это узел для работы с тайл-сетами будущей карты.
● Что такое TileMap:
TileMap - это крайне полезный инструмент, который позволяет создать автоматическое заполнение карты. В разделе TileSet выбираем новый, внизу выбираем "Набор тайлов" и в открывшемся окне загружаем заранее подготовленный файл.
▸Шаблон для создания тайл-сета
Тайл-сет - это набор элементов из которых будет состоять будущая карта. Его можно нарисовать или поступить как истинный гоблин и взять ассеты в интернете. Чтобы не перетаскивать каждый кусок этого набора в нашу сцену, мы настроим автоматическое заполнение.
● Настройка рисования карты в TileMap:
В правом блоке узла TileMap вы найдете вкладку "Terrain Sets" (набор местности). В ней мы нажимаем "Добавить элемент" и в открывшемся блоке снова жмем "Добавить элемент". Теперь в центральном блоке выбираем вкладку "Рисовать" -> "Свойства рисования" - > Terrains.
▸Настройка местности
В обоих выделенных вкладках выбираем созданный нами элемент Terrain. С его помощью мы настраиваем области тайл-сета. Именно по ним Godot определяет какой кусок ставить следующим.
▸Настроенный TileMap
● Зоны столкновения для TileMap:
Помимо визуального изображения, нам нужно добавить для карты физический слой. Выбираем Physics Layer и добавляем новый элемент. Далее в разделе рисования выбираем "Физика" и наш слой. Так как наша карта состоит из блоков - выделаем каждый квадратом.
Теперь другие объекты будут видеть нашу карту и воспринимать ее как физическое препятствие.
● Как работает настроенный TileMap:
▸Рисуем что хотим
Теперь мы можем буквально рисовать карту, создавая любые формы. Алгоритм определяет какую часть нашего тайл-сета ставить в зависимости от соседних элементов. Просто води курсором с зажатой ЛКМ, а Godot сделает все остальное.
▸А вот это уже что-то похожее на элемент игры
Создание основы для уровня теперь занимает всего пару минут. Но помимо карты нам нужен наш персонаж, опасности и условия для завершения уровня. Этим мы займемся в следующем уроке.
Надеюсь гоблин смог пояснить за механику тайлов и вы смогли дочитать эту графоманию до конца.
✓ Зеленые новички - крепитесь и подписывайтесь, скоро новая статья.
✓ Опытные шаманы - запасайтесь успокоительным, ибо дальше будет еще куча попыток освоить gamedev.
✓ Ну и все кто имеет свое мнение, поддержку или усмешку - пишите комменты!
ДЛЯ ЛЛ: Разработка игры от человека далекого от разработки игр. Захотел написать игру в стиле Tower Defense. Написал диздок. Разработал часть механик.
Всем привет!
С самого детства я мечтал разрабатывать игры, но возможность и уверенность появилась только сейчас. Этим постом я хочу открыть серию постов о разработке своей собственной игры (а может и не одной). А также это будет для меня маленьким дневником и порфтолио, с которым в будущем я планирую искать себе работу в игровой индустрии. С чего начинается разработка игры (по моему мнению)? Ну естественно с выбора движка. Мой выбор пал на Unity, потому что я имею какие-то базовые знания C#. В качестве жанра первой игры я выбрал Tower Defense, так как считаю что такой проект будет не сложным для начинающего разработчика. А в качестве платформы выбрал Android.
Примерный план разработки:
Разработать идею и предварительный стиль игры.
Рассмотреть игры конкурентов.
Определиться с графикой.
Определиться с музыкой и звуковыми эффектами.
Разработка дизайн документа с описанием основных механик игры.
Написание кода.
Получение удовлетворения от разработки.
Создание рабочего билда и тесты.
Если прочитали до этого момента - пожелайте мне удачи.
Итак... приступаем.
Поиграв в небольшое количество, скачанных с Play Market'а, игр, а также посмотрев обзоры на ютубе я пришел к выводу что правильным вектором в разработке такой игры будет грамотная экономическая система. Графика и саундтрек не так сильно важны, как действительно сложный, но честный геймплей. Карты не должны быть "читерскими" со стороны разработчика, но и не должны проходиться легко. Также должна быть изюминка, которая, выделит твою игру среди остальных.
Ассеты для игры я решил взять с сайта Kenney.nl. Выглядят сносно, эффекты и шейдеры добавим уже в самом Unity (благо его инструментарий позволяет). На данном этапе своих скиллов не вижу смысла покупать или создавать вручную графику, а вот музыку буду писать сам.
Дизайн документ.
Базовый геймплей:
Покупка и продажа башен:
Быстрый выстрел по одной цели.
Медленный выстрел по одной цели с откидыванием.
Выстрел по области.
Выстрел по нескольким противникам одновременно.
Улучшение башен и ловушек:
Ледяная ветка (Уменьшение скорости противника).
Огненная ветка (Периодический урон).
Электрическая ветка (Урон по цепочке).
Постоянное улучшение:
Скорость атаки башни.
Урон башни.
Урон ловушек.
Покупка мин:
Мина.
Мина для отбрасывания (Не улучшается).
Противники:
Маленький противник:
Высокая скорость.
Маленькое количество HP.
Слабый урон.
Средний противник:
Средняя скорость.
Среднее количество HP.
Средний урон.
Большой противник:
Малая скорость.
Большое количество HP.
Большой урон.
Особенности противников:
Огненные противники:
Резист к огненной атаке.
Увеличен получаемый урон от ледяной атаки.
Ледяные противники:
Резист к ледяной атаке.
Увеличен получаемый урон от огненной атаки.
Каменные противники:
Резист ко всем видам атак (в том числе и обычных).
Увеличен получаемый урон от электрической атаки.
Приступаем к разработке.
Проект решил делать в 3D, а в качестве рендера решил использовать URP. Для себя первым шагом я решил сделать ИИ (искусственный интелект) противников. Переместив ассеты в проект я создал примерный макет карты:
Для начала создадим и настроим навигационную сетку для наших противников. При импорте не забудьте моделей включить Read/Write для создания навигации во время игры. Для объектов по которым можно ходить я добавил NavMeshModifier с модификатором Walkable, а также переместил их на слой Ground. Для тех моделей по которым ходить нельзя ставим соответственно Not Walkable. С помощью скрипта будем делать динамическую сетку. Создадим пустой объект, добавим на него NavMeshSurface (Предварительно установив пакет в Window -> Package Manager -> Packages: Unity Registry -> AI Navigation). Создадим скрипт с названием Navigation Baker и добавим на только что созданный объект. Пропишем чтобы сетка строилась когда запускается игра.
Для создания противника в первую очередь нам потребуется класс. Если у вас возникают вопросы по скриптам или просто рекомендации - пишите в комментарии, отвечу по возможности.
Да, возможно сейчас скрипт выглядит нелепо, но в будущем мы будем по кирпичику его достраивать. С задачей передвижения мы справились. Теперь нужно настроить параметры на самом префабе нашего противника. Итог:
Теперь стоит приступить к нашим башням. Для этого соберем из моделек подходящую башню и поставим на свободную клетку. Теперь создадим новый скрипт. Скрипт выглядит вот так:
На данном этапе мы имеем двигающихся противников, стреляющую (пусть и не видно) башню, автоматическую постройку навигационной сетки.
Получилось немного, но это хороший старт. В следующем посте будем разрабатывать механику создания башни, а также полоску жизней противников.