Вывод

Итак, цель достигнута. Ссылка на результат - https://tudumch.itch.io/cheesy
Конечно, по форсмажорным обстоятельствам, путь оказался в два раза длиннее, чем я планировал изначально, но все равно оно того определенно стоило 😄
Какие выводы можно сделать, оглядываясь назад? Чтож, парочка у меня определенно есть:
- Всегда делайте бэкапы своих активных проектов. Даже если проекты учебные. Из-за своей беспечности в этом вопросе, мне пришлось делать две игры, вместо одной и был потрачен лишний месяц времени.
- Если вы только начинаете изучать разработку на движке Unreal Engine, забейте на C++, делайте всё на блюпринтах, иначе вы, скорее всего, просто увязните в неравной борьбе с кодом и потратите кучу времени, так ничего толком и не сделав. Да, рано или поздно с плюсами всё же придётся разбираться, но для первых нескольких проектов они точно не нужны, а уже позже, зная основные принципы работы с блюпринтами и их функции, C++ для UE будет осваивать гораздо проще.
Спасибо всем, кто следил за данной целью и лайкал посты - в некоторые моменты это действительно помогало мне не отказаться от изначально намеченных планов :)
Дневник цели

Всё, оформил страничку на itch.io и залил свою игру: https://tudumch.itch.io/cheesy. Если вдруг кто-то когда-то будет также заливать игру на этот сайт, очень рекомендую сначала ознакомиться с Easy Releasy - это набор шаблонов, с помощью которого можно наглядно посмотреть как правильно оформлять каждый отдельный элемент будущей страницы.
Печалит то, что Unreal Engine, в отличие от Unity и Godot, не поддерживает web-формат, благодаря которому небольшие игры можно запускать прямо в браузере... Плюс к этому сам билд моей несчастной игры, которая состоит всего из одного уровня длительностью 60 секунд, весит аж 400мб... Короче теперь я понимаю почему для инди-разработчиков, занимающихся геймдевом по приколу, UE совсем не подходит: вряд ли кто-то захочет просто так качать ваши 400мб хрен-пойми-чего и потом еще игнорировать страшные предупреждения винды о том, что запускаемое приложение получено из неизвестного источника 😄. Другое дело браузер: ничего качать не нужно - нажал одну кнопку и сразу играешь. Эх, ладно, я сам выбрал этот путь боли хД
P.S.
Формально все пункты по данной цели выполнены, но писать вывод и закрывать её я пока не буду: хочу сначала пару дней подумать куда двигаться дальше и создать новую цель.


Кажется Unreal 4.3 поддерживает сборку в веб, но что там отвалится при даунгрейде движка - вопрос. Ну и 400 мегов - хороший повод поковыряться и вырезать ненужное

Tudumch, ну да, чет я хватанул с версией. 4.3 вышел 10 лет назад :-D
Ну так прекрасный повод поковыряться, уменьшить выходной размер и добавить строчку в резюме "умею оптимизировать размер сборки"

Закончил исправлять всякие мелкие штуки типа криво работающей физики и сортировки мышей по количеству набранных очков в итоговой таблице результатов. Но самое главное сделал первое погружение в процесс оптимизации игры. Вот небольшой список того, что ОЧЕНЬ сильно влияет на FPS, когда делаешь игру на UE:
- Система освещения Lumen. По умолчанию всегда включена в UE 5. Её обязательно нужно отключать, если нет цели делать какой-то мега графоний.
- Обязательно нужно осматривать сцену через Optimization Viewmodes на предмет "тяжелых" ассетов, шейдеров и источников света.
- В UE есть имбовый встроенный профайлер Unreal Insights. В нём просто ДОХРЕНИЩА информации о том, что конкретно нагружает процессор и видеокарту в каждый момент времени. Проблема только в том, что данных настолько много, что без подготовки непонятно на что нужно обратить внимание хД.
- В настройках проекта нужно всегда выставлять FPS-lock на 60 FPS, иначе на мощных компах игра будет рендерить 400+ FPS, выжимая из видюхи все ресурсы в холостую.
После оптимизации, моя игра стала выдавать 30 FPS даже на старом ноуте, хотя до этого там и десяти наверное не набиралось. Я доволен. Правда из-за отключения Lumen изменилась цветовая гамма картинки (была тёплой, стала холодной), но на это вообще наплевать.
Собственно, по данной цели остался последний рывок - оформить страничку на itch.io и залить билд игры, чем я планирую заняться уже сегодня или завтра.


Herbione, спасибо)
Да, без эффектиков, честно говоря, грусновато играется, но у меня что-то пока совсем нет желания углубляться в VFX :(
По идее за пару часов спокойно можно добавить какие-нибудь простенькие эффекты, но я лично для себя решил не заниматься тем, к чему совсем не лежит душа, пока не начну делать какую-то более-менее серьёзную игру (очень уж боюсь опять перегореть на ровном месте 😄)

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

Закончил этап Gray Box'а для своей новой-старой игры. Сделал подбираемые пикапы, механики дэша и отталкивания "врагов", а также настроил мозги мышам, чтобы они находили ближайший к ним кусочек сыра и бежали его подбирать.
Очень много времени потратил на то, чтобы вникнуть во встроенную в UE систему настройки поведения ИИ, а по итогу в моём проекте мне пригодились только крохи от того, что я узнал. Можно было спокойно обойтись без неё, но надеюсь полученные знания мне еще пригодятся в ближайшем будущем, до того, как я успею их забыть 😄
Уже некоторое время пытаюсь подтолкнуть младшую сестренку, которая сейчас учится в 9ом классе, к изучению CG. Периодически подсовываю ей уроки по Autodesk Maya и Blender. Вроде понемногу-по-чуть-чуть вкатывается, хоть и постоянно забрасывает это дело на какое-то время. В этот раз попросил её смоделить и затекстурить мне кусочек сыра для игры - она прям воодушевилась и через слёзы и боль (потому что в блендере есть три разных пресета хоткеев и в каждом видеоуроке на ютубе естественно используется не такой, как у неё), таки замоделила мне его. Понятное дело она просто повторила всё по тутору, но всё равно считаю это победой. Потом очень радовалась, когда я прислал гифку с её сыром уже в игре.


Наконец-то закончил собирать новый компудахтер - теперь можно вернуться к своим проектам. Решил всё же не воссоздавать предыдущую игру заново, т.к. скорее всего мне станет слишком скучно в процессе + ничему новому не научусь, если буду делать одно и то же один в один.
По предварительной задумке, новая игра будет базироваться на тех же ассетах, что и предыдущая, но теперь мы будем играть не за кота, а за мышь, которая собирает кусочки сыра по кухне, соревнуясь с другими такими же ИИ-мышами. Для реализации задуманного понадобятся более умные мыши, чем у меня были до этого, так что планирую более глубоко погрузиться во все встроенные в Unreal Engine возможности, связанные с настройкой поведения AI.
Еще из минорных новостей: решил всё же совсем слезать с Ноушена, так как через VPN им стало как-то неудобно пользоваться. Как ни странно, вроде получается сделать в Обсидиане удобоваримую систему таскменеджмента, хотя конечно это те еще костыли и лучше просто пользоваться чем-то типа того же Younote, который мне посоветовали в предыдущем посте.. Сам не пользуюсь им только потому, что потерял доверие к онлайн-платформам.



Очередная беда: сегодня, без всяких причин, SSD-гнездо на моём ноуте скоропостижно скончалось, прихватив вместе с собой ссд-диск стоявший в нём, которому еще не исполнилось даже года. Все данные на нём теперь не подлежат восстановлению и угадайте где был мой проект?))0) Бэкап я естественно не сделал, т.к. думал что проект всё равно учебный, так что пофиг, да и за месяц вряд ли что-то может произойти. Как оказалось нифига не пофиг и произойти за месяц еще как что-нибудь может 😁
В общем без ssd я теперь не могу нормально работать в UE (да и даже просто пользоваться подтормаживающем компом трудновато и неприятно). Цель соответственно придётся видоизменить, но пока точно еще не придумал как конкретно: можно просто с нуля повторить всё то, что я сделал до этого, или же взять какую-то новую концепцию и попробовать сделать совсем другую игру. Так как я решил собрать себе новый комп, времени, чтобы подумать над этим вопросом у меня будет предостаточно, потому что по предварительным прикидкам,новое рабочее место у меня будет только недели через две...
Мораль сей басни банальна и проста: не ленитесь делать бэкапы.

Дерьмо случилось. Сочувствую. Сколько ноутбуку лет? Кто производитель? Жарил ли ты ноутбук под 100 градусов регулярно? Это SSD M.2 был? Какая-то неординарная поломка. У меня самого всё в офлайне на них.

Abendstern51, ноут MSI GV72 8rd. Уже старенький, лет 5-7 ему где-то, но работал без нареканий все эти годы. Особо его ни чем не жарил вроде, чуть меньше года назад делал полную чистку и замену термопасты. SSD M.2 был, да. Уж что-то, а от этой штуки не ожидал подлянки.
Но вообще я стараюсь хранить всё важное где-нибудь в облаках для автоматической синхронизации и плюсом у меня есть внешний жесткий диск на терабайт, на который дополнительно вручную делаю бэкап всего и вся раз в 3 месяца. Так что потери могли бы быть куда более серьёзными, если бы не всё это 😅 Теперь вот еще надо что-то придумать для хранения бэкапов текущих активных проектов, которые так то занимают много места и в облако их соответственно сложновато класть..

Tudumch, ну облако облаку рознь, у меня например 1 терабайт NextCloud у Hetzner (я после Dropbox не нарадуюсь), цена вопроса - около 500 рублей в месяц. Можно поискать дешевый хостинг (например https://poiskvps.ru/index.php?search_hdd_min=500) и самому развернуть. За бугром можно и дешевле найти, но конечно будут проблемы с оплатой

Добавил в игру спавнеры пикапов и мышей, так что теперь к концу раунда кухонные помещения, в которые игрок давно не забегал, буквально кишат всратыми мышами.
Так же добавил в игру рандомизирующуюся фоновую музыку и звуковые эффекты при поимке мыши, подборе пикапа и т.п. Со звуками игра стала играться сильно живее. Всё таки не зря говорят, что звук в игре важен настолько же сильно, как и графика.
На этом этап создания MVP по моему плану завершен. Дальше остается только подправить сильно бросающиеся в глаза неудобные штуки для игрока и добавить немного эффектиков, после чего можно будет публиковать игру.
P.S.
И еще хочу немного поделиться своей болью: девятого сентября Notion совсем уходит из России, а я в нём веду все свои проекты 😭 Причем он уходит настолько мощно, что УДАЛЯЕТ все российские аккаунты, а не просто замораживает их... Очень скорблю по этому поводу, потому что настолько кастомизируемого инструмента боюсь мне уже не удастся найти. Плюс потеряно доверие к подобным онлайн-платформам в принципе, а значит надо переходить на какое-то оффлайновое приложение, что делает поиск замены еще сложнее.. Пока попробую приспособить под ведение проектов свой любимый Obsidian, благо для него полно расширений, которые в теории могут помочь получить нужный мне функционал, но честно говоря сильно не надеюсь на успех. Если у кого-то есть что-то на примете - пожалуйста кидайте в комменты, буду благодарен)


Коллега перешла на наш российский аналог. Тоже работала только в Notion, но довольна и нашей версией. Она как-то легко перенесла все свои проекты, заметки и т.д. - это предусмотрено в аналоге
Посмотрите, может вам понравится http://yonote.ru

Tudumch, там ещё важно, чтобы не было привязано платежное средство из России, даже если не платили

Порылся на Mixamo, нашел модельки встратого кота и мыша, а так же все необходимые анимации для них. Добавил всё это дело в проект и настроил анимационную логику.



Сегодня сделал систему набора очков: если игрок ловит мышь или подбирает пикап - ему начисляется определенное количество очков в зависимости от того, что было подобрано/поймано. Если же мышь подбирает колбасу, то у игрока наоборот очки отнимаются.
Также сделал таймер и логику конца игры: по истечении таймера игра останавливается и выводится экран с итоговым счетом и кнопками предлагающими сыграть еще или выйти в главное меню. Таким нехитрым образом теперь у игры есть начало и конец, соответственно ее можно пройти :)