🧠 Unity: Оптимізація фізики без магії
Фізика в Unity — це круто, але дуже швидко може зжерти FPS. Особливо на мобілках.
Тримайте 7 практичних порад, які реально працюють ⬇️
1️⃣ Вимикай зайві взаємодії
У
Менше перевірок → менше навантаження.
2️⃣ Неактивний об'єкт ≠ активна фізика
Якщо об'єкт за кадром або ще не використовується:
Це реально економить ресурси.
3️⃣ Не рухай об'єкт через transform.position
Якщо він має Rigidbody — використовуй:
Інакше багаючі колізії й головний біль.
4️⃣ Усе, що пов’язано з фізикою роби в FixedUpdate()
Input читається в
5️⃣ Статичний об'єкт? Забудь про Rigidbody
Колайдер без Rigidbody = норм.
Rigidbody потрібен тільки тим, що рухаються.
6️⃣ Interpolate не для всіх
Вмикай Interpolation тільки на об'єктах, де треба згладжений рух (типу гравця).
Інакше просто даремно навантажуєш CPU.
7️⃣ Триґери й колізії не лагують самі по собі
Але якщо в
У деяких випадках краще перевіряти вручну:
📌 Це базовий набір, який дає хороший приріст на мобілках.
💻 | GAMEDEV UA | #оптимізація #Unity #PhysicsOptimization
Фізика в Unity — це круто, але дуже швидко може зжерти FPS. Особливо на мобілках.
Тримайте 7 практичних порад, які реально працюють ⬇️
1️⃣ Вимикай зайві взаємодії
У
Project Settings → Physics вимикай непотрібні Layer-to-Layer взаємодії.Менше перевірок → менше навантаження.
🧩 Профі-порада: для складних сцен створюй спеціальні шари для об'єктів, які взагалі не повинні взаємодіяти з фізикою (UI, FX, дальній фон тощо).
2️⃣ Неактивний об'єкт ≠ активна фізика
Якщо об'єкт за кадром або ще не використовується:
rb.simulated = false;
collider.enabled = false;
Це реально економить ресурси.
3️⃣ Не рухай об'єкт через transform.position
Якщо він має Rigidbody — використовуй:
rb.MovePosition(...);
Інакше багаючі колізії й головний біль.
🧩 Профі-порада: якщо тобі потрібен "жорсткий" телепорт (наприклад, для швидкого переміщення на спауні) — спочатку зроби rb.simulated = false, потім position, потім знову simulated = true.
4️⃣ Усе, що пов’язано з фізикою роби в FixedUpdate()
AddForce, MovePosition, velocity — тільки туди.Input читається в
Update(), а дії в FixedUpdate().5️⃣ Статичний об'єкт? Забудь про Rigidbody
Колайдер без Rigidbody = норм.
Rigidbody потрібен тільки тим, що рухаються.
6️⃣ Interpolate не для всіх
Вмикай Interpolation тільки на об'єктах, де треба згладжений рух (типу гравця).
Інакше просто даремно навантажуєш CPU.
7️⃣ Триґери й колізії не лагують самі по собі
Але якщо в
OnTriggerEnter() чи OnCollisionEnter() багато логіки — буде біда.У деяких випадках краще перевіряти вручну:
Physics2D.OverlapCircle(...)
🧩 Профі-порада: якщо використовуєш великі області виявлення — заміни колайдери на Collider2D.OverlapPoint/Box/Circle з кешованими масивами. Це зменшить кількість об'єктів у сцені.
📌 Це базовий набір, який дає хороший приріст на мобілках.
💻 | GAMEDEV UA | #оптимізація #Unity #PhysicsOptimization
❤9👍3🔥2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🧩 Як зробити систему розміщення на гекс-сітці в Unity за 60 секунд
Хочеш реалізувати розміщення об’єктів на шестикутній сітці в Unity? Тоді це для тебе :)
💻 | GAMEDEV UA | #туторіал #HexGrid #grid #сітка
Хочеш реалізувати розміщення об’єктів на шестикутній сітці в Unity? Тоді це для тебе :)
💻 | GAMEDEV UA | #туторіал #HexGrid #grid #сітка
🔥9❤🔥2
YouTube
DOTWEEN is the BEST Unity asset in the WORLD and I'll fight anybody who disagrees
DOTween is the very first thing I install upon creating a new project. Animate your position, rotation and scale in a single line of code, with all the customization you could hope for... and that's only scratching the surface.
For the full documentation:…
For the full documentation:…
🚀 DOTween – хороший інструмент для анімацій
🔍 Що таке DOTween?
Це не візуальний інструмент (як Animator), а програмний спосіб керувати анімаціями.
Це щось на кшталт:
"Я хочу, щоб об'єкт з координати A перемістився в точку B за 1 секунду" і
🤖 Як працює анімація без DOTween?
Без tween-фреймворків тобі доведеться:
• Самому обчислювати зміни значень у
• Писати
• Створювати логіку початку/кінця/паузи
• Відслідковувати стан анімації
🎯 Наприклад:
А з DOTween:
💡 Просто. Зрозуміло. І читається як "людське" речення.
Чому не Animator для простих анімацій?
Вимагає багато налаштувань, важко контролювати і майже неможливо змінювати анімацію в реальному часі.
DOTween — це:
🔹 Плавні анімації у 1 стрічку
🔹 Працює з усім: Transform, UI, Material, Text, числові значення
🔹 Підтримка секвенцій; кілька анімацій підряд
🔹 Можна зупинити, перезапустити, зробити петлю
🔹 Відмінно працює на мобільних пристроях
🛠 Приклад: Анімація UI-кнопки
🤯 Без аніматора. Без купи станів. Без мороки.
▶️ [Детальніше тут] 👈
Якщо хочеш робити плавні ефекти в UI, плавні рухи об'єктів, зміну значень, не витрачаючи вечори на код то це для тебе 😉
💻 | GAMEDEV UA | #інструменти #DOTween #Tweening #анімації #код #оптимізація
🔍 Що таке DOTween?
DOTween — це безкоштовна бібліотека для Unity, яка дозволяє створювати плавні анімації будь-яких значень у коді.Це не візуальний інструмент (як Animator), а програмний спосіб керувати анімаціями.
Це щось на кшталт:
"Я хочу, щоб об'єкт з координати A перемістився в точку B за 1 секунду" і
DOTween робить це за тебе.🤖 Як працює анімація без DOTween?
Без tween-фреймворків тобі доведеться:
• Самому обчислювати зміни значень у
Update()• Писати
Lerp, Time.deltaTime, Mathf.MoveTowards• Створювати логіку початку/кінця/паузи
• Відслідковувати стан анімації
🎯 Наприклад:
// вручну в Update() змінюєш позицію
void Update() {
transform.position = Vector3.MoveTowards(transform.position, targetPos, speed * Time.deltaTime);
}
А з DOTween:
transform.DOMove(targetPos, 1f);
💡 Просто. Зрозуміло. І читається як "людське" речення.
Чому не Animator для простих анімацій?
Animator — крутий для складних анімацій персонажів і 3D-моделей. Але для простих ефектів, як рух об’єкта, зміна прозорості або тряска камери, він надто складний і незручний.Вимагає багато налаштувань, важко контролювати і майже неможливо змінювати анімацію в реальному часі.
DOTween — це:
🔹 Плавні анімації у 1 стрічку
🔹 Працює з усім: Transform, UI, Material, Text, числові значення
🔹 Підтримка секвенцій; кілька анімацій підряд
🔹 Можна зупинити, перезапустити, зробити петлю
🔹 Відмінно працює на мобільних пристроях
🛠 Приклад: Анімація UI-кнопки
public void OnPointerEnter() {
// При наведенні курсора на кнопку плавно збільшуємо її розмір до 120% за 0.2 секунди з ефектом "видавлювання" (OutBack)
button.transform.DOScale(1.2f, 0.2f).SetEase(Ease.OutBack);
}
public void OnPointerExit() {
// Коли курсор знімається з кнопки, плавно повертаємо її розмір до початкового (100%) за 0.2 секунди з ефектом "підтягування назад" (InBack)
button.transform.DOScale(1f, 0.2f).SetEase(Ease.InBack);
}🤯 Без аніматора. Без купи станів. Без мороки.
▶️ [Детальніше тут] 👈
Якщо хочеш робити плавні ефекти в UI, плавні рухи об'єктів, зміну значень, не витрачаючи вечори на код то це для тебе 😉
💻 | GAMEDEV UA | #інструменти #DOTween #Tweening #анімації #код #оптимізація
🔥9🥰1
🔥 Super Robot Wars Y — перший консольний SRW на Unity!
Продюсер Кота Тома розповів, що це рішення допоможе уникнути критичних багів і забезпечить стабільне майбутнє для франшизи. Звикати до нового рушія було складно, але це важливий крок вперед.
Ще у грі повернеться функція
Також чекаємо:
• 6 нових Spirit Commands ✨
• Секретних помічників, яких можна отримати за приховані умови
• Підтримку кастомних MP3 (PS5 і PC, але не Switch) 🎵
SRW Y готує новий рівень для фанатів серії, слідкуйте за оновленнями!
💻 | GAMEDEV UA | #новини #факти #SuperRobotWars #SRWY #BandaiNamco #Unity
Bandai Namco оголосили, що нова частина легендарної серії, SRW Y, вперше в історії вийде на рушії Unity! До цього команда понад 20 років використовувала унікальний рушій, створений ще для SRW Alpha.Продюсер Кота Тома розповів, що це рішення допоможе уникнути критичних багів і забезпечить стабільне майбутнє для франшизи. Звикати до нового рушія було складно, але це важливий крок вперед.
Ще у грі повернеться функція
Tactical Area Selection з SRW 30, але з адаптованим балансом — перші розділи будуть більш лінійними, а свобода вибору з’явиться трохи пізніше.Також чекаємо:
• 6 нових Spirit Commands ✨
• Секретних помічників, яких можна отримати за приховані умови
• Підтримку кастомних MP3 (PS5 і PC, але не Switch) 🎵
SRW Y готує новий рівень для фанатів серії, слідкуйте за оновленнями!
💻 | GAMEDEV UA | #новини #факти #SuperRobotWars #SRWY #BandaiNamco #Unity
❤5⚡1
🎯 Чому навіть крута гра може провалитися
Ми вже говорили про ранній фідбек - показувати гру потрібно ще на етапі сирих прототипів. Чому?
Чекати до релізу, це як відкрити магазин без вивіски й сподіватися, що хтось випадково зайде.
І це стосується не тільки ігор. У музиці, книгах, фільмах, стартапах працює те саме правило:
ніхто не купить, не завантажить і не полюбить те, про що не знають.
💡 У геймдеві проблема особливо гостра:
Конкуренція шалена. У Steam щодня виходить понад 50 ігор. Якщо ви не заявите про себе, вас просто «поховає» стрічка новинок.
Ігнорування ком’юніті. Форум, Discord, TikTok, Twitter — це місця, де народжуються перші фанати. Якщо вас там немає, ви втрачаєте найцінніший актив.
🛠 Що робити, щоб не залишитись непоміченим?
У нас вже був пост із лайфхаками від
1️⃣ Не ховайте свою гру. Не чекайте ідеальності. Діліться процесом, помилками та класними моментами, бо це робить проект живим і близьким.
2️⃣ Спілкуйтесь з аудиторією, а не просто говоріть. Ком’юніті не просто фанати, а ваші союзники, критики і амбасадори. Слухайте їх і відповідайте.
3️⃣ Різноманітність у соцмережах. Не публікуйте одне й те саме. Використовуйте меми, скріншоти, закулісні кадри, опитування.
4️⃣ Випробовуйте різні платформи і формати. TikTok може здаватися загадковим, але там теж ваша аудиторія. Discord теж не просто чат, а маленьке містечко фанатів.
5️⃣ Маркетинг — це марафон, а не спринт. Публікувати поодинокі пости раз на тиждень недостатньо. Важливо бути послідовним і відповідальним.
І не забуваємо найголовніше — створювати цікаві ігри, які захоплюють! 😁
💻 | GAMEDEV UA | #запитання #маркетинг #steam
Ми вже говорили про ранній фідбек - показувати гру потрібно ще на етапі сирих прототипів. Чому?
Чекати до релізу, це як відкрити магазин без вивіски й сподіватися, що хтось випадково зайде.
І це стосується не тільки ігор. У музиці, книгах, фільмах, стартапах працює те саме правило:
ніхто не купить, не завантажить і не полюбить те, про що не знають.
💡 У геймдеві проблема особливо гостра:
Конкуренція шалена. У Steam щодня виходить понад 50 ігор. Якщо ви не заявите про себе, вас просто «поховає» стрічка новинок.
Ігнорування ком’юніті. Форум, Discord, TikTok, Twitter — це місця, де народжуються перші фанати. Якщо вас там немає, ви втрачаєте найцінніший актив.
🛠 Що робити, щоб не залишитись непоміченим?
У нас вже був пост із лайфхаками від
Кріса Зуковського [Клац], а тепер поговоримо про головні та ефективні стратегії, що реально працюють у боротьбі за увагу гравців:1️⃣ Не ховайте свою гру. Не чекайте ідеальності. Діліться процесом, помилками та класними моментами, бо це робить проект живим і близьким.
2️⃣ Спілкуйтесь з аудиторією, а не просто говоріть. Ком’юніті не просто фанати, а ваші союзники, критики і амбасадори. Слухайте їх і відповідайте.
3️⃣ Різноманітність у соцмережах. Не публікуйте одне й те саме. Використовуйте меми, скріншоти, закулісні кадри, опитування.
4️⃣ Випробовуйте різні платформи і формати. TikTok може здаватися загадковим, але там теж ваша аудиторія. Discord теж не просто чат, а маленьке містечко фанатів.
5️⃣ Маркетинг — це марафон, а не спринт. Публікувати поодинокі пости раз на тиждень недостатньо. Важливо бути послідовним і відповідальним.
І не забуваємо найголовніше — створювати цікаві ігри, які захоплюють! 😁
💻 | GAMEDEV UA | #запитання #маркетинг #steam
🔥6❤2🥰1
🚀 Чому не варто постійно юзати gameObject.transform в Unity
В Unity є одна "тиха" річ, яка може непомітно красти продуктивність, особливо коли ваш проєкт росте. Це виклик
📌 Як працює transform насправді
У C# в Unity transform — це властивість (property), а не звичайна змінна.
Коли ви пишете:
Unity не просто бере готовий Transform. Вона під капотом викликає метод, який:
Викликається геттер
• Цей геттер — не чистий C# метод, а перехід у нативний C++ код движка.
• У C++ знаходиться вказівник на Transform, прив’язаний до цього об’єкта.
• Повертається посилання у C#.
Кожен такий перехід між керованим (C#) та нативним (C++) кодом називається managed–native boundary і має свою ціну. Це не страшно, якщо робити це раз на кадр, але якщо сотні чи тисячі — продуктивність починає падати.
🧠 Чому це проблема в Update()
Багато хто пише так:
Проблема:
• Кожен виклик gameObject.transform — це новий виклик геттера.
• У цьому прикладі ми вже двічі звернулися до transform за один кадр.
• У масштабах сцени з десятками або сотнями об’єктів це дуже помітно.
✅ Як оптимізувати
Кешуйте посилання на Transform один раз і використовуйте змінну.
Тепер посилання на
📌 Кешування transform можна пропустити, якщо звернення до нього відбувається лише один раз на кадр або рідше, а також у випадках, коли код виконується тільки під час ініціалізації чи в подіях на кшталт OnEnable, Start або Awake. Також кешування не є критичним для невеликих скриптів, які не працюють постійно.
💡 Висновок:
💻 | GAMEDEV UA | #уроки #CSharp #Оптимізація #РозробкаІгор #Unity
В Unity є одна "тиха" річ, яка може непомітно красти продуктивність, особливо коли ваш проєкт росте. Це виклик
gameObject.transform у кожному кадрі. Здається дрібницею, але на великих сценах і мобільних пристроях вона може відкусити шмат FPS.📌 Як працює transform насправді
У C# в Unity transform — це властивість (property), а не звичайна змінна.
Коли ви пишете:
gameObject.transform.position = new Vector3(0, 0, 0);
Unity не просто бере готовий Transform. Вона під капотом викликає метод, який:
Викликається геттер
get_transform з C# коду.• Цей геттер — не чистий C# метод, а перехід у нативний C++ код движка.
• У C++ знаходиться вказівник на Transform, прив’язаний до цього об’єкта.
• Повертається посилання у C#.
Кожен такий перехід між керованим (C#) та нативним (C++) кодом називається managed–native boundary і має свою ціну. Це не страшно, якщо робити це раз на кадр, але якщо сотні чи тисячі — продуктивність починає падати.
🧠 Чому це проблема в Update()
Багато хто пише так:
void Update()
{
gameObject.transform.position += Vector3.forward * Time.deltaTime;
gameObject.transform.Rotate(0, 90 * Time.deltaTime, 0);
}
Проблема:
• Кожен виклик gameObject.transform — це новий виклик геттера.
• У цьому прикладі ми вже двічі звернулися до transform за один кадр.
• У масштабах сцени з десятками або сотнями об’єктів це дуже помітно.
✅ Як оптимізувати
Кешуйте посилання на Transform один раз і використовуйте змінну.
private Transform _transform;
void Awake()
{
_transform = transform; // або gameObject.transform
}
void Update()
{
_transform.position += Vector3.forward * Time.deltaTime;
_transform.Rotate(0, 90 * Time.deltaTime, 0);
}
Тепер посилання на
Transform зберігається в змінній _transform, тож жодних повторних пошуків більше не відбувається, бо доступ іде напряму в пам’ять, без зайвих викликів. Це зменшує навантаження на процесор, знижує кількість зайвих викликів збирача сміття (GC) і в результаті дає більше стабільних кадрів за секунду.📌 Кешування transform можна пропустити, якщо звернення до нього відбувається лише один раз на кадр або рідше, а також у випадках, коли код виконується тільки під час ініціалізації чи в подіях на кшталт OnEnable, Start або Awake. Також кешування не є критичним для невеликих скриптів, які не працюють постійно.
💡 Висновок:
gameObject.transform — це не просто змінна. Це міст між C# і C++, який має свою вартість. Чим частіше ви його перетинаєте тим більший рахунок платите у мілісекундах. Тримайте те, до чого звертаєтесь часто, у своєму кеші і FPS подякує.💻 | GAMEDEV UA | #уроки #CSharp #Оптимізація #РозробкаІгор #Unity
1🔥20❤2🥱1
💡 Цікавий факт про Unity
Ще до того, як стати гігантом індустрії, Unity мав іншу назву —
Але першим їхнім релізом була зовсім не платформа, а гра
Так невдала гра стала початком однієї з найуспішніших історій у світі геймдеву.
💻 | GAMEDEV UA | #факти #Unity #UnityFacts
Ще до того, як стати гігантом індустрії, Unity мав іншу назву —
Over the Edge Entertainment. У 2004 році в Копенгагені троє друзів David Helgason, Nicholas Francis та Joachim Ante, вирішили створити інструмент, який дозволить робити ігри навіть маленьким командам.Але першим їхнім релізом була зовсім не платформа, а гра
GooBall (2005); яскрава 3D-головоломка, де ти керуєш липкою кулею, проходячи фізичні лабіринти. Комерційно вона провалилась, зате дала життя головному продукту — рушію Unity 1.0, що вийшов у червні 2005 року.Так невдала гра стала початком однієї з найуспішніших історій у світі геймдеву.
💻 | GAMEDEV UA | #факти #Unity #UnityFacts
🔥19🥰2
Фінальний мем тижня!
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
Підтримати канал тут: [Клац] 🙈
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
✈️ Gamedev | #меми
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
Підтримати канал тут: [Клац] 🙈
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣8😁4🥰3👍1💯1
📌 Підсумок публікацій за тиждень:
🏫 З навчальних матеріалів:
• 🧵 Практичне використання async/await в Unity
• ⚙️ Декілька порад для оптимізації
• 🧩 Як зробити систему розміщення на гекс-сітці
• 🖌 Хороший інструмент для анімацій - Dotween
• 🎲 Що таке gameObject.transform
📰 Новини:
• 🤖 Вихід GPT-5
• 💥 Перший консольний SRW на Unity!
🌐 Корисні інструменти та приколюхи
• 🎒 Програми для організації робочого процесу
• 🎨 Painterly Normals Shader — простий шейдер для мультяшних нормалей
💡 Тематика для роздумів та обговорень:
• ❓Чому круті ідеї можуть провалитися?
• 🚀 Чому так багато ігор, які не доходять до релізу?
• 💡Цікавий факт про створення Unity
📋 Усе зібрали в один пост. Читайте та зберігайте!😉
💻 | GAMEDEV UA | [Підтримати канал тут]
🏫 З навчальних матеріалів:
• 🧵 Практичне використання async/await в Unity
• ⚙️ Декілька порад для оптимізації
• 🧩 Як зробити систему розміщення на гекс-сітці
• 🖌 Хороший інструмент для анімацій - Dotween
• 🎲 Що таке gameObject.transform
📰 Новини:
• 🤖 Вихід GPT-5
• 💥 Перший консольний SRW на Unity!
🌐 Корисні інструменти та приколюхи
• 🎒 Програми для організації робочого процесу
• 🎨 Painterly Normals Shader — простий шейдер для мультяшних нормалей
💡 Тематика для роздумів та обговорень:
• ❓Чому круті ідеї можуть провалитися?
• 🚀 Чому так багато ігор, які не доходять до релізу?
• 💡Цікавий факт про створення Unity
📋 Усе зібрали в один пост. Читайте та зберігайте!😉
💻 | GAMEDEV UA | [Підтримати канал тут]
❤6👾2
🏁 Awake, OnEnable і Start в Unity — у чому різниця і коли що використовувати
Unity дає кілька методів для ініціалізації скриптів:
📌 Awake()
• Викликається один раз за життя об’єкта.
• Виконується ще до того, як об’єкт стане активним.
• Використовуйте для ініціалізації змінних та кешування посилань.
📌 OnEnable()
• Викликається кожного разу, коли об’єкт стає активним (
• Зручно для підписки на події або запуску анімацій при активації.
📌 Start()
• Викликається один раз, але тільки після всіх Awake() і коли об’єкт вже активний.
• Використовуйте для роботи з іншими об’єктами, які вже ініціалізовані.
Але ви можете подумати: «Та яка різниця між Awake() і Start()? Можна ж просто використовувати один із них».
Насправді різниця є!
А от
Тому в
🧠 Приклад:
Уявіть, що ви робите сцену з гравцем і камерою, яка повинна слідкувати за ним.
У
А ось у
📌 Отже, пам’ятайте:
• Використовуйте
•
• А
💻 | GAMEDEV UA | #уроки #unity #CSharp #ініціалізація
Unity дає кілька методів для ініціалізації скриптів:
Awake(), OnEnable() і Start(). Вони схожі за призначенням, але працюють по-різному.📌 Awake()
• Викликається один раз за життя об’єкта.
• Виконується ще до того, як об’єкт стане активним.
• Використовуйте для ініціалізації змінних та кешування посилань.
void Awake()
{
_rb = GetComponent<Rigidbody>();
}
📌 OnEnable()
• Викликається кожного разу, коли об’єкт стає активним (
SetActive(true) або при завантаженні сцени).• Зручно для підписки на події або запуску анімацій при активації.
void OnEnable()
{
EventManager.OnScoreChanged += UpdateUI;
}
📌 Start()
• Викликається один раз, але тільки після всіх Awake() і коли об’єкт вже активний.
• Використовуйте для роботи з іншими об’єктами, які вже ініціалізовані.
void Start()
{
targetPosition = player.transform.position;
}
Але ви можете подумати: «Та яка різниця між Awake() і Start()? Можна ж просто використовувати один із них».
Насправді різниця є!
Awake() виконується одразу, коли об’єкт з’являється у сцені, навіть якщо він вимкнений. Це момент, коли об’єкт ще ні з ким не «спілкується», бо він просто готує себе до роботи, створює змінні, кешує компоненти.А от
Start() запускається тільки тоді, коли об’єкт активний і всі інші об’єкти вже встигли виконати свій Awake().Тому в
Start() можна сміливо звертатися до інших елементів сцени, знаючи, що вони вже готові до взаємодії.🧠 Приклад:
Уявіть, що ви робите сцену з гравцем і камерою, яка повинна слідкувати за ним.
У
Awake() гравець ще тільки створюється і налаштовує свої дані. Якщо камера спробує підключитися до нього в Awake(), може статися так, що гравець ще не готовий.А ось у
Start() гравець уже точно ініціалізований, тому камера може безпечно підчепитися і почати рухатись за ним!📌 Отже, пам’ятайте:
• Використовуйте
Awake() для підготовки об’єкта, а саме кешування компонентів та налаштувань.•
OnEnable() для логіки, яка має запускатися щоразу при активації об’єкта.• А
Start() коли треба працювати з іншими вже готовими об’єктами в сцені.💻 | GAMEDEV UA | #уроки #unity #CSharp #ініціалізація
🔥10❤2👍1🥰1
🖍️ Harmony Palette для Aseprite 1.3.x
✅ Обираєш базовий відтінок і насиченість через колорпікер
✅ Одразу бачиш 4 варіанти з різною яскравістю (70%, 50%, 30%, 15%) у режимі реального часу
✅ Лівий клік — встановити колір як передній, правий — як фоновий без закриття вікна
Доступно через
Ідеально для швидкої роботи з палітрами у піксель-арті!
💻 | GAMEDEV UA | #інструменти #PixelArt #Aseprite
✅ Обираєш базовий відтінок і насиченість через колорпікер
✅ Одразу бачиш 4 варіанти з різною яскравістю (70%, 50%, 30%, 15%) у режимі реального часу
✅ Лівий клік — встановити колір як передній, правий — як фоновий без закриття вікна
Доступно через
File > Scripts > Harmony Palette в Aseprite 1.3.xІдеально для швидкої роботи з палітрами у піксель-арті!
💻 | GAMEDEV UA | #інструменти #PixelArt #Aseprite
👍7🔥4❤1
🤖 Ігри майбутнього: чи готові ми до світу, де все створює AI?
Заздалегідь прописані сюжети і шаблонні вороги вже не є межею. Сьогодні ігри можуть жити і змінюватися разом із тобою.
AI і машинне навчання стали справжніми партнерами розробників, які відкривають нові можливості та переосмислюють те, як ми граємо.
🔷 Історії що народжуються прямо на твоїх очах
🔷 Вороги які вчаться на твоїх помилках
У
🔷 NPC які поводяться як справжні люди
У
🔷 Автоматизація креативу
Штучний інтелект допомагає автоматизувати багато процесів у розробці ігор.
Він може створювати анімації персонажів без складної ручної роботи, генерувати музику та звукові ефекти, адаптовані під атмосферу гри.
💡 З розвитком AI з’являються неймовірні можливості, але разом із ними й виклики.
Чи зможемо ми зберегти унікальність ігрових світів, коли машини зможуть створювати величезну кількість контенту? Чи буде AI лише інструментом у руках творців, чи почне диктувати правила гри?
І найголовніше: де проходить межа, коли технології перестають служити креативності і починають її обмежувати?
⚡️ Пиши в коментарях, буде цікаво почути твою думку!
💻 | GAMEDEV UA | #запитання #ШтучнийІнтелект #AI #ШІ
Заздалегідь прописані сюжети і шаблонні вороги вже не є межею. Сьогодні ігри можуть жити і змінюватися разом із тобою.
AI і машинне навчання стали справжніми партнерами розробників, які відкривають нові можливості та переосмислюють те, як ми граємо.
🔷 Історії що народжуються прямо на твоїх очах
AI Dungeon — це не просто гра а живий розповідач який генерує унікальні квести і діалоги у реальному часі.🔷 Вороги які вчаться на твоїх помилках
У
Halo штучний інтелект не просто атакує він адаптується вороги аналізують твої тактики і змінюють стратегію щоб зробити бій дійсно викликом.🔷 NPC які поводяться як справжні люди
У
The Last of Us Part II вороги діють як команда ховаються обстрілюють з флангів і використовують звук щоб відстежувати тебе. Це новий рівень реалізму!🔷 Автоматизація креативу
Штучний інтелект допомагає автоматизувати багато процесів у розробці ігор.
Він може створювати анімації персонажів без складної ручної роботи, генерувати музику та звукові ефекти, адаптовані під атмосферу гри.
💡 З розвитком AI з’являються неймовірні можливості, але разом із ними й виклики.
Чи зможемо ми зберегти унікальність ігрових світів, коли машини зможуть створювати величезну кількість контенту? Чи буде AI лише інструментом у руках творців, чи почне диктувати правила гри?
І найголовніше: де проходить межа, коли технології перестають служити креативності і починають її обмежувати?
⚡️ Пиши в коментарях, буде цікаво почути твою думку!
💻 | GAMEDEV UA | #запитання #ШтучнийІнтелект #AI #ШІ
🔥7👍1
💥 Unity-розробники тепер можуть продавати без комісії 30%! [Інфа]
Xsolla випустила новий SDK для Unity, який дозволяє приймати платежі та продавати контент напряму гравцям, минаючи Google Play та App Store.
📌 Різниця з Unity IAP:
•
•
🔥 Що всередині:
• Кросплатформа: iOS, Android, ПК, веб.
• 1000+ способів оплати у 200+ країнах 🌍
• Підписки, бандли, персональні пропозиції.
• Автоматичні податки, захист від шахрайства, обробка повернень.
🎯 Ідеально для інді та студій, які хочуть заробляти більше та працювати на своїх умовах.
💻 | GAMEDEV UA | #новини #Unity #монетизація #Xsolla
Xsolla випустила новий SDK для Unity, який дозволяє приймати платежі та продавати контент напряму гравцям, минаючи Google Play та App Store.
📌 Різниця з Unity IAP:
•
Unity IAP → прив’язка до магазинів, комісія до 30%, обмеження правил платформ.•
Xsolla SDK → ваш власний магазин, прямі платежі, повний контроль над цінами, офферами та даними гравців.🔥 Що всередині:
• Кросплатформа: iOS, Android, ПК, веб.
• 1000+ способів оплати у 200+ країнах 🌍
• Підписки, бандли, персональні пропозиції.
• Автоматичні податки, захист від шахрайства, обробка повернень.
🎯 Ідеально для інді та студій, які хочуть заробляти більше та працювати на своїх умовах.
💻 | GAMEDEV UA | #новини #Unity #монетизація #Xsolla
🔥8👍6❤1
YouTube
How To Render 2 Million Objects At 120 FPS
Project files: https://github.com/Matthew-J-Spencer/pushing-unity
Let's discover the true potential of Unity by pushing its limits. In this video, we'll explore a variety of techniques, from straightforward tweaks like data-oriented design, to more advanced…
Let's discover the true potential of Unity by pushing its limits. In this video, we'll explore a variety of techniques, from straightforward tweaks like data-oriented design, to more advanced…
🔥 Як рендерити 2 мільйони об’єктів на 120 FPS в Unity?
✅ Один
Не використовуй тисячі MonoBehaviour з Update(). Один менеджер керує всім.
✅ Кешуй transform
✅ GPU Instancing
Один
✅ Jobs + Burst
Важкі обчислення переносяться в багатопотоковість. Burst робить код блискавичним.
✅ ECS (Entity Component System)
Дані компактні та оновлюються пачками. Мінімальне навантаження на CPU.
✅ DrawMeshInstancedIndirect + ComputeBuffers
Робота переноситься на GPU, CPU відпочиває, сцена літає.
✅ Кешуй Camera.main
▶️ [Детальніше тут] 👈
💡 Як це працює разом:
ECS зберігає дані щільно в пам’яті → Jobs + Burst обчислюють оновлення у багатопотоковості → ComputeBuffers передають дані на GPU → DrawMeshInstancedIndirect малює всі об’єкти одним викликом.
💻 | GAMEDEV UA | #оптимізація #рендер #render #GPU
✅ Один
Update() замість сотеньНе використовуй тисячі MonoBehaviour з Update(). Один менеджер керує всім.
✅ Кешуй transform
transform.position у кожному кадрі це дорого. Збережи посилання один раз. [Детальніше]✅ GPU Instancing
Один
Draw Call для сотень моделей і FPS росте.✅ Jobs + Burst
Важкі обчислення переносяться в багатопотоковість. Burst робить код блискавичним.
✅ ECS (Entity Component System)
Дані компактні та оновлюються пачками. Мінімальне навантаження на CPU.
✅ DrawMeshInstancedIndirect + ComputeBuffers
Робота переноситься на GPU, CPU відпочиває, сцена літає.
✅ Кешуй Camera.main
Camera.main кожного разу шукає об’єкт у сцені. Знайди один раз і збережи.▶️ [Детальніше тут] 👈
💡 Як це працює разом:
ECS зберігає дані щільно в пам’яті → Jobs + Burst обчислюють оновлення у багатопотоковості → ComputeBuffers передають дані на GPU → DrawMeshInstancedIndirect малює всі об’єкти одним викликом.
💻 | GAMEDEV UA | #оптимізація #рендер #render #GPU
🔥8❤🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Хочете рухатися по похилих поверхнях у 2D в Unity? 😍
Тепер це легко з
💻 | GAMEDEV UA | #туторіал #Ковзання #Рух #RigidBody2D
Тепер це легко з
Rigidbody2D.Slide() — обробляє кути, ковзання та визначення поверхонь!💻 | GAMEDEV UA | #туторіал #Ковзання #Рух #RigidBody2D
👍14❤🔥1
YouTube
Don’t Let These 4 Code Smells Ruin Your Unity Game
Shotgun Surgery is one of the most frustrating code smells in Unity — when a single change forces you to edit multiple noscripts scattered across your project. In this video, we’ll tackle it along with three other common pitfalls: Switch Statements, Temporary…
4 підлі помилки в коді, які тихо вбивають твій проєкт ⚠️
Не кожен «поганий запах» коду відчутний одразу. Але потім вони перетворюють будь-яку фічу на кошмар. Дивись:
✅ 1. Temporary Field
❓Чому це сміття? Поле path потрібне лише в
Як виправити:
Або передавай залежності через параметри.
✅ 2. Switch Statements
❓Чому це жах? Додав нового ворога то міняй код скрізь.
Використовуй поліморфізм:
✅ 3. Shotgun Surgery
Що це? Ти змінив логіку підрахунку очок і мусиш лізти в
Використовуй C# Events:
Або ScriptableObject як Event Channel, він дозволяє від’єднати залежності між системами.
✅ 4. Refused Bequest
Ти зробив BaseEnemy з купою методів, але в BossEnemy більшість не потрібна. Він просто «успадкував за компанію».
Рішення:
• Забери зайву логіку в сервіси і додай через композицію.
Це означає, що замість спадкування базового класу з усім підряд, роби окремий клас для потрібної поведінки й використовуй його всередині.
📺 [Детальніше] ▶️
Зберігай, якщо цікаво 😉
💻 | GAMEDEV UA | #уроки #unity #CSharp
Не кожен «поганий запах» коду відчутний одразу. Але потім вони перетворюють будь-яку фічу на кошмар. Дивись:
✅ 1. Temporary Field
public class Enemy : MonoBehaviour
{
private Path path; // Використовується лише в одному методі!
void Start() {
path = FindObjectOfType<Path>();
}
void UpdatePath() {
path.Recalculate();
}
}
❓Чому це сміття? Поле path потрібне лише в
UpdatePath(), але займає пам'ять завжди.Як виправити:
void UpdatePath() {
var path = FindObjectOfType<Path>();
path.Recalculate();
}Або передавай залежності через параметри.
✅ 2. Switch Statements
switch (enemyType)
{
case EnemyType.Melee:
AttackMelee();
break;
case EnemyType.Range:
AttackRange();
break;
}
❓Чому це жах? Додав нового ворога то міняй код скрізь.
Використовуй поліморфізм:
public abstract class Enemy : MonoBehaviour
{
public abstract void Attack();
}
public class MeleeEnemy : Enemy
{
public override void Attack() { /* melee attack */ }
}
public class RangeEnemy : Enemy
{
public override void Attack() { /* range attack */ }
}
✅ 3. Shotgun Surgery
Що це? Ти змінив логіку підрахунку очок і мусиш лізти в
Enemy, UIManager, GameManager, SaveSystem...Використовуй C# Events:
public static event Action<int> OnScoreChanged;
Або ScriptableObject як Event Channel, він дозволяє від’єднати залежності між системами.
✅ 4. Refused Bequest
Ти зробив BaseEnemy з купою методів, але в BossEnemy більшість не потрібна. Він просто «успадкував за компанію».
Рішення:
• Забери зайву логіку в сервіси і додай через композицію.
Це означає, що замість спадкування базового класу з усім підряд, роби окремий клас для потрібної поведінки й використовуй його всередині.
📺 [Детальніше] ▶️
Зберігай, якщо цікаво 😉
💻 | GAMEDEV UA | #уроки #unity #CSharp
🔥8🥰1
🕹 Gamepad UI / Controller Prompts Pack
📦 Завантажити 👈
Там ще купа елементів у такому ж стилі. Як вам? 🔥
💻 | GAMEDEV UA | #корисне #UI #текстури
📦 Завантажити 👈
Там ще купа елементів у такому ж стилі. Як вам? 🔥
💻 | GAMEDEV UA | #корисне #UI #текстури
🔥9
MIDiA Research
The case for more digestable games: Over a third of console and PC gamers play LESS than 5 hours a week
The attention economy is oversaturated. Games are not just competingwith other games but with TikTok, YouTube, Netflix, and well ... life. But the games industry – especially premium games on console and PC – has a unique twofold challenge: Supply : New AAA…
📊 Чи стають ігри коротшими у 2024–2025?
Геймери дедалі частіше кажуть: “Нема часу на 100-годинні марафони”. А розробники справді скорочують проєкти. Чому так відбувається і що показують дані?
🔍 Факти та тренди [Інфа]
✔️ Менше часу на ігри:
✔️ Конкуренція за увагу: у 2024 лише
✔️ Довгі ігри менше проходять: у багатьох AAA до фіналу доходять <50% гравців, у деяких лише
🎮 Як реагує індустрія?
✅ Ubisoft зменшує масштаби: Assassin’s Creed Mirage 20–23 год, проти 80+ у Valhalla.
✅ Hellblade II: 6–8 год сюжету за $50 викликало дискусії, але без «гри заради розтягування».
✅ Stellar Blade: 20–25 год золота середина.
✅ Avowed: два режими 15 год швидкого проходження або 40+ для фанатів глибини.
📈 Чому саме так?
Сьогодні гравці мають мало вільного часу: соцмережі, серіали й реальне життя постійно конкурують за їхню увагу. AAA-ігри залишаються дорогими у виробництві; інвестиції в роздутий контент рідко окуповуються, якщо користувачі навіть не доходять до фінальних титрів.
Скорочення тривалості проєктів дозволяє зменшити виробничі витрати, зробити продукт більш доступним і підвищити шанси на його проходження.
💬 Що каже спільнота?
«Хочу гру на 7–10 годин, щоб пройти за вихідні» або «100 годин у світі Elden Ring? Дайте дві!»
А чого хочете особисто ви? До якого формату ви тяжієте? Діліться у коментарях 👇
💻 | GAMEDEV UA | #запитання #ShortGames #ГеймТренди #GamingTrends
Геймери дедалі частіше кажуть: “Нема часу на 100-годинні марафони”. А розробники справді скорочують проєкти. Чому так відбувається і що показують дані?
🔍 Факти та тренди [Інфа]
✔️ Менше часу на ігри:
66% геймерів проводять <10 годин на тиждень, а 36–40% усього 5 год.✔️ Конкуренція за увагу: у 2024 лише
23% ігрового часу йшло на нові релізи. Решта на старі хіти.✔️ Довгі ігри менше проходять: у багатьох AAA до фіналу доходять <50% гравців, у деяких лише
25%.🎮 Як реагує індустрія?
✅ Ubisoft зменшує масштаби: Assassin’s Creed Mirage 20–23 год, проти 80+ у Valhalla.
✅ Hellblade II: 6–8 год сюжету за $50 викликало дискусії, але без «гри заради розтягування».
✅ Stellar Blade: 20–25 год золота середина.
✅ Avowed: два режими 15 год швидкого проходження або 40+ для фанатів глибини.
📈 Чому саме так?
Сьогодні гравці мають мало вільного часу: соцмережі, серіали й реальне життя постійно конкурують за їхню увагу. AAA-ігри залишаються дорогими у виробництві; інвестиції в роздутий контент рідко окуповуються, якщо користувачі навіть не доходять до фінальних титрів.
Скорочення тривалості проєктів дозволяє зменшити виробничі витрати, зробити продукт більш доступним і підвищити шанси на його проходження.
💬 Що каже спільнота?
«Хочу гру на 7–10 годин, щоб пройти за вихідні» або «100 годин у світі Elden Ring? Дайте дві!»
А чого хочете особисто ви? До якого формату ви тяжієте? Діліться у коментарях 👇
💻 | GAMEDEV UA | #запитання #ShortGames #ГеймТренди #GamingTrends
🔥10🥰1
🚀 Unity 6.2 — новий стабільний реліз!
🧠 Unity AI Beta
Вбудований прямо в редактор. Допомагає прискорити робочий процес, автоматизувати задачі та генерувати контент.
Unity Points безкоштовні та без обмежень під час бета.
📱 Android XR Updates
Пакет
• Підтримка hand mesh
• Динамічна частота оновлення
• Visibility mesh occlusion (краща продуктивність URP на мобільному XR)
🖼 Graph Toolkit
Створення кастомних графових інструментів у редакторі. [Детальніше]
🧱 Mesh LOD
Автоматичне генерування
🌐 World Space UI для UI Toolkit
Рендер UI прямо у 3D-просторі. [Детальніше]
🔐 Developer Data Framework
Більше прозорості та контролю над даними. [Детальніше]
🩺 Нові Diagnostics
Покращені звіти про креші та
Unity 6.2 — Supported release, тож отримує повну LTS-підтримку. Можна апгрейдитися без ризику для стабільності.
💻 | GAMEDEV UA | #новини #unity #unityrelease
Unity 6.2 тепер підтримується для продакшну і готовий до використання в ваших проєктах.🧠 Unity AI Beta
Вбудований прямо в редактор. Допомагає прискорити робочий процес, автоматизувати задачі та генерувати контент.
Unity Points безкоштовні та без обмежень під час бета.
📱 Android XR Updates
Пакет
Android XR тепер верифікований та готовий для продакшну.• Підтримка hand mesh
• Динамічна частота оновлення
• Visibility mesh occlusion (краща продуктивність URP на мобільному XR)
🖼 Graph Toolkit
Створення кастомних графових інструментів у редакторі. [Детальніше]
🧱 Mesh LOD
Автоматичне генерування
LOD при імпорті моделей. [Детальніше]🌐 World Space UI для UI Toolkit
Рендер UI прямо у 3D-просторі. [Детальніше]
🔐 Developer Data Framework
Більше прозорості та контролю над даними. [Детальніше]
🩺 Нові Diagnostics
Покращені звіти про креші та
ANR, реальний час продуктивності. [Детальніше]Unity 6.2 — Supported release, тож отримує повну LTS-підтримку. Можна апгрейдитися без ризику для стабільності.
💻 | GAMEDEV UA | #новини #unity #unityrelease
⚡8👍2❤1🥰1
Фінальний мем тижня!
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
(Бот тимчасово не працює. Переставляємо на інший сервер)
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
✈️ Gamedev | #меми
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
(Бот тимчасово не працює. Переставляємо на інший сервер)
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15🥰1
📌 Підсумок публікацій за тиждень:
Почнемо з основного - @IndieSafeBot припинив свою роботу на декілька днів.
🔔З навчальних матеріалів:
• ⏰Різниця між Awake, OnEnable i Start
• 🤑 Як рендерити велику кі-сть обєктів
• 🆘 4 помилки в коді, які гублять твій проєкт
🗞 Новини:
• 💵 Unity-розробники тепер можуть продавати без комісії 30%!
• 🚀 Unity 6.2 — новий стабільний реліз!
🗣 Цікаві обговорення:
• 📉 Чи стають ігри коротшими у 2024–2025?
• 🤖 Чи готові ми до світу, де все створює ШІ?
⚒️Ну і просто корисне:
• 🖌 Harmony Palette (Aseprite)
• 🛹 Рух на похилих поверхностях
• 📌 Gamepad UI / Controller Prompts Pack
📋 Для вашої зручності ми це все зібрали в один пост, повертайтеся та надолужуйтесь, якщо щось пропустили 😉
💻 | GAMEDEV UA | [Підтримка каналу тут]
Почнемо з основного - @IndieSafeBot припинив свою роботу на декілька днів.
🔔З навчальних матеріалів:
• ⏰Різниця між Awake, OnEnable i Start
• 🤑 Як рендерити велику кі-сть обєктів
• 🆘 4 помилки в коді, які гублять твій проєкт
🗞 Новини:
• 💵 Unity-розробники тепер можуть продавати без комісії 30%!
• 🚀 Unity 6.2 — новий стабільний реліз!
🗣 Цікаві обговорення:
• 📉 Чи стають ігри коротшими у 2024–2025?
• 🤖 Чи готові ми до світу, де все створює ШІ?
⚒️Ну і просто корисне:
• 🖌 Harmony Palette (Aseprite)
• 🛹 Рух на похилих поверхностях
• 📌 Gamepad UI / Controller Prompts Pack
📋 Для вашої зручності ми це все зібрали в один пост, повертайтеся та надолужуйтесь, якщо щось пропустили 😉
💻 | GAMEDEV UA | [Підтримка каналу тут]
🔥12👍2