Яковлев Илья | Gamedev
4.53K subscribers
239 photos
35 videos
18 files
205 links
Download Telegram
⭐️ Screenshot Saturday! ⭐️

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
🧐 Важная информация 🧐

Хочу оповестить, что сделал двух специальных ботов с небольшими подарками и немножко рассказать про них:

😇 @yakovlev_beginner_bot - бот в котором будет выкладываться инфа о предстоящем курсе для новичков, вместе с обучающей информацией (и уже на этой неделе я опубликую программу, с которой вы сможете ознакомится и отправить свой фидбек для поправок)

🤯 @yakovlev_advanced_bot - тут будут поститься новости о старте новых потоков курса по архитектуре в юнити и все связанное с этим (обновления, некоторые посты для продвинутого уровня, розыгрыши и тп)

🧑‍🎓 Кроме того, уже в обоих ботах можно забрать обновленный и бесплатный пак ресурсов для обучения разработке игр - сайты, чаты, каналы, книги и тп. под разный уровень знаний и с небольшими комментариями, поэтому залетайте в любого интересующего бота и прокачивайтесь!

P.s. завтра будет пост о том, чем я занимаюсь сейчас, где видосы и какие планы на них:)
Please open Telegram to view this post
VIEW IN TELEGRAM
⁉️ Где видео? ⁉️

Небольшой пост о том, почему на канале уже больше месяца не выходят видосы и когда уже появится новый контент

На самом деле причин отсутствия видео несколько:

🔣 Основная причина - загруженность. Сейчас плотно работаем с командой над проектом (уходит больше времени чем рассчитывалось) + немало сил забирает проведение курса по архитектуре с проверкой домашек.

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

🔣 Также местами время приходится тратить на некоторые дополнительные проекты: участие в трансляциях (кстати, в апреле будет еще один прямой эфир с моим участием), обсуждение некоторых дополнительных проектов и тп.

🔣 Некоторые жизненные проблемы, которые тоже периодически злят и выматывают, но пока по другому не получается:(

В общем всякого разнового навалилось в первые месяцы нового года, но по тихоньку разгребаю и скоро начну выкладывать контент!

🧐 У меня уже есть несколько идей и заготовок для видосов, но хочется узнать у вас, на какую тему вы бы хотели получить видос в ближайшее время?)
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰 С международным женским днём! 🥰

Поздравляю всех девушек с этим замечательным праздником и желаю чтобы все ваши мечты сбылись!!!

P.s. Парни, в комментариях оставляйте свои поздравления!😉
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Screenshot Saturday! ⭐️

Делимся и пиарим свои наработки/проекты/идеи в комментариях!🔥🔥🔥
Программа курса.pdf
174.2 KB
🔥 Программа курса для начинающих!🔥

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

➡️ Ознакомиться с ориентировочной программой и кратким описанием курса вы можете в прикрепленном документе. Ориентировочный старт записи: апрель-май этого года.

⚙️ Какие-то детали разработки материала будут выкладываться в соответствующем боте, поэтому залетайте (там, кстати, есть подарок для обучения разработке игр)

🧑‍🎓 Я хочу сделать действительно лучший курс для начинающих разработчиков, поэтому мне бы очень хотелось получить вашу обратную связь после изучения программы. Так что, если вам не сложно, то попрошу пройти небольшую анкетку в гугл формах -> https://forms.gle/1Ek4Fme3QV7bZQaGA, чтобы я смог собрать достаточно фидбека и еще улучшить программу. Большое спасибо!
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Screenshot Saturday! ⭐️

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

p.s. от меня на этой неделе контента не много, поэтому надеюсь на ваши крутые идеи и проекты!❤️
🔥 Некорректное поведение 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