es
Feedback
Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина

Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина

Ir al canal en Telegram

Для связи: @junoscode

Mostrar más
354
Suscriptores
-124 horas
-17 días
-530 días
Archivo de publicaciones
🔥 Как ускорить написания кода?🔥 🙂 Всем привет! Было ли у вас такое, что часто приходится писать один и тот же фрагмент код
+1
🔥 Как ускорить написания кода?🔥 🙂 Всем привет! Было ли у вас такое, что часто приходится писать один и тот же фрагмент кода? Например, метод Initialize или метод для инжекта зависимости. Многие не знают, но этот процесс можно автоматизировать. Сегодня мы поговорим про Snippet или фрагмент кода ‼️ Частая история когда мы пишем ключевое слово, например for, нажимаем два раза Tab и у нас появляется полный цикл for 📊 То же самое можно сделать самому. Пробежимся по этапам: 1️⃣ Нажимаем сочетание клавиш Ctrl + K, Ctrl + B 2️⃣ В диспетчере фрагмента кода выбираем C# и в файле MyCodeSnippets будем добавлять наши фрагменты 3️⃣ Чтобы создать свой сниппет можно продублировать уже существующий. <Code Language="csharp"><![CDATA[Свои изменения нужно вписывать сюда]]. <Title>Ключевое слово для вызова вписываем сюда</Title> 4️⃣ Чтобы снипепт был доступен в диспетчере фрагментов кода нажать добавить и указать путь до вашего сниппет файла 💥 Поздравляю, теперь вы умеете создавать свои фрагменты кода и ускорять процесс разработки. А если хотите больше полезных советов - Джун Джуно к вашим услугам!

🔥 Мой опыт сэкономит вам много времени 🔥 🙂 Всем привет! Сегодня мы продолжим говорить о нашей игре, а конкретно о системе
🔥 Мой опыт сэкономит вам много времени 🔥 🙂 Всем привет! Сегодня мы продолжим говорить о нашей игре, а конкретно о системе сохранения. Я долго не мог понять почему данные не сохраняются и не загружаются. 📊 Пройдемся по моим ошибками и решениям в хронологическом порядке: 1️⃣ Проблема с сериализацией данных при сохранении. PlayerAccount.GetCloudSaveData() принимает только строки. Значит нам нужно преобразовать наш словарь с данными в JSON формат 2️⃣ Я попробовал написать алгоритм для преобразования словаря в строку, но постоянно выпадали ошибки 3️⃣ JsonUtility не может сериализовать словарь. Пришлось скачать плагин JsonConvert. Он может спокойно преобразовать даже словарь 4️⃣ Теперь после сохранения и загрузки данных ни одной ошибки не появилось, но игра просто не хотела загружать данные 5️⃣ Путь большого количества экспериментов я понял, что метод PlayerAccount.GetCloudSaveData() работает не сразу. Приходиться подождать пока не вызовется делегат с результатом 6️⃣ Чтобы это адекватно работало я создал сцену инициализации. На ней инициализируются яндекс сдк и ожидается пока SaveLoader получит JSON сохранения 💥 Поздравляю, все работает. У вас этот пост занял пять минут, а у меня, чтобы понять в чем ошибка ушло пять дней. А если не хотите совершать много ошибок - Джун Джуно к вашим услугам!

🔥 Замена Zenject для веба 🔥 🙂 Всем привет! Разрабатывая свою игру, я столкнулся с проблемой, характерной для веб-разработк
+1
🔥 Замена Zenject для веба 🔥 🙂 Всем привет! Разрабатывая свою игру, я столкнулся с проблемой, характерной для веб-разработки ‼️ Zenject съедает слишком много ресурсов 📌 Это особенно чувствуется при запуске игры на мобильных устройства. Сегодня мы поговорим об альтернативе, которая экономичнее и стабильнее в вебе ✔️ Reflex - достаточно простой в понимании фреймворк. Также очень легко мигрировать с Zenject на него, ведь он тоже отправляет зависимости через атрибут [Inject]. В место привычного нам ProjectContext и SceneContext в этом фреймворке ProjectScope и Scene Scope. Но работают они так же, как если бы мы пользовались Zenject 📊 Поэтапно прокинем зависимости: 1️⃣ Создаем обычный MonoBehaviour класс реализующий интерфейс IInstaller 2️⃣ Создаем в папке Resources(именно в такой папке) объект через Create → Reflex → ProjectScope 3️⃣ Просто закидываем компонент с интерфейсом IInstaller на объект с компонентом ProjectScope 4️⃣ Чтобы забиндить объект вызываем builder.AddSingleton() в круглых скобках передаем экземпляр класса 5️⃣ Для того чтобы прокидывать зависимости в сцены нужно создать SceneScope, как в пункте три 📈 Заключение: Мы успешно научились переходить с Zenject на Reflex. Если вы будете делать под веб обязательно пользуйтесь рефлексом. А если хотите не допустить ошибок при веб-разработке - Джун Джуно к вашим услугам!

🔥 God of war с али экспресса 🔥 🙂 Всем привет! Сегодня я хочу написать обзор на очень популярную новинку, а именно black my
🔥 God of war с али экспресса 🔥 🙂 Всем привет! Сегодня я хочу написать обзор на очень популярную новинку, а именно black myth wukong. Немного цифр. Она опередила в два раза киберпанк по онлайну. Стала самой популярной сингл игрой за все время. За три дня она сделала 600 миллионов долларов. Это мега успех ⁉️ Перед тем как запустить эту игру я не знал про она. Кто-то говорит, что это dark souls, кто-то что это got of war. И когда играешь - понимаешь что все немного сложнее 📌 Сюжет Начну с того, что это игра сделана китайцами для китайцев. Она очень требовательная в плане подготовки. По сути сюжет это эпос про китайских богов. В ней огромное количество пасхалок связанных с китайской культурой. Игра толком ничего не объясняет, что обозначает та или иная сцена. Мне приходилось не раз гуглить и я узнал много нового о китайских легендах. В следствии для неподготовленного игрока - сюжет это бессвязный набор событий 📌 Режиссура Это аспект игры просто отвал башки и ее не возможно не проникнутся. То как поставлены кат-сцены - это то как выглядели бои между игрушками в моих руках, когда мне было пять лет у меня в голове. Я не помню более эпичную игру в этом плане 📌 Геймплей Тут он оказался довольно привычным. Сходство с популярным проектами на лицо. Игра разделена на 6 уровней. На каждом уровне есть по одно реликвии, которые мы и должны собрать. По структуре уровне напоминают Dark Souls. Тут есть кишкообразные локации, костры и враги возрождаются после отдых. Ты бегаешь, убиваешь мобов и боссов и прокачиваешься. В целом все знакомо, но тут есть свои нюансы, игра делает другие акценты. Тут есть свои плюсы и минусы ✔️ Абсолютная победа в этом плане - прокачка. Я более увлекательной прокачки видел только в готике. Упор в этой игре идет в первую очередь на навыки. Тут хочется качать все. В отличии от большинства игр, тут нет навыков ради навыков. Все очень сильно влияет на игровой процесс. Если в других играх вырезать большинство навыков и ты не заметишь, то тут они все необходимы для выживания ❌ Минус этих уровней в том, что они довольно линейные. Тут не спрятанных локаций, метроидваний и прочие такие вещи. Хотя визуально игра кажется свобода свободой. Но тут одна невидимая стена за другой. Не понятны границы мир 📊 Игра боссоцентричная. В этом плане проделана колоссальная работа. В игре 91 босс и каждый получился максимально уникальным и запоминающимся. Боссы радуют за редкими исключениями 🚫 Небольшой минус данной игры - она не дает тебе расслабится. После каждого боса наступает следующий практически сразу. Из-за этого игра очень часто вызывает желание отдохнуть от нее. В добавок она как будто в случайном порядке расставляет боссов по сложности. Частая история когда сюжетный босс сильно легче второстепенного 📌 Заключение Скажу честно я ждал на много меньше. Но я получил игру которую сделали с душой. Для людей в Китае - это событие невероятного масштаба. Там даже компании отпускали людей домой, чтобы они игрой наслаждались. Она не идеальна, есть много ошибок в левл дизайне и в гейм дизайне. Но вещи ради которых в нее стоит сыграть классные креативное боссы, прокачка, боевка и весь этот китайский вайб. Рекомендую ее заценить, она стоит своих денег. А если хотите больше обзоров - Джун Джуно к вашим услугам!

🔥 Выбор в играх: как избежать ошибок разработчиков 🔥 🙂 Всем привет! То насколько много выборов должно быть в играх это спо
🔥 Выбор в играх: как избежать ошибок разработчиков 🔥 🙂 Всем привет! То насколько много выборов должно быть в играх это спорный вопрос. Ответа на него нет. Но вопрос на который действительно нужно ответить - почему выбор настолько важный? 📌 Игрокам одновременно важен и не важен выбор. Возьмем "Ведьмак 2". Там разработчики решили разделить сюжет на две части. По идеи, это должно было обрадовать игроков, ведь это очень большая нелинейность. К сожалению, это вызывала у игроков не самые положительные эмоции ‼️ На это было три причины: 1️⃣ Игрок лишался 15 часов контента. Не многие люди перепроходят игры 2️⃣ Путаница. Многие просто не понимали что происходит. Кто все эти новые персонажи и так далее. Чтобы понять нужно пройти игру не один раз 3️⃣ По суть это разделение не к чему не приводит, ведь концовки почти всегда одинаковые 📈 У разработчиков были только хорошие намеренья. Они хотели создать реальный выбор, но к сожалению получилось не очень. Поэтому выбор конечно нужен, но перебарщивать не стоит ‼️ Примеры хорошей нелинейности: ✔️ Скайрим самая линейная РПГ из всех, которые я проходил. Там практически ничего нельзя выбирать. Но при этом ты может отыгрывать определенного персонажа с уникальными способностями ✔️ В Kingdom come deliverance нету много выбора с точки зрения сюжета, но каждую миссию можно пройти по-разному ✔️ Готика линейна с точки зрения событий в игре, но способы их достижения разные 🔼 Рассмотрим критерии хорошего выбора: ➕ Герой должен понимать какие у него варианты выбора ➕ Игрок должен получить последствия исходя из своего выбора ➕ Напоминания. Игра потом объясняет тебе, на что повлияли твои действия. Также стоит делать выбор сложным. Это делает историю неоднозначной и более интересной 💥 Заключение: Как мне кажется, хороший выбора это не тот, в котором сто-пятьсот вариантов реплик. Потому что главное иное - получение геймплейного разнообразия и интересных ситуаций, в зависимости от того какую роль ты отыгрываешь. Мы рассмотрели, что сильно нелинейный сюжет это плохая реализация выбора. Хорошая же реализация - это иллюзия выбора и уникальный опыт при прохождении одних и тех же миссий. Хотите узнать про большее количество геймплейных фишек? - Джун Джуно к вашим услугам!

🔥 Geekon Fest 🔥 🙂 Всем привет! Сегодня провел весь день в Нижнем Новгороде: буквально не было ни минуты покоя. Только сейч
🔥 Geekon Fest 🔥 🙂 Всем привет! Сегодня провел весь день в Нижнем Новгороде: буквально не было ни минуты покоя. Только сейчас, возвращаюсь домой, пишу для вас пост, расскажу о своих впечатлениях! ✔️ Добирался до города на самом неудобном в жизни автобусе: ни тебе кондиционера, ни тебе постоянной стабильной температуры. Встретился там с разработчиком - подписчиком, кто по чистой случайности тоже туда поехал ‼️ Конечно, мог бы рассказать про ixbt, других лекторов, но остановлюсь на самом главном. Встретился там с Романом Сакутином и некоторыми участниками Мастерской (даже с Аркадием, кто, к сожалению, убрал маркер "Движуха Сакутина" в никнейме). Очень соскучился по лекциям от Романа, хоть и была она весьма короткой 📉 Не буду врать, мне Индикон понравился чуть побольше, но абсолютно не сожалею, что поехал туда! А замечательную эстафету Дениса Калужина я принял. Так понимаю, Влад Ву, ты следующий.. ⚠️ Нужен программист, кто умеет делать максимально тупые панчи? - Джун Джуно к вашим услугам!

🔥 Выбор в играх - это Иллюзия 🔥 🙂 Всем привет! Пока еду в Нижний Новгород, решил вам поделиться мыслями про геймдизайн. Ко
🔥 Выбор в играх - это Иллюзия 🔥 🙂 Всем привет! Пока еду в Нижний Новгород, решил вам поделиться мыслями про геймдизайн. Когда компании рекламируют свои РПГ-игры они любят хвалится наличием большой свободы выбора. Потом проходя игру мы понимаем что нас обманули, но не совсем ‼️ Возьмем "Ведьмак 3". Нам обещали 36 концовок, а по факту их всего три. Но в игре есть важные сюжетные выборы, по типу квеста кровавого барона, где есть два исхода. Если сложить все такие исходы, то получим исконные 36 концовок. Поэтому выбор в играх это пыль в глаза. Главное чтобы игрок в это верил 📈 Существует достаточно много игр, например Ведьмак, в которых выбор действительно имеет значение. Но вот в чем суть. В подобной игре можно насчитать четыре, пять выборов, которые меняют ход повествования и концовку. А все остальные 100-200 диалоговых выборов ни на что не влияют. Доходит до такого, что на разные варианты ответа NPC отвечает одинаково, потому что диалог удобно написан ✔️ Но вот, что самое интересно в иллюзии. Это не что-то плохое. Разработчики не могут создать весомые последствия для каждого выбора. Ни у одно компании не хватит ни ресурсов, ни времени. Но они могут создать иллюзию этого таким образом, что игрок даже не заметит, что его выбор абсолютно ни на что не влияет 💥 В следующий раз мы рассмотрим: какие есть плюсы и минусы нелинейного сюжета, как не переборщить с нелинейностью и критерии идеальной системы выбора в игре. А если вам интересно изучать и дальше геймдизайн - Джун Джуно к вашим услугам!

🔥 Геймдизайн: столпы собирательства 🔥 🙂 Всем привет! Хочу начать с вопроса. Зачем разработчики вообще добавляют в игру соб
🔥 Геймдизайн: столпы собирательства 🔥 🙂 Всем привет! Хочу начать с вопроса. Зачем разработчики вообще добавляют в игру собирательство? На это есть три причины: 1️⃣ Чтобы очевидно продлить прохождение на несколько часов 2️⃣ Чтобы игрок изучил весь мир. Художники и левлдизайнеры очень много работали. Будет обидно если игрок не увидит даже половины их стараний если будет двигаться просто по сюжету 3️⃣ Разработчики пытаются создать окружение в которое игроки будут больше верить. Например у меня есть знакомая, которая играла в Ведьмак 3 и собирала абсолютно все что можно собрать. Вещи с трупов, из домов, в валяющихся сундуках и так далее. На вопрос почему она собирает всякий мусор, она ответила "потому что может и это реально интересно". Не будь этого базового собирательства, то мир игры ощущался картонным. Возможность что-то собрать делает мир интересным ⁉️ Как сделать интересное собирательство в играх: 📣 Чтобы собирательство было интересным оно должно соответствовать трем критериям: ➕ Хорошая сюжетная и геймплейная мотивация ➕ Игрокам должно быть интересно ➕ Предметов не должно быть много ⚠️ Чтобы вы поняли суть чуть лучше, давайте рассмотрим собирательство на разных предметах 🚫 Пример плохого собирательства: ➡️ В первом ассасине нам нужно собрать 420 флагов ❌ Непонятно ни зачем главный герой их собирает, ведь с сюжетом это, ни как не связанно. Так же игра не дает геймплейного разнообразия ни в процессе сборки, ни по его окончанию ❌ Что касается интересности - она тут средняя. Интересно находить красивые места и паркурить по крышам. Но все это далеко не верх радости ❌ А количество это просто ужас. Даже начинать страшно 📈 Пример хорошего собирательства ✔️ Продолжим идти по серии ассасинов. Охота за печатями ради получения наряда Альтаира(главный герой первой части, который стал важной шишкой в братстве ассасинов) ✔️ Мотивация. Персонаж хочет получить этот доспех, потому что это наряд великого магистра. Игрок хочет получить его, потому что это лучшая по характеристикам одежда в игре ✔️ Интересность. Мы проходим очень классные катакомбы. Где есть очень много головоломок и прикольных ситуаций. Заниматься всем этим сплошное удовольствие ✔️ Количество. Этих печатей всего шесть. После этого получаешь долгожданный доспех 💥 Заключение Теперь вы понимаете, что собирательство в играх это не что-то плохое, а даже наоборот это может принести удовольствие. Но стоит помнить собирательство может быть как хорошим, так и плохим. Теперь вы знаете и понимаете как сделать свою игру интересной, чтобы игрокам было нескучно ее играть. А если хотите также нескучно обучаться программированию и геймдизайну - Джун Джуно к вашим услугам!

🔥 Роман Сакутин. Три дня до встречи 🔥 ➡️ Август был для меня всегда особенным месяцем. Из года в год вижу такую тенденцию.
🔥 Роман Сакутин. Три дня до встречи 🔥 ➡️ Август был для меня всегда особенным месяцем. Из года в год вижу такую тенденцию. Отмотаю время на четыре года назад: совсем маслёнок - программист неумело учится программированию. Его код - сплошной хаос, мрак ⚡️ Но всё изменилось августовским вечером, когда ему на Ютубе попался один ролик от программиста, где тот ругал создателей Unity. Так в моей жизни появился он - Роман Сакутин ‼️ В это воскресенье я поеду в Нижний Новгород, на Geekon Fest, чтобы побывать на его лекции. Билеты уже куплены, пути назад нет. Это будет первый раз, когда я увижусь с ним в живую. Имелся шанс пересечься пару раз, но у судьбы, видимо, были иные планы 💥 Очень хочется, чтобы Роман хорошо выступил. Хотя я в этом абсолютно не сомневаюсь! Давайте пожелаем все ему удачи! А если вам нужен отличный компаньон, кто будет с вами в течение всего мероприятия - Джун Джуно к вашим услугам!

🔥 Играм нужно собирательство 🔥 🙂 Всем привет! Сегодня мы продолжаем погружаться в тонкости геймдизайна 📣 Многие скажут, ч
🔥 Играм нужно собирательство 🔥 🙂 Всем привет! Сегодня мы продолжаем погружаться в тонкости геймдизайна 📣 Многие скажут, что собирательство в играх такое себе занятие, оно не должно быть интересным. Вообще этим занимаются люди у которых очень много свободного времени. Но собирательство в играх может быть чем-то интересным и более того игры нуждаются в нем ‼️ Психология собирательства: ⛔️ Многие не знают, но собирательство или коллекционирование это человеческий инстинкт, который как и большинство инстинктов направлен на сохранение жизни человека как можно дольше. По большей части мы этого не осознаем, но мы копим деньги, вещи в доме, определенную технику, мы даже мемы сохраняем и собираем свой плейлист музыки ✔️ Как можно было понять собирательство это что-то хорошее, то что положительно влияет на нас с точки зрения психологии. Оно нам приносит радость, что мы наконец-то собрали полную коллекцию, расслабляет, снижает стресс. Разработчики должны это понимать, чтобы сделать собирательство интересным. Но к сожалению в наглую пользуются вашими инстинктами собирателя. Например собери 240 трофеев, убей 200 голубей или найди 500 флагов 📈 Заключение: 📊 Сегодня мы рассмотрели собирательство с точки зрения психологии игрока. А если хотите узнать более подробно зачем вообще нужно собирательство в играх и как сделать этот процесс максимально интересным - Джун Джуно к вашим услугам!

🔥 Почему мы перепроходим игры? 🔥 🙂 Всем привет! Сегодня провел интервью с разработчицей игр, поэтому скоро будет пост в од
🔥 Почему мы перепроходим игры? 🔥 🙂 Всем привет! Сегодня провел интервью с разработчицей игр, поэтому скоро будет пост в одной группе. А сейчас мы поговорим на тему, связанную с геймдизайном, а именно реиграбельность ❗️ Человеку в принципе нравится время от времени пересматривать любимые фильмы, перечитывать хорошую книгу или перепроходить игру, которая понравилась в свое время. Почему это происходит? Дело в том, что мы окунаемся в нечто знакомое и при этом ничем не рискуем. Это та база, на которой основывается возвращение к чему-то любимому 🚫 Быть просто хорошей для игры мало. Наша задача как разработчиков подтолкнуть игроков к перепрохождению. Для этого нужны так называемые "Триггеры", чтобы игрок захотел перепройти игру. Если после прохождения игра понравилась, не факт что он захочет перепройти тот же самый контент прямо сейчас. Для этого и нужны триггеры, чтобы игрок вернулся, как можно скорее ‼️ Небольшой список триггеров для перепрохождения: ✔️ Геймплейные стимулы: 1️⃣ Возможность начать игру заново с текущей прокачкой 2️⃣ Особый уровень сложности 3️⃣ Новые аркадные режимы ✔️ Эстетические награда: 1️⃣ Ачивки 2️⃣ Игровые скины 🟢 Давайте поговорим об этих триггерах подробнее 📌 Предположим у нас есть игра у которой очень глубокая инпут система. То есть чем больше ты узнаешь об игре, тем большими геймплейными вещами ты владеешь. Но самое гениальное, что все навыки получает сам игрок, а не персонаж. Новые навыки могут освежить новое прохождение сделав его не похожим на предыдущее ⛔️ К сожалению, во многих играх сделать подобное нереально. Например в играх, которые основываются на прокачке уровня. Разность уровней перебивает навыки игрока. Разработчики долго ломали голову над универсальным решением. В итоге они дошли до новый игры+. Ты проходишь игру заново со всеми прокаченными навыками и со своим снаряжением. Это может позволять открывать весь контент связанный с навыками и снаряжением. Это отличный геймплейный стимул ⁉️ Вы могли подумать, что отличным геймплейным стимулом может быть нелинейность, но нет. Это может даже ухудшить восприятие игры, ведь игрок не сможет получить весь сюжетный контент за одно прохождение, это может пугать. Но есть нелинейность, которая является просто пылью в глаза. Главное в таком подходе делать так, чтобы выбор мог удовлетворить игрока. Не многим понравится играть за спасителя мира, который будет вести себя, как плохой парень 📣 Заключение 📈 Все разработчики делают, чтобы тебе захотелось вернутся в его игру. Например, игра Far cry 3. Там есть механика связанная с зачисткой аванпостов. Часов через 15 ты полностью прокачался и зачистил последний аванпост и заняться больше не чем. Поэтому по многочисленным просьбам игроков добавили кнопку по сбросу прогресса всех аванпостов, чтобы зачистить их еще раз со своей финальной прокачкой ❓ Разработчики оставляют везде все эти триггеры, чтобы вам захотелось перепройти их игру. Я задам вопрос - последние три игры, которые вы перепрошли. Почему? Из-за того что скучали по игре или потому что захотели выбить какую-нибудь ачивку. Это был ваш выбор или разработчики какой-то хитростью подтолкнули к этому? Напишите об этом, будет интересно почитать. А если хотите больше постов по геймдизайну - Джун Джуно к вашим услугам!

🔥 Локализация игрового проекта: Пособие по LeanLocalization 🔥 🙂 Всем привет! Возвращаемся к разработке. Сегодня мы будем з
🔥 Локализация игрового проекта: Пособие по LeanLocalization 🔥 🙂 Всем привет! Возвращаемся к разработке. Сегодня мы будем заниматься локализацией нашей игры ‼️ В первую очередь скачаем плагин с Asset Store. Создаем объект с компонентом LeanLocalization. Это основной компонент механики ✔️ Теперь нужно прописать свой компонент Localization для получения текущего языка игрока из Яндекса. Работает он через Switch и передает нужный код языка в LeanLocalization 📊 Ну и настройка LeanLocalization: 1️⃣ В поле Languages вписываем все варианты языков которые нам нужны. Для Яндекса самые основные это английский, русский и турецкий 2️⃣ В поле Translations вписываем названия всех объектов для локализации. 3️⃣ У LeanLocalization как дочерние создадутся все объекты для локализации. В каждом объекте для каждого языка пишем свой вариант 4️⃣ Теперь на каждый объект на сцене, который мы хотим локализировать накидываем компонент Lean Localized. Далее у вас появятся варианты, в зависимости от того что и как вы хотите локализировать. Например, текст, TMP-текст или спрайт 5️⃣ В поле TranslationName выбираем имя объекта, которое мы заранее сделали 💥 Поздравляю, мы научились делать автоматическую локализацию в нашем проекте. В LeanLocalization есть удобная функция для проверки работоспособности в режиме редактирования сцены. Просто меняем язык в поле CurrentLanguage. А если хотите разбираться в плагине от Яндекса - Джун Джуно к вашим услугам!

🔥 ИНДИКОН 2024: ВПЕЧАТЛЕНИЕ 🔥 🙂 Всем привет! Вчера вечером я узнал, что в Москве будет проводиться Индикон - фестиваль инд
🔥 ИНДИКОН 2024: ВПЕЧАТЛЕНИЕ 🔥 🙂 Всем привет! Вчера вечером я узнал, что в Москве будет проводиться Индикон - фестиваль инди-игр. Изначально планировал встретиться там с одним молодым геймдизайнером для интервью, но в итоге просто поздоровались, перекинулись несколькими фразочками и разошлись. После этого, его я и не видел. Даже на лекцию, где он выступал не успел попасть. Поэтому приступил к плану B, но прежде пару слов о мероприятии 📊 Fnaf, BatiM, Undertale, TBOI, Overcooked 2 - я могу продолжать и дальше называть фандомы, которые встречались на мероприятии. Со стороны организаторов были классные зоны по инди-играм, викторины, лекции. Участники же подготовили невероятные косплеи персонажей ✔️ На мероприятие позвали начинающих инди-разработчиков, кто выходили со своими проектами на сцену, предлагали пришедшим людям поиграть в их игры. Я общался очень много с Unity - разработчиками: давал советы, рассказывал про проекты, спрашивал о пути в GameDev. Все очень положительно высказывались о Романе Сакутине, были даже там ученики с ЯЮНИОР 💥 И именно там произошла первая фан-встреча с моим подписчиком. Произошло это неожиданно: я подошёл к программисту, кто выступал с игрой на мероприятии, попросил показать код. Начался незамысловатый разговор и вдруг он спросил у меня моё имя. Как же я был удивлен его реакцией: разработчик сказал, что в поезде подписался на мой ТГ канал пару дней назад, увидев меня у Ильи Яковлева. Как же всё-таки мир тесен... Очень классно потом провели с ним время после мероприятия! Спасибо ему огромное 🗓 Как итог, я познакомился с огромным количеством разработчиков, поиграл в настолки, зарядился энергией и самое главное - получил много одобрений на участие в интервью для телеграмм канала Независимые игры. Всем советую ходить на такие мероприятия! А если вам нужен человек, с кем будут много фоткаться на косплей - мероприятиях без костюма - Джун Джуно к вашим услугам!

🔥 Реклама и Zenject 🔥 🙂 Всем привет! Сегодня мы реализуем панель показа рекламы, которая будет отображаться в конце игры.
+1
🔥 Реклама и Zenject 🔥 🙂 Всем привет! Сегодня мы реализуем панель показа рекламы, которая будет отображаться в конце игры. Весь процесс реализации будем выполнять поэтапно, чтобы достичь оптимального результата 📊 Рассмотрим каждый шаг: 1️⃣Создание UI панели Первым делом создадим пользовательский интерфейс нашей рекламной панели. Мы будем придерживаться минималистичного дизайна, чтобы не отвлекать игрока от основного игрового процесса и позволить ему легко взаимодействовать с элементами интерфейса: ➕ Панель должна содержать надпись, предлагающую пользователю посмотреть рекламу ➕ Две кнопки: одна для просмотра рекламы и другая для отмены. Для повышения шанса нажатия на кнопку просмотра рекламы, расположим её справа и сделаем зелёного цвета. Исследования показывают, что такие манипуляции помогают значительно увеличить процент нажатий на кнопку 2️⃣ Написание компонента EndGameAdPanel Следующим шагом создадим компонент EndGameAdPanel, который будет непосредственно реализовывать логику работы рекламной панели 📌 Интерактивный интерфейс компонента будет включать публичный метод Open, который принимает текущее количество очков и делегата. Делегат, указываемый при вызове метода Open, будет срабатывать, когда панель с рекламой закрывается, что позволяет гибко управлять дальнейшими действиями в игре после закрытия панели 3️⃣ Интеграция с GameFinisher И наконец, связующим звеном нашего механизма станет GameFinisher, который будет управлять отображением и закрытием рекламной панели, когда игра подходит к концу: 📌 GameFinisher будет владельцем EndGameAdPanel. Когда игра завершается, GameFinisher вызывает метод Open у EndGameAdPanel, передавая текущие очки и делегат, отвечающий за действия после закрытия панели 📈 В результате, мы получаем продуманную и удобную в использовании систему показа рекламы в конце игры, которая не только не раздражает игрока, но и открывает дополнительные возможности для монетизации. А если хотите разбираться в этой теме - Джун Джуно к вашим услугам!

🔥 Подготовка к рекламе и интеграция Zenject 🔥 🙂 Всем привет! Сегодня мы начнем подготовительные работы для показа рекламы.
+1
🔥 Подготовка к рекламе и интеграция Zenject 🔥 🙂 Всем привет! Сегодня мы начнем подготовительные работы для показа рекламы. Приступим же! 1️⃣ Для начала я написал простенький класс AdServise. У него очень простая логика. Публичный метод для вызова класса показа рекламы и три обработчика. Для начала показа, остановки показа и начисления награды 2️⃣ Тут у меня возникла проблема. У меня очень много глобальных сервисов, которые должны существовать в единственно экземпляре на все сцены. Тут приходит решение - ZENJECT 3️⃣ Сегодня будем заниматься установкой и настройкой всеми любимого Zenject 4️⃣ Таким образом пришлось переделать небольшие части кода. Теперь GameFinisher, показывающий финальные анимации, будет еще начислять деньги в кошелек. В будущем сделаю компонент, который будет предлагать посмотреть рекламу, чтобы увеличить полученные монеты в два раза 💥 В заключение, хочу сказать, что в целом можно было обойтись и без Zenject. Мне бы хватил плагина от AGAVA, который позволяет перебрасывать данные между сценами. Но Zenject упрощает работы, когда нужно прокинуть большое количество сервисов. Не ленитесь и изучайте этот по истине замечательный и полезный плагин. А хотите сделать это эффективно? Джун Джуно к вашим услугам!

🔥 ДОБАВИЛ ВИЗИТОР В ПРОЕКТ 🔥 🙂 Всем привет! Пока я готовлю для вас очень интересное интервью в Независимых играх, расскажу
+1
🔥 ДОБАВИЛ ВИЗИТОР В ПРОЕКТ 🔥 🙂 Всем привет! Пока я готовлю для вас очень интересное интервью в Независимых играх, расскажу про разработку 📌 Хотел я сегодня заняться интеграцией рекламы. Попробовал залить и протестировать игру на платформе Яндекс-игры. Тут я заметил, что игра падает когда я использую предметы. Я начал искать в чем причина и до меня дошло. В WEB не работает динамический визитер. Значит придется делать по старинки в ручную ‼️ ИЗМЕНЕНИЯ: 1️⃣ AbilityVisitor - абстрактный класс в котором хранится интерфейс взаимодействия со стартером и финишером эффектов. В нем находится метод Visit(ItemData item). Он и вызывает метод Accept у ItemData 2️⃣ ItemData - абстрактный класс для информации о предметах. Тут добавлен абстрактный метод Accept. А типизированные классы вызывают свой метод в визитере 📊 Хоть решение получилось достаточно коротким, времени затраченного на поиск решения ушло очень много. Поэтому я делюсь с вами информацией о том что не стоит использовать динамический визитер в вебе. Он сломает вашу игру! Хотите не совершать глупых ошибок в GameDev - Джун Джуно к вашим услугам!

🔥 LEADERBOARD - КОНЕЦ 🔥 🙂 Всем привет! Сегодня мы заканчиваем Leaderboard. Нам понадобится четыре класса 📈 Верхнеуровневы
+3
🔥 LEADERBOARD - КОНЕЦ 🔥 🙂 Всем привет! Сегодня мы заканчиваем Leaderboard. Нам понадобится четыре класса 📈 Верхнеуровневый: ➕ YandexLeaderboard - Entry point лидерборда. В этом классе происходят все взаимодействия с серверной частью 📉 Низкоуровневые: ➕ LeaderboardPlayer - модель с данными о каждом игроке. В нем хранится информация о ранке, имени и количеству очков. Заполняется в EntryPoint ➕ LeaderboardElement - вью. Болванка визуализирующая игроков ➕ LeaderboardCellFactory - получает модельки и создает под них вьюшки ‼️ Немного про взаимодействия с сервером: 1️⃣ Для начала, SDK нужно включить в точке входа программы. Это делается один раз и используется для всех взаимодействий 2️⃣ Перед каждым открытием лидерборда нужно проверять авторизован ли пользователь 3️⃣ Если пользователь не авторизован вызывается метод авторизации 📊 В заключение, хочу сказать, что работа с сервером не вызывает каких-либо сложностей. Если пользоваться от пактами компании AGAVA, то вызывать нужно всего несколько методов и лидерборд готов. Завтра мы начнем интегрировать рекламу в нашу игру. А если вам интересна разработка игр - Джун Джуно к вашим услугам!

🔥 НАЧАЛО РАБОТЫ С ЛИДЕРБОРДАМИ 🔥 🙂 Всем привет! Сегодня мы будем пытаться создать лидерборд. У меня ноль опыта в этой меха
🔥 НАЧАЛО РАБОТЫ С ЛИДЕРБОРДАМИ 🔥 🙂 Всем привет! Сегодня мы будем пытаться создать лидерборд. У меня ноль опыта в этой механике, поэтому все буду изучать на ходу, вместе с вами) ➡️ Когда-то давно я узнал о техническом директоре в АГАВА. У него был свой ТГ канал, куда он постил много полезной информации ✔️ Самый последний его пост посвящен Яндекс-играм. В его GitHub есть готовый шаблон для всего необходимого 📈 Я скачал сам пакет и Sample, для того чтобы понять как с этим работать. 📌Вызвав метод Leaderboard.GetEntries("PlaytestBoard", (result) =>) мы получаем result, где хранится массив с данными всех игроков. Далее из каждого элемента можно достать количество очков и имя игрока ✨ В завершении сегодняшнего дня подготовил полностью UI. Одиночную строчку игрока я вынес в префаб 💥 Сегодня мы закончили все подготовительные работы. Завтра начнем писать код и взаимодействовать с серверами Яндекса

🔥 Работа с кватернионами на практике 🔥 🙂 Всем привет! Не хочу, чтобы вы соскучились по учебным постам, поэтому... Сегодня
🔥 Работа с кватернионами на практике 🔥 🙂 Всем привет! Не хочу, чтобы вы соскучились по учебным постам, поэтому... Сегодня мы поговорим про практику при работе с Quaternion ⁉️ Как поворачивать объект вокруг оси на градус? ✔️ Сначала создаем кватернион через Quaternion.AngelAxis(количество градусов, ось поворота) ✔️ Далее чтобы применить поворот к трансформу нужно сначала брать кватернион, а потом умножать на трансформ ‼️ Порядок умножения очень важен ⁉️ Как плавно перевести поворот объекта в другой поворот? ✔️ Возьмем ситуацию где нам нужно получить какой-то кватернион между двумя кватернионами ✔️ Для этого нам понадобиться сферическая интерполяция - QuaternionSlerp(первый кватернион, второй кватернион, диапазон он 0 до 1) ✔️ Полученный кватернион мы перемножаем с поворотам трансформа 💥 Это самое главное что вам стоит знать при работе с кватернионами. Тема интересная, советую попрактиковаться. Остались вопросы на тему кватернионов - Джун Джуно к вашим услугам!

🔥 Не ждали? - Снова разработка игр! 🔥 🙂 Всем привет! Заценили уже пост в Независимых играх? А пока мы продолжаем улучшать нашу игру. И сегодня мы рассмотрим как реализовать эту анимацию. Сначала рассмотрим решение, увидим подводный камень и решим возникшую проблему ‼️ Реализация: 1️⃣ Для начала создаем объект типа Image на сцене 2️⃣ Выставляем ширину объекта по ширине экрана 3️⃣ Переставляем объект за пределы сцены справа 4️⃣ Используя DoTween двигаем объект к центру экрана 🔴 Тот самый подводный камень. Изображение входит в область видимости камеры. Это происходит за счет того, что ширина экрана меняется в зависимости от разрешения и ориентации экрана 💥 Решение: ✔️ Выставляем якоря изображения по ширине экрана ✔️ Сохраняем в поле ссылку на RectTransform. Из него мы можем вытаскивать ширину изображения в измененном разрешении экрана ✔️ Перед проигрыванием анимации включаем изображение и выставляем локальную позицию изображение, где позиция по X будут равна ширине изображения 📈 Как итог, у нас получается анимация, которая работает при любом разрешении. А если хотите больше разбираться в Unity - Джун Джуно к вашим услугам!

Джун Джуно к вашим услугам! Путь в разработку игр | Движуха Сакутина - Estadísticas y analítica del canal de Telegram @juniourjuno