🎮 TinyGames
2.09K subscribers
90 photos
10 videos
15 files
58 links
🎮 Учим Unity с нуля: просто о сложном. Пишем первый код и создаем миры вместе.

💬 Чат - https://t.me/tinygameschat

🧑‍💻 Вопросы и предложения @ddpotapov
Download Telegram
Вы знаете, что я арендую студию для записи видео?
С профессиональным оборудованием и освещением 🧐

На фото как раз она.
1😁5231🔥11👍5🥰2🍓1
Channel photo updated
🚀 Новое видео на канале!

В этом видео мы создадим полноценный контроллер персонажа для Top-Down игры на Unity!
Вы узнаете, как реализовать движение в 8 направлениях (включая диагонали) и оживить героя с помощью Blend Tree анимаций.

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

👉 YouTube

👉 VK

Приятного просмотра друзья! 👍
55👍8🔥5
Немного оффтопик.
Ну мой канал, могу и туалетную тему осветить 🚽

Первый успешный опыт применения нейросетей в быту!

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

Сразу надо сказать, что я очень далек от сантехники и от электричества тоже. Что-то знаю, но очень поверхностно.

У меня инсталляция и бачок внутри стены, из доступа только маленькое окошко.
Вот я снял эту крышку, там какие-то шланги, рычажки. Хз, что делать.
Ну думаю, пусть Gemini разбирается. Описал ему проблему, скинул фотку. И он по фотке мне все разложил - поверни синий рычажок, та хрень слева это заливной клапан, достань его и промой.
В общем, шаг за шагом я все сделал, промыл, собрал обратно - все работает.
Спасибо искусственному интеллекту!

Очень горд собой!
Мужиииик в доме! 💪💪💪
2🔥75😁18🤪9🤣31👍1
Пост про унитаз набрал больше реакций, чем пост про новое видео. Кажется, я не про то снимаю видео...
1😁65🤣24😭3🔥2🤯2❤‍🔥1💯1
🚀 Новое видео на канале!

Продолжаем наш мини-гайд по top-down движению.
В этом видео мы добавим эффект пыли и поворот в сторону движения при остановке.

👉 YouTube

👉 VK

Приятного просмотра друзья! 👍
1🔥459👍7🐳1
GetComponent vs [SerializeField] — битва подходов 🔥

Раньше я всегда считал: если Rigidbody2D висит на том же объекте, что и скрипт, надо брать его через GetComponent в Awake. Зачем захламлять инспектор, если компонент и так рядом?

Но копнув глубже в архитектуру и оптимизацию, я понял, почему в серьезных проектах (и в AAA) часто предпочитают ручной проброс ссылок через [SerializeField].

Давайте разберем неочевидные нюансы👇


1️⃣ Проблема архитектуры (Parent/Child)
В простых играх у нас "все в одном": скрипт, спрайт и физика на одном объекте. Но в сложных проектах структуру разделяют:
--> Root: Логика, AI, Здоровье.
--> Visual: Спрайты, Аниматор (чтобы модельку можно было крутить/скейлить отдельно от коллайдера).
--> Physics: Rigidbody, Коллайдеры.

Если вы используете GetComponent, ваш скрипт на Root просто не найдет физику, так как она на дочернем объекте.
С [SerializeField] вы просто перетаскиваете ссылку на дочерний объект Physics в поле скрипта. Код менять не нужно, архитектура остается чистой.

2️⃣ Микро-оптимизация (Пример с пулей)
GetComponent — это поиск. Unity пробегает по списку компонентов, сравнивает типы и возвращает результат. Представьте, что у вас пулемет. Вы спавните 1000 пуль в минуту.

Вариант А: Каждая пуля при рождении тратит процессорное время на поиск своего Rigidbody. В момент интенсивной стрельбы это может вызвать микро-фриз (GC Alloc и нагрузка на CPU).

Вариант Б (SerializeField): Ссылка на Rigidbody уже "запечена" в префабе пули. При спавне Unity просто копирует готовые данные. Ноль затрат на поиск.

💡 Решение Best Practice

1️⃣ Магия OnValidate (Лучшее из двух миров)
Если вам лень перетаскивать ссылки руками, но вы хотите производительность SerializeField, используйте этот лайфхак:
[SerializeField] private Rigidbody2D _rb;

// Вызывается ТОЛЬКО в редакторе Unity, когда вы что-то меняете
private void OnValidate() {
// Если ссылка пустая — найди её сама!
if (_rb == null) _rb = GetComponent<Rigidbody2D>();
}

Как это работает: Вы вешаете скрипт на объект — Unity сама мгновенно находит компонент и прописывает его в поле _rb прямо в инспекторе. В игре (Runtime) этот метод даже не запускается, у вас сразу есть готовая ссылка.

Для любителей GetComponent тоже есть лайфхак - используйте [RequireComponent]:
[RequireComponent(typeof(Rigidbody2D))]
public class Player : MonoBehaviour {
private Rigidbody2D _rb;

void Awake() => _rb = GetComponent<Rigidbody2D>();
}

Этот атрибут заставит Unity автоматически добавить нужный компонент на объект и не даст вам его удалить случайно.

🤔 Вывод: Для прототипов GetComponent — ок. Для продакшена, сложных префабов и высоконагруженных объектов — лучше [SerializeField].

А какой подход используете вы?
1. Только [SerializeField], люблю полный контроль! 👌
2. Всегда GetComponent, лень двигать мышкой 🥱
3. Использую GetComponent, но с [RequireComponent] 🏆
4. OnValidate — наше всё 👾

И накидайте 🔥, чтобы я понял, интересны вам такие посты или нет.
P.S. Спасибо @koiiiapik за идею поста.
1🔥839👌8🤯3👍1🥱1
Как у вас конец года? Держитесь? 😬
🔥27👌11😢4👻32👍1💩1🍌1💋1
Друзья, поздравляю вас с новым годом!

Новый год это всегда начало чего-то нового, новых надежд и свершений!

Желаю, чтобы в следующем году вы достигли того, чего бы вам самим хочется!

Будь то создание игры своей мечты, поступление в универ, поиск работы или просто спокойная жизнь.

С новым годом! 🎄🦌🚗🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
375🎉17🎄53
This media is not supported in your browser
VIEW IN TELEGRAM
Как праздники?
Все салаты доели?
Пилите игру своей мечты или полный релакс?
120😁1
Помните, я планировал сделать инструмент, который берет размытую картинку из нейросети и превращает её в настоящий, четкий Pixel Art?

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

🧠 Короче, концепция поменялась. Я объединил всё в одного бота.
👉 @indiemate_bot

Теперь это полноценный конвейер для создания ассетов.
Бот делает всё сам:
1. Генерирует изображение по вашему описанию.
2. Сам удаляет фон (получаете PNG с прозрачностью).
3. Прогоняет картинку через постобработку. На выходе — Pixel Perfect, готовый к импорту в Unity в разных размерах.

🔥 Бонус-фича: Поскольку я контролирую и генерацию тоже, я добавил Inpainting (Режим правки). Сгенерировал персонажа, но забыл меч? Пишешь «дай ему меч в руки», и бот дорисовывает. Нужно ответить на изображение и написать, что добавить (смотри GIF к посту).

Проект находится в ранней бете, поэтому возможны ошибки и падения. Если такое произойдет - пишите мне.

💸 Про условия: Сервера с GPU дорогие, поэтому полная халява невозможна. Сделал символические тарифы (дешевле кофе), чтобы проект не ушел в минус. Оплата пока переводом на Тинькофф (автоматику прикручу позже, сейчас лень). Всё на доверии.

Скидывайте в комментарии, что у вас получилось!
🔥17❤‍🔥31👍1
👍24🔥3😁1
Обновил бота: теперь вы управляете детализацией

Не спал, докручивал алгоритмы.

Что нового:

1️⃣ Режимы детализации (Low / Mid / High)
Раньше бот сам решал, насколько сложным будет рисунок.
Теперь решаете вы:
Low: Минимализм, чистый 8-bit, крупные пиксели. Идеально для ретро-игр или массовки.
Mid: Золотая середина (уровень SNES/Sega).
High: Высокая детализация, много мелких элементов. Для главных героев и портретов.
Изменить можно в меню бота. По умолчанию High.

2️⃣ Качество генерации 2.0
Перебрал промпты под капотом. Теперь спрайты выходят чище, сетка ровнее, а мусора меньше — во всех режимах.

🔜 Что дальше?
Начинаю работать над базовыми анимациями (Idle, Run, Attack). Задача сложная, но план уже есть.

👇 Заходите тестить новые режимы:
@indiemate_bot
🔥456👍3🥰2❤‍🔥1
Всем привет!
Давно не писал.
В комментариях спрашивают, когда новые видео.
После нового года меня сразу захлестнула работа. Наверное, у вас также. Очень много работы.
Поэтому пока не было времени заниматься созданием видео.

Я продолжаю делать бота, но совсем по чуть-чуть, когда появляется свободная минута. Планирую выкатить первую версию анимаций и улучшить генерацию спрайтов.
Такие дела.
Скоро увидимся 🙋‍♂️
🔥36👍2👨‍💻21😢1
Channel photo removed
Channel photo updated
Еле нашел старую аватарку)
Новый год кончился!

Пора претворять в жизнь все обещания, которые давали себе под бой курантов 😁
2👍34😁5💯52💩1💅1
У меня сегодня день рождения, кстати 😊🎂
3🎉24336🍾27🏆5💩2🍓2❤‍🔥1