The Walking Evil дневник разработки #5
Добрый день уважаемые читатели Пикабу!
Хочу рассказать о том, как идет разработка моей игры The Walking Evil, над которой я работаю уже почти год. Игра является Survival horror от 3 лица, с фиксированной кинематографичной камерой.
В игру добавлено много нововведений. Доделал все катсцены. На видео можно наблюдать английский язык, однако в игре есть и Русская озвучка.
Завершил оптимизацию проекта. Проведен тест на ультра настройках, более чем средний по характеристикам ПК выдает 120 FPS, ноутбук с видео картой Nvidia Geforce 820m и процессором Intel CORE i5 выдает 50 FPS.
Хотелось бы сказать пару слов по оптимизации ваших проектов, если ваша игра конечно придерживается 3D графики.
Первое что вам нужно, это график производительности, вызвать его можно с помощью консольной команды `(тильда для вызова консоли "Ё") вписать команду ProfileGPU и нажать клавишу Enter.
Ниже на скриншоте можно наблюдать как выглядит график GPU
В левом нижнем столбце мы видим названия процессов, а в правом Duration (ms) затраченноевремя на обработку процессов. Что больше всего сжирает времени, над тем и нужно работать.
К примеру: очень много времени уходит на Light, обработку света, значит оптимизируем тени.
Постараюсь написать без заумных слов, что бы новичкам было понятней.
Шкала по которой можно ориентироваться: 1) синий цвет, хорошая оптимизация, 2)красный цвет, плохая.
Сцена с ужасными картами теней.
Идеально оптимизированная сцена с картами теней.
Для начала включим режим для просмотра "карт теней".
Для этого смотрим на скриншот ниже, еще можно включить этот режим сочетанием горячих клавиш Alt + 0
Есть два способа настроить карту теней:
1) Выделяем любой StaticMesh на вашей сцене, и ищем настройку Lighting
Этот способ подходит когда один и тот же объект используется в разных сценах для разных ситуации. К примеру возьмем стул: на одной сцене (карте) он стоит на самом виду для игрока, и требует к примеру карту теней значению 16.
В другой сцене этот стул находится в темном углу его очень плохо видно он далеко, и используется в качестве баррикады лестницы (то место куда игрок не пройдет) в таком случае ему достаточно значения 8 как на скриншоте ниже. Так же можно вообще отключить ему тени, галочка Cast Shadow, он же в темном углу)) Где нет источников света.
2) Способ два экономит x20 вашего времени, и затрагивает сразу все StaticMesh одного типа.
Чтобы им воспользоватся ищем интересующий нас StaticMesh в папках проекта, нажимаем на него два раза левой кнопкой мыши, либо жмем правой кнопкой мыши и выбираем Edit...
После открытия окна, ищем раздел General Settings и изменяем карту теней, которую хотим.
Тем самым мы изменим все карты теней этого типа StaticMesh на всех картах.
Простым языком, везде где используются эти модельки они изменят карту теней, то есть вам не нужно будет отдельно выделять каждый StaticMesh на Сценах(картах) и менять карту теней каждому отдельно.
Однако стоит помнить, что если на модели используются LOD, то менять карту теней желательно для каждого лода.
LOD помогут сделать вашу сцену более детализированной с помощью высоко полигональных моделей, при этом не потеряв много ресурсов оптимизации. В движке присутствует функция Авто LOD.
Однако в любом случае не стоит использовать большое количество высоко полигональных моделей в сцене потому что, каждая модель использующая LOD будет иметь невидимую сферу (дистанцию) просчет которой будет определять, какой LOD включить в данный момент.
Чтобы включить систему авто лодов нужно проделать следующие:
(Не забываем снять галочку с Auto Compute LOD Distance)
В разделе LOD Settings строчка Number of LODs изменяем значение до 3 ( значение Number of LODs отвечает за количество лодов, которое вы хотите сделать вашей модели)
После нажимаем Apply Changes
Далее идем в раздел LOD Picker и нажимаем галочку на Custom в разделах чуть ниже должны будут появится LOD 0 LOD 1 LOD 2 LOD 3 раскрываем все эти разделы, и их подразделы.
LOD 0 мы оставляем все как там есть. (Далее я буду использовать другую модель для примера, это не столь важно)
Идем в LOD 1 и там ищем Screen Size - это ограничитель дистанция, как только камера игрока достигнет этого значения, включится LOD который имеет эту дистанцию.
Можете поиграться с камерой, отдалить ее, и приблизить, вы должны заметить как это значение будет меняться в верхнем левом углу. Отдалите камеру на столько, на сколько посчитаете нужным для включения LOD 1. Запишите значение которое увидите в верхнем левом углу экрана Screen Size в строчку с правой стороны в Screen Size (под материалами) в моем случае это значение равняется 0,187.
Далее можно отключить Cast Shadow под каждым материалом (смотри скриншот ниже)
Далее опускаемся до раздела Reduction Settings
Уменьшаем значение Percent Triangles с 100% до 80% (в моем случае это 20%) в вашем случае это 80%!!!!
Каждый последующий (LOD 2 3) должны будут иметь это значение меньше на 20%
Пример: LOD 0 - 100% LOD 1 - 80% LOD 2 - 60% LOD 3 - 40%
Percent Triangles - это раздел отвечает за уменьшение полигонов.
Silhouette, Texture, Shading уменьшаем до LOW.
"В LOD 2 и LOD 3 в будущем ставим LOWEST."
После нажимаем Apply Chages (применяются настройки)
После идем к LOD 2 и LOD 3 проделываем почти тоже самое.
В каждую модель мы можем добавить дополнительный материал, который будет использоваться для лодов.
Нажимаем + (обведено на скриншоте)
И после в низу добавится новый материал, так же указанно красной обводкой на скриншоте.
После чего назначаем туда приближенный по цвету и гамме, но более легкий материал.( СМОТРИ НА ОДИН СКРИНШОТ НИЖЕ)
Приведу пример для чего это нужно:
В моем случае модель окно, у которого материал с динамикой, стекающие капли по стеклу.
Я создал более простой материал, и добавил его в Element 3.
Element 2
Можем наблюдать на сколько тяжелый материал используется на LOD 0 (стекание капель по стеклу)
Element 3 (материал который мы создали и добавили сами нажав +) Его мы будем использовать на LOD 2 и LOD 3
Можем наблюдать на сколько материал стекла простой, не использует даже Текстуры, только Color. Однако он не как не повлияет на качество картинки в целом, так как он будет отображаться на последних лодах LOD 2 и LOD 3
То есть, игрок каким бы зрением не обладал, на таком расстояние не заметит разницы на стекле. Когда игрок подойдет ближе к окну включится обратно LOD 0 и LOD 1 на которых будет тяжелый материал используемый в Element 2.
Идем в LOD 2 и LOD 3 и меняем в Section 2 материал на более легкий, который мы добавили нажав ранее +.
Теперь мы имеем модель с LODs которая будет экономить ресурсы ПК и давать оптимизацию.
Возможно позже затрону тему оптимизации в других направлениях в другой статье, посмотрю на сколько моя игра понравится пользователям.
Разработка игры приблизилась к завершению, все готово на 100%, однако я решил выйти в ранний доступ, на 2-4 недели, чтобы стабилизировать баланс, добавить что-то нового, пофиксить какие то маленькие баги. Которые возможно не были увидены при тесте игры.
Кто хочет поддержать, пожалуйста добавьте игру в список желаемого, нажав на The Walking Evil.
Релиз игры запланирован на "Завтрашний день" 22.04.2020.
Всем добра и удачи, не болеть!
Нужна помощь с Unreal Engine 4
В общем, дело такое. Я хочу перенести игру Ex Machina на движок Unreal Engine 4, у меня есть все модельки, звуки и т.д., но я не очень хорошо разбираюсь в программировании и из-за этого у меня появилось много проблем, одна из которых-вращение пулемёта по оси Y на 360 градусов, я очень долго пытался это исправить, но ничего не получилось.
Собственно вот сама машина:
Модельку я смог перенести, сделал ей рабочую подвеску и новые колёса, но вот с пулемётом никак разобраться не могу. Вот код управления пулемётом и его привязка к камере:
Пост я решил создать так как думаю что здесь есть фанаты этой игры и им будет интересна моя задумка.
Опыт разработки игры в одиночку. Три совета!
Привет! Я инди-разработчик одиночка. Полгода, вечерами, после работы, я делаю свою инди-игру.
Хочу поделиться своим опытом, болью и дать 3 совета разработчикам одиночкам, как я.
Расскажу об игре. Моя игра “Мёртвая Россия Ко-оп” - это кооперативный сессионный топ-даун шутер в сеттинге российского зомби-апокалипсиса.
Страница игры в Steam: https://store.steampowered.com/app/1211640
Трейлер игры см ниже.
Цель каждой игровой сессии - выжить. Продержаться 7 игровых суток.
Каждые игровые сутки я разделил на день и ночь:
Днем почти нет зомби. Игроки исследуют локацию, ищут деньги, сооружают укрепления, ловушки и покупают оружие, которое поможет им выжить ночью.
Ночью, под звук воздушной тревоги, на улицах появляется полчища мертвецов, которые бегут на игроков со всех сторон. Цель игроков - отбить атаку используя заготовленные укрепления, ловушки и оружие.
Каждую ночь мертвецов становится всё больше, они всё быстрее и сильнее.
А теперь про разработку.
Идея сделать игру про СНГ и для СНГ у меня была давно.
Во-первых, я хотел сделать игру про наше, про отечественное, про пост-советское!
Во-вторых, работая над своими старыми проектами, мне осточертело переводить каждое сообщение на английский язык. Мне не нравится Facebook и Twitter. Я не знаю о чем писать в Reddit. А тут - я говорю со своей аудиторией на одном языке, это же так просто!
Вкнонакте, мне на глаза попалось сообщество “3D модели (low poly) и текстуры”. Автор - Денис Логиновский сделал так много душевных хрущевок, заправок и авто-сервисов, что я решил - вот оно!
Прикупив 300 моделей русской тоски, я подумал, что нужно делать игру с видом сверху. Потому что модельки были низкого качества.
Выбор был такой - либо стратегия, либо топ-даун шутер.
Очевидно же, проще сделать топ-даун шутер. Да еще и ассет нашёл хороший, который можно было “быстро” видоизменить под свои нужды.
Сказано - сделано! Я железно решил - сделаю игру за 2 месяца. А может за 4. Ну, в крайнем случае, за 6. Сейчас я стараюсь уложиться в 8.
Совет №1: “Если хочешь сделать игру за 2 месяца, планируй сделать её за 2 недели!”
Первая проблема, с которой я столкнулся - импорт моделей в движок. Так как не все модели были в fbx формате, а некоторые были поломанные, мне пришлось прогонять их через 3д-редактор, а потом, ручками, собирать модельки в движке.
Я импортировал 300 моделей и выставил их тестовую локацию-палитру, распределив по размеру и тематике - село, город, промзона. Это заняло у меня 2 месяца скучнейших вечеров. Я даже аудиокнигу успел прослушать.
По итогу, я реализовал одну небольшую открытую локацию, которую планирую расширить. И вот, с тяжелой грустью, смотрю я на свои 300 моделей, и понимаю - 90% не пойдут никуда.
Изначально я хотел сделать сюжетную кампанию, аля русский Left 4 Dead, где будут 7 локаций, каждая в своем стиле, со своими геймплейными фишками и всё такое. Но поняв, что меня засосало опасное сосало, решил что это вообще не вариант, и мне надо срочно менять концепцию игры.
Совет №2: “Не планируй большие локации!”
Через несколько бессонных ночей я родил идею сессионного шутера, описанную выше, и начал воплощать ее в жизнь.
Сейчас я имею следующий набор фичей:
1. Открытая локация с лутом денег, спавном толп мертвецов и сменой дня и ночи.
2. Строительство укреплений и ловушек: факел, баррикада, колючка, огненная ловушка
3. Оружие: Пистолет Макарова, Ружьё ИЖ-27, Автормат АК -47, Ручная граната, Пехотная мина.
Да, этого мало и я не доволен. Но мне нужно сделать еще кучу вещей: условия победы, победный экран, туториал, пофиксить баги, итд итп.
Совет №3: “Быстрее и приятнее сделать новую игру, чем переделывать геймплей!”
На этом всё. Да прибудут с вами маленькие, но качественные проекты!
Делаю локацию в пост-советском стиле!
Уже пол-года я работаю над своей игрой "Мёртвая Россия" - изомтерическим шутером про зомби-апокалипсис в России.
Страница игры в Steam: https://store.steampowered.com/app/1211640
Я расширил локацию - сделал супер-маркет, парковку, детскую площадку, рыночек, заправку, гаражи и многое другое.
Хочу поделиться с вами еще несколькими скриншотами. Не судите строго!
Делаю мусор в российских дворах, с помощью Foliage в Unreal Engine 4
Друзья, привет! :)
Я инди-одиночка, разрабатываю игру "Мёртвая Россия Кооп". В прошлый раз мне написали много коментов с просьбой - добавить мусора! Мол, слишком чисто, не по нашему как-то, не по российски.
Для замусоривания родных дворов, я решил использовать инструмент "Foliage" в Unreal Engine 4. Нашёл несколько 3д-моделей коробок, бутылок, банок, газет, пачек из под чипсов и т.п. Загрузил, настроил размеры и случайный поворот.
Хочу поделиться с вами процессом. Получается вроде-бы неплохо. Как вам?
Моя группа в ВК


Геймплейные скриншоты "Мёртвой России"
Разрабатываю игру "Мёртвая Россия Кооп" - это кооперативный шутер на выживание, в сеттинге отечественного зомби-апокалипсиса.
Пост про локацию вышел в горячее, поэтому хочу поделиться скриншотами с геймплеем. Тут пока 1 игрок, но кооператив тоже работает. Извините за англ. язык на скринах (прикручиваю русский).
Скоро сделаю большой анонс, где подробно расскажу о механиках игры и покажу геймплейное видео. А пока делюсь чем богат сейчас!
Моя группа в ВК
Делаю локацию.Так по-русски получается, аж сердечко ёкает :)
Я разрабатываю большую открытую локацию для своей игры "Мёртвая Россия Кооп" https://store.steampowered.com/app/1211640/
Мой проект - это top-down зомби-шутер в сеттинге современной России.