Яковлев Илья | Gamedev
4.53K subscribers
239 photos
35 videos
18 files
205 links
Download Telegram
🔥 Некорректное поведение CharacterController! 🔥

По-тихоньку возвращаемся с контентом и это еще один пост из серии лайфхаков, поэтому с вас 🔥 на этом посте, если нравится данная рубрика!)

‼️ Проблема:

На персонаже висит компонент CharacterController, двигается с помощью Move() и в определенный момент игры вы хотите переместить его в какую-то точку через transform.position = newPosition. Казалось бы тривиальная задача - персонаж должен переместиться и двигаться дальше из новой точки, однако перемещение в новую точку игнорируется и персонаж продолжает двигаться как ни в чем не бывало

✔️ Решение:

Проблема в том, что в настройках физики по умолчанию отключена автоматическая синхронизация преобразований, поэтому Move() будет игнорировать новое преобразование, пока не апдейтнется новый кадр, так что заходим Edit>>Project Settings>>Physics>>Auto Sync Transform и ставим этот пункт в True. Либо можно в ручную в нужных местах делать синхронизацию через Physics.SyncTransform (кстати это может помочь и с другими багами, связанными с rigidbody и тп)

🥰 Сталкивались ли вы с подобной проблемой? Пишите в комментариях!

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Скоро новые видео! 🔥

Контента долго не было (доделывали с командой мвп под мобилку и планировал некоторые вещи по контенту), но уже скоро начнется выпуск видосов, стартанет новый поток курса и даже небольшое мероприятие планируется!

✔️ Первым выйдет видос из рубрики КАК ЭТО СДЕЛАНО? Решил запилить небольшой обзорный видосик по зашляпливанию из Super Mario Odyssey. Касаемо этой рубрики решил делать так: на ютубе будут выходить небольшие обзорные видосы, а на курсе по архитектуре будем собираться и подробно смотреть на то как чего сделано, т.к. сложные долгие видосы с разжевыванием совсем не заходят (сужу по механике остановки времени из зельды)

✔️ Далее выйдет видос по оптимизации веса игры:) Причем там столько советов получается, что я, скорее всего разобью это дело на две части, так что сожмете свою игру как следует (особенно актуально для веба и мобилок) ⭐️

✔️ И также хочу выпустить видос с топом полезных ассетов/инструментов для разработки. Будет и начинающим полезно и, возможно, продвинутые ребята для себя что-то подчерпнут

🔜 Ну и о секретном мероприятии и следующем потоке сообщу в ближайшее время

Ставь 🔥, если нравится программа и пиши в комментарии свои идеи для дальнейшего контента на ютубе:)
Please open Telegram to view this post
VIEW IN TELEGRAM
Не люблю публичные соболезнования и тп. но, думаю, сегодня обойдёмся без screenshot saturday. Всем сил!
🔥 Бесплатный ассет! Успей забрать🔥

⚡️ Стал бесплатным ассет с инструментами для удобного внедрения монетизации (не скажу, что это сложный процесс, но с пакетом это может стать удобнее) Mobile Monetization Pro: Ads, IAP(In App Purchase) & More
Акция заканчивается 31 марта

Думаю кому-то пригодится:)
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Совет по инкапсуляции и чистоте кода🧐

Киньте 🔥 на пост, чтобы я понимал нравятся вам такие длинные посты или нет:)

Довольно часто возникает ситуация, когда необходимо получить/вывести информацию об объекте. Но надо понимать, что объекты, зачастую, имеют какой-то интерфейс взаимодействия и передавать объект целиком может быть опасно (кто-то дернет метод, кто-то поменяет свойство и тп), поэтому на такой случай можно делать свои ReadOnly интерфейсы - это бывает очень удобно и безопасно.

Например, у нас есть объект какой-то игровой сущности и я, при задевании ее коллайдером, хочу вывести информацию о ней.

public class GameEntity: MonoBehaviour
{
public int Health { get; private set; }
public bool CanEat { get; private set; }
public string Name { get; private set; }

public void TakeDamage() { /* DO Something */ }

public void Heal() { /* DO Something */ }

public void StartWork() { /* DO Something */}
}


Задача довольно узкая и понятная. Для нее мне нужна от объекта лишь информация на чтение, без возможности как-то влиять на его состояние. Поэтому можно завести ReadOnly интерфейс, куда вынести всю информацию для считывания и реализовать на нашей сущности

public interface IReadOnlyGameEntity
{
public int Health { get; }
public bool CanEat { get;}
public string Name { get; }
}

public class GameEntity: MonoBehaviour, IReadOnlyGameEntity
{
//тело остается как было
}


Теперь остается лишь там, где необходимо получать сущность по этому интерфейсу и выводить необходимую информацию

public class GameEntityTrigger: MonoBehaviour
{
private void OnTriggerEnter(Collider other)
{
if(other.TryGetComponent(out IReadOnlyGameEntity gameEntity))
Print(gameEntity);
}

private void Print(IReadOnlyGameEntity gameEntity)
=> Debug.Log(gameEntity.Name + gameEntity.Health + gameEntity.CanEat);
}


Получается чисто, и не надо переживать. что кто-то нарушит состояние объекта (по крайней мере там где никак не ожидаешь). Аналогично можно поступать с событиями и тп (часто кидают события, где передают себя, опять же, лучше это делать под ReadOnly интерфейсом)

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 НОВОЕ ВИДЕО УЖЕ НА КАНАЛЕ! 🔥

Кстати там вас ждет анонс приятного для многих мероприятия о котором расскажу подробнее на днях:)

Поддержите видос лайком, комментарием и временем просмотра! Всех люблю 🥰

https://www.youtube.com/watch?v=6g7-4wz9nd0 <- вот ссылочка на видосик:)
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Screenshot Saturday! ⭐️

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
🔥 Запускай сцены удобно! 🔥

Еще один пост из серии лайфхаков, поэтому с вас 🔥 на этом посте, если нравится данная рубрика!)

‼️ Проблема:

Часто в проектах практикуется создание разных сцен для запуска игры (например, базовая пустая сцена, где прогреваются всякие рекламные сервисы, аналитика и тп, а уже потом мы двигаемся дальше). Соответственно, чтобы тестировать, допустим, геймплейную сцену надо постоянно включать базовую и запускаться с нее. Сами понимаете, что часто такое проворачивать очень утомительно и надо проблему решать

✔️ Решение:

В таком случае можно написать расширение для запуска нужной сцены, а еще лучше не придумывать велосипед и использовать готовый и удобный бесплатный ассет по ссылочке ниже! Сам часто пользуюсь) Просто скачиваете его себе через пакетный менеджер, используя ссылку с гитхаба, перезапускаете проект и вуаля - у вас очень удобная менюшка с выбором сцены, которую вы хотите запустить, так еще сверху ненможко удобного функционала, по типу добавления сцен в избранное)

🥰 Пользуйтесь, господа - https://github.com/antonysze/unity-custom-play-button

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Анонс бесплатного вебинара по архитектуре в играх ⚡️

🔜 Когда?

6 апреля, 19:00 по МСК на прямой трансляции

👀 Что будет?

Впереди нас ждет 2 часа полезного материала и общения в ходе которых мы разберем болезненные для многих вопросы связанные с архитектурой игрового проекта:

👉 Что вообще такое архитектура игры и почему она так важна?
👉 Основные требования к архитектуре
👉 Какие инструменты позволяют позволяют делать систему более гибкой?
👉 Из каких модулей обычно состоит игра? Что стоит предусмотреть сразу и какие места могут быть проблемными
👉 Как связывать кучу игровых сущностей/модулей между собой?
👉 Как нужно учиться пониманию архитектуры и почему этот этап сложен?
👉 И многое другое!

🔥 И это еще не все! 🔥

На вебинаре я подарю одному из вас очень крутой подарок - бесплатное место на моём курсе по архитектуре игр в Unity, который стартует уже 14 апреля! Среди всех участников трансляции в прямом эфире выберем победителя!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Безопасная зона экрана 🔥

Еще один пост из серии лайфхаков, поэтому с вас 🔥 на этом посте, если нравится данная рубрика!)

‼️ Проблема:

Думаю многие сталкивались с челками/камерами/непонятными вырезами на экранах телефонов. Если не подумать об этих особенностях смартфона, то при выпуске игры на мобилки часть UI может быть перекрыта (как на скрине 1). Некоторые начинают просто отодвигать верхнюю часть UI по ниже, но, на самом деле безопасную зону на экране можно выделить с помощью кода:)

✔️ Решение:

В Unity уже давно есть встроенный режим simulator, где можно потестить как выглядит ваша игра на разных устройствах + там можно включить режим safe area и вам на каждом телефоне будет показываться безопасная зона (на скрине 2 все кнопочки отметил). Так вот мы можем получить доступ к размерам этой безопасной зоны из кода и с помощью него автоматически подгонять UI как надо. Кстати, вот этот скриптик - в сообщении ниже:) Вешаете его на нужный канвас/контейнер с контентом и у вас автоматически при старте сцены UI подстроится под безопасную зону любого телефона и не надо думать ни о чем лишнем:)

🥰 Сталкивались ли вы с подобной проблемой? Пишите в комментариях!

#лайфхаки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Фабрика, визитер, медиатор, SOLID и Zenject - кто это?

Я часто использую в своих роликах и постах непонятные для многих подходы в разработке.
Но знали ли вы, что через использование этих незнакомых, но необходимых вещей проходит любая игра, в которую интересно играть?

👨‍💻 А ведь каждый из этих терминов отвечает за отдельную область полезных действий, которые являются основополагающими для правильной организации хорошей игры

Я бы хотел помочь вам сделать первые шаги в этом направлении, чтобы вы смогли научиться разбираться в своих проектах и делать более крутые и качественные игры в дальнейшем, ведь все это и правда открывает много новых возможностей для разработки, а устроиться разработчиком без этих знаний сейчас вообще невозможно. Поэтому я организую для вас онлайн встречу, на которой помогу вам окунуться в основу этих сложных вещей, понять зачем вообще все это нужно и вынырнуть оттуда с новыми знаниями

⚡️ Вы со мной, друзья?
Через 2 дня я проведу для вас бесплатный вебинар, на котором мы будем разбираться с темой архитектуры игровых проектов, систематизируем необходимые знания, а также я отвечу на все ваши вопросы.

🔜 Очень жду всех 6 апреля в 19:00 :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Кофе или чай? 🧐

Всю жизнь любил чай и ненавидел кофе, но, с появлением девушки, моя жизнь стала меняться... Она, наоборот, большая любительница кофе, поэтому, когда мы стали жить вместе, то наши интересы неизбежно столкнулись😂

Она постоянно делала кофе и нет нет, я пробовал эту субстанцию:) И вот раз за разом, глоток за глотком мое отношение к кофе изменилось с резко негативного на "хм, а этим можно иногда заменять чай".

И сейчас, попивая очередную чашку кофе, мне стало интересно, что больше любите вы? Давайте соберем статистику и выявим лучший напиток!)

P.s. чай я не предам #оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Бесплатный вебинар уже скоро ⚡️

🔜 Уже меньше чем через 8 часов я проведу с вами трансляцию, на которой бесплатно поделюсь полезной информацией по архитектуре игр - в 19:00 МСК

Для кого этот вебинар?
Если у тебя есть желание создать проект больших размеров, чем маленькая одноразовая игрушка и ты хочешь заниматься любимым делом на более высоком уровне, то необходимо сделать следующий шаг в изучении разработки игр. Именно поэтому я провожу вебинар по архитектуре, т.к. это и вправду очень важный аспект в разработке, который я хочу помочь вам начать осваивать

👨‍💻 Я постарался структурировать занятие в связный и понятный рассказ, чтобы вы смогли понять все от момента "для чего это нужно?" до "что делать и изучать для решения этих проблем?"

Ещё не забывайте, что я разыграю для вас бесплатное место на моем курсе по архитектуре игр, запись на который стартует уже завтра в 12:00 МСК, так это что будет для кого-то из вас очень приятным бонусом

‼️ https://youtube.com/live/J8GSUEZ2qwU?feature=share <- ссылка на трансляцию
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Занятие начнется через 10 минут!⚡️

🧑‍🎓 Куча полезной информации по архитектуре игр и розыгрыш курса по unity уже близко! Присоединяйся!

👀 Жду вас на трансляции по ссылке -> https://youtube.com/live/J8GSUEZ2qwU?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Всем спасибо за занятие! 🔥

Было очень приятно провести занятие в таком формате и, надеюсь, полезно) Также поздравляю победителя розыгрыша!

Кто не выиграл - не расстраиваемся. Запись на 9-й поток откроется уже завтра в 12:00 по МСК на сайте -> https://yakovlevgamedev.ru

Также прикрепляю ссылочку на трансляцию (она будет доступна в течении 4-х следующих дней) - https://www.youtube.com/watch?v=J8GSUEZ2qwU
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️Старт продаж 9го потока курса по архитектуре игр открыт!⚡️

⭐️ Я запускаю новый цикл онлайн уроков по одной из самых важных тем в разработке игр и уже сейчас вы можете записаться на него!

🔖 Оставить заявку и получить всю необходимую информацию можно тут -> https://yakovlevgamedev.ru/

😎 Количество мест ограничено - успейте записаться и получить подарки!

жду вас на обучении!
Please open Telegram to view this post
VIEW IN TELEGRAM