🧠 Як відеоігри впливають на психічне здоров’я (стрес, тривожність, депресія)?
Науковці давно досліджують, як геймінг пов’язаний зі стресом, тривожністю та депресією. Висновки не однозначні: є і користь, і ризики.
🔹 Стрес [Інфа]
Казуальні ігри на кшталт Tetris чи Candy Crush реально знижують рівень стресу. Дослідники навіть порівнюють їхній ефект із майндфулнес-практиками. Особливо добре працює командна гра: спільна взаємодія допомагає зняти напругу сильніше, ніж змагання.
А от шутери та динамічні екшн-ігри діють протилежно - піднімають пульс, тиск і навіть рівень кортизолу, гормону стресу.
🔹 Тривожність [Джерело]
Коротка геймерська сесія (15–20 хв) може зменшити хвилювання, відволікти від нав’язливих думок.
Деякі ігри показали терапевтичний ефект у студентів під час стресових ситуацій. Але є і темна сторона. Проблемний геймінг, коли гра використовується як “втеча від тривоги”, часто пов’язаний з безсонням і загостреними симптомами тривожності.
🔹 Депресія
Є дослідження, що відеоігри можуть реально зменшувати симптоми депресії. Наприклад, у підлітків гра в Mario Kart піднімала настрій, а навіть півгодини у прості казуальні ігри знижували відчуття смутку та стрес. Огляди підкреслюють: комерційні ігри мають великий потенціал як доступний ресурс для полегшення депресивних станів.
Але є й інша сторона. Проблемний геймінг часто пов’язаний із погіршенням настрою. У великому дослідженні 2023 року
❓А що ви думаєте про це? Пишіть у коментарях👇
💻 | GAMEDEV UA | #запитання #тривожність #відеоігри #дослідження #психологія
Науковці давно досліджують, як геймінг пов’язаний зі стресом, тривожністю та депресією. Висновки не однозначні: є і користь, і ризики.
🔹 Стрес [Інфа]
Казуальні ігри на кшталт Tetris чи Candy Crush реально знижують рівень стресу. Дослідники навіть порівнюють їхній ефект із майндфулнес-практиками. Особливо добре працює командна гра: спільна взаємодія допомагає зняти напругу сильніше, ніж змагання.
А от шутери та динамічні екшн-ігри діють протилежно - піднімають пульс, тиск і навіть рівень кортизолу, гормону стресу.
🔹 Тривожність [Джерело]
Коротка геймерська сесія (15–20 хв) може зменшити хвилювання, відволікти від нав’язливих думок.
Деякі ігри показали терапевтичний ефект у студентів під час стресових ситуацій. Але є і темна сторона. Проблемний геймінг, коли гра використовується як “втеча від тривоги”, часто пов’язаний з безсонням і загостреними симптомами тривожності.
🔹 Депресія
Є дослідження, що відеоігри можуть реально зменшувати симптоми депресії. Наприклад, у підлітків гра в Mario Kart піднімала настрій, а навіть півгодини у прості казуальні ігри знижували відчуття смутку та стрес. Огляди підкреслюють: комерційні ігри мають великий потенціал як доступний ресурс для полегшення депресивних станів.
Але є й інша сторона. Проблемний геймінг часто пов’язаний із погіршенням настрою. У великому дослідженні 2023 року
14% підлітків-гравців мали серйозні депресивні симптоми, і це напряму корелювало з рівнем ігрової залежності. Harvard Health також наголошує: надмірна гра асоціюється з більшою тривожністю та депресією. Тому гра може бути підтримкою, але не заміною терапії.❓А що ви думаєте про це? Пишіть у коментарях👇
💻 | GAMEDEV UA | #запитання #тривожність #відеоігри #дослідження #психологія
🔥6🗿2🥰1🤔1
🚀 Що таке ECS і чим тут Entitas?
Якщо ти працюєш з Unity, то, швидше за все, звик до підходу MonoBehaviour: у кожного об’єкта свій скрипт, свій
І тут на сцену виходить ECS/ Entitas
❓Що таке ECS?
• Entity (Сутність) – це просто ідентифікатор або контейнер.
• Component (Компонент) – набір даних (позиція, швидкість, здоров’я).
• System (Система) – логіка, яка працює з усіма сутностями, що мають потрібні компоненти.
👉 У результаті замість тисячі
❓А що ж тоді таке Entitas?
Це готовий open-source фреймворк, який реалізує підхід ECS у Unity. Тобто він бере всі ці ідеї (сутності, компоненти, системи) і робить їх максимально зручними для розробника на C#.
Entitas:
• автоматично генерує методи для роботи з компонентами, щоб не писати тонни шаблонного коду;
• оптимізує роботу з пам’яттю і допомагає уникати зайвих викликів GC;
• має вбудований візуальний дебаг у Unity, де можна побачити всі сутності, їх компоненти й системи в реальному часі.
🔥 Чому це важливо?
Використовуючи ECS, проєкт стає набагато гнучкішим: навіть якщо в грі з’являються тисячі об’єктів, він легко масштабується, а код організований так, що логіку можна швидко змінювати чи доповнювати новими можливостями.
Крім того, ти отримуєш кращий контроль над продуктивністю, що особливо важливо для мобільних ігор.
💻 | GAMEDEV UA | #інструменти #оптимізація #уроки #ECS #Entitas
Якщо ти працюєш з Unity, то, швидше за все, звик до підходу MonoBehaviour: у кожного об’єкта свій скрипт, свій
Update(), і Unity викликає їх сотні чи навіть тисячі разів на кадр. Це зручно, але коли об’єктів стає дуже багато продуктивність падає.І тут на сцену виходить ECS/ Entitas
❓Що таке ECS?
• Entity (Сутність) – це просто ідентифікатор або контейнер.
• Component (Компонент) – набір даних (позиція, швидкість, здоров’я).
• System (Система) – логіка, яка працює з усіма сутностями, що мають потрібні компоненти.
👉 У результаті замість тисячі
Update() у кожного об’єкта ми маємо одну систему, яка обробляє масив сутностей за раз. Це дає чистіший код і кращу продуктивність.❓А що ж тоді таке Entitas?
Це готовий open-source фреймворк, який реалізує підхід ECS у Unity. Тобто він бере всі ці ідеї (сутності, компоненти, системи) і робить їх максимально зручними для розробника на C#.
Entitas:
• автоматично генерує методи для роботи з компонентами, щоб не писати тонни шаблонного коду;
• оптимізує роботу з пам’яттю і допомагає уникати зайвих викликів GC;
• має вбудований візуальний дебаг у Unity, де можна побачити всі сутності, їх компоненти й системи в реальному часі.
🔥 Чому це важливо?
Використовуючи ECS, проєкт стає набагато гнучкішим: навіть якщо в грі з’являються тисячі об’єктів, він легко масштабується, а код організований так, що логіку можна швидко змінювати чи доповнювати новими можливостями.
Крім того, ти отримуєш кращий контроль над продуктивністю, що особливо важливо для мобільних ігор.
💻 | GAMEDEV UA | #інструменти #оптимізація #уроки #ECS #Entitas
🔥9❤🔥1👎1
This media is not supported in your browser
VIEW IN TELEGRAM
💥 Що таке Particle System і для чого вона?
Particle System — це система частинок, яка дозволяє створювати візуальні ефекти: вогонь, дим, вибухи, магію, дощ, іскри, пил, блиск: будь-які динамічні візуальні фішки, які роблять гру живою та атмосферною 🔥
🛠 Як додати Particle System в Unity?
1. У Hierarchy ➝ Right Click ➝ Effects ➝ Particle System
2. З’явиться базовий ефект (білі частинки).
3. У Inspector можна змінювати: колір, форму емісії, швидкість, гравітацію, розмір і багато іншого.
👉 А ще ефект можна керувати через код для повної динаміки!
📚 Хочеш навчитись робити круті ефекти сам? Лови відео:
🎬 Particle System в Unity 2D
🎬 Particle System в Unity 3D
🔧 Один ефект і твоя сцена виглядає в рази крутіше!
💻 | GAMEDEV UA | #уроки #туторіал #particlesystem #particle
Particle System — це система частинок, яка дозволяє створювати візуальні ефекти: вогонь, дим, вибухи, магію, дощ, іскри, пил, блиск: будь-які динамічні візуальні фішки, які роблять гру живою та атмосферною 🔥
🛠 Як додати Particle System в Unity?
1. У Hierarchy ➝ Right Click ➝ Effects ➝ Particle System
2. З’явиться базовий ефект (білі частинки).
3. У Inspector можна змінювати: колір, форму емісії, швидкість, гравітацію, розмір і багато іншого.
👉 А ще ефект можна керувати через код для повної динаміки!
📚 Хочеш навчитись робити круті ефекти сам? Лови відео:
🎬 Particle System в Unity 2D
🎬 Particle System в Unity 3D
🔧 Один ефект і твоя сцена виглядає в рази крутіше!
💻 | GAMEDEV UA | #уроки #туторіал #particlesystem #particle
⚡5👍1
📱 Ефективність рекламних форматів у мобільних іграх: що працює найкраще
Сучасний мобільний геймдев неможливий без продуманої рекламної стратегії. Дослідження останніх років показують суттєві відмінності у результатах різних форматів оголошень:
🔹 Відео з геймплеєм [Інфа]
• CTR (Click-Through Rate) приблизно у
• Але конверсія до встановлення гри нижча, ніж у інтерактивних форматів
• CPI (Cost Per Install) часто більший, ніж у rewarded або playable-реклами
➡️ Добре працює для залучення широкого трафіку, але ROI (Return on Investment) зазвичай нижчий.
🔹 Інтерактивні (playable) оголошення [Інфа]
• Конверсія до інсталяцій на
• Утримують увагу довше й підвищують D7-ретеншн (показник повернення користувачів на 7-й день після встановлення) на
• Найнижчий CPI та найкращий ROAS (Повернення інвестицій у рекламу)
➡️ Оптимальний вибір для залучення якісних користувачів і підвищення окупності.
🔹 Статичні банери [Інфа]
• CTR у кілька разів нижче, ніж у відео та playable.
• Конверсія слабка, CPI найвищий, ROAS — мінімальний.
➡️ Підходять лише як допоміжний канал для дешевої впізнаваності бренду.
❓ А ви який формат реклами для своєї гри використовуєте ви, або плануєте використовувати: відео, playable чи банери?
💻 | GAMEDEV UA | #запитання #реклама #статистика
Сучасний мобільний геймдев неможливий без продуманої рекламної стратегії. Дослідження останніх років показують суттєві відмінності у результатах різних форматів оголошень:
🔹 Відео з геймплеєм [Інфа]
• CTR (Click-Through Rate) приблизно у
7,5 разів вищий, ніж у статичних банерів• Але конверсія до встановлення гри нижча, ніж у інтерактивних форматів
• CPI (Cost Per Install) часто більший, ніж у rewarded або playable-реклами
➡️ Добре працює для залучення широкого трафіку, але ROI (Return on Investment) зазвичай нижчий.
🔹 Інтерактивні (playable) оголошення [Інфа]
• Конверсія до інсталяцій на
+300–700% вища, ніж у відео та банерів• Утримують увагу довше й підвищують D7-ретеншн (показник повернення користувачів на 7-й день після встановлення) на
30–40%• Найнижчий CPI та найкращий ROAS (Повернення інвестицій у рекламу)
➡️ Оптимальний вибір для залучення якісних користувачів і підвищення окупності.
🔹 Статичні банери [Інфа]
• CTR у кілька разів нижче, ніж у відео та playable.
• Конверсія слабка, CPI найвищий, ROAS — мінімальний.
➡️ Підходять лише як допоміжний канал для дешевої впізнаваності бренду.
❓ А ви який формат реклами для своєї гри використовуєте ви, або плануєте використовувати: відео, playable чи банери?
💻 | GAMEDEV UA | #запитання #реклама #статистика
🔥5❤2⚡1
🌙 Midnight Mode Vol.1 - Night themed music
🎧 10 безкоштовних треків у стилі synthwave / ретро саундтрек
▶️ [Завантажити] 👈
📀 Тривалість:
💻 | GAMEDEV UA | #корисне #аудіо #MidnightMode #Synthwave #Chiptune #RetroSoundtrack #FreeMusic
🎧 10 безкоштовних треків у стилі synthwave / ретро саундтрек
▶️ [Завантажити] 👈
📀 Тривалість:
52:29 (є версії для прослуховування та для зациклення)💻 | GAMEDEV UA | #корисне #аудіо #MidnightMode #Synthwave #Chiptune #RetroSoundtrack #FreeMusic
❤5👍1🔥1
Думаю, кожен із вас стикався під час розробки або навіть у звичайних іграх із восьминапрямним рухом персонажа.
А чи знали ви, що швидкість по діагоналі має бути іншою?
Якщо просто додати однакові значення швидкості по осях
📈На картинці видно:
Вектори руху вправо і вгору —
Діагональний вектор [1,1] має довжину √2, що дорівнює ≈ 1.4
❓Як це виправити?
Щоб швидкість була однаковою, діагональ потрібно нормалізувати:
Тобто рух по діагоналі має мати
Чому так? 🤔
Нормалізація вектора зменшує обидві компоненти пропорційно, щоб сумарна швидкість залишалася такою ж, як при русі строго вбік або вперед.
Інакше кажучи: ми нормалізуємо вектор, діленням його на
💻 | GAMEDEV UA | #математика #вектор #векторнийрух
А чи знали ви, що швидкість по діагоналі має бути іншою?
Якщо просто додати однакові значення швидкості по осях
X ➡️ та Y ⬆️, то при русі під кутом герой рухатиметься приблизно на 41 % швидше, ніж уперед чи вбік.📈На картинці видно:
Вектори руху вправо і вгору —
[1,0] та [0,1].Діагональний вектор [1,1] має довжину √2, що дорівнює ≈ 1.4
❓Як це виправити?
Щоб швидкість була однаковою, діагональ потрібно нормалізувати:
speed = [1, 1] / √2 ≈ [0.71,0.71]Тобто рух по діагоналі має мати
≈70 % від повної швидкості по одній осі, бо довжина вектора [1,1] ≈ 1.4. Чому так? 🤔
Нормалізація вектора зменшує обидві компоненти пропорційно, щоб сумарна швидкість залишалася такою ж, як при русі строго вбік або вперед.
Інакше кажучи: ми нормалізуємо вектор, діленням його на
√2, щоб довжина стала "1" і швидкість залишалась однаковою в будь-якому напрямку.💻 | GAMEDEV UA | #математика #вектор #векторнийрух
❤11⚡3👍1
💬 Хто з PC-геймерів найтоксичніший у Steam?
Steam додав фільтр за мовами в оглядах, і тепер можна подивитись, які спільноти залишають найсолоніші коментарі.
🔍 Методика
Аналітики взяли топ-50 найпопулярніших ігор на Steam (Counter-Strike 2, Dota 2, PUBG, Elden Ring: Nightreign, Hollow Knight: Silksong, Monster Hunter Wilds та ін.) і зібрали дані з оглядів, розділивши їх за мовами.
🏆 Найпозитивніші гравці
• 🇷🇴 Румунська спільнота —
• 🇵🇹 Португальська (Португалія) —
• 🇩🇰 Данська —
• 🇧🇷 Бразильська португальська —
• 🇻🇳 Вʼєтнамська —
💢 Найтоксичніші за відсотком негативних оглядів
• 🇯🇵 Японська — лише
• 🇹🇼 Традиційна китайська —
• 🇨🇳 Спрощена китайська —
• 🇰🇷 Корейська —
• 🇺🇦 Українська —
📌 Англомовні гравці, десь посередині (≈83-84% позитивних).
💻 | GAMEDEV UA | #новини #steam #токсичність #SteamReviews
Steam додав фільтр за мовами в оглядах, і тепер можна подивитись, які спільноти залишають найсолоніші коментарі.
🔍 Методика
Аналітики взяли топ-50 найпопулярніших ігор на Steam (Counter-Strike 2, Dota 2, PUBG, Elden Ring: Nightreign, Hollow Knight: Silksong, Monster Hunter Wilds та ін.) і зібрали дані з оглядів, розділивши їх за мовами.
🏆 Найпозитивніші гравці
• 🇷🇴 Румунська спільнота —
93,4% позитивних відгуків• 🇵🇹 Португальська (Португалія) —
93%• 🇩🇰 Данська —
91,3%• 🇧🇷 Бразильська португальська —
90,8%• 🇻🇳 Вʼєтнамська —
90,1%💢 Найтоксичніші за відсотком негативних оглядів
• 🇯🇵 Японська — лише
55,5% позитивних• 🇹🇼 Традиційна китайська —
57,4%• 🇨🇳 Спрощена китайська —
66,1%• 🇰🇷 Корейська —
70,9%• 🇺🇦 Українська —
79,1%📌 Англомовні гравці, десь посередині (≈83-84% позитивних).
Важливо: Steam класифікує огляди за мовою, а не за громадянством.
💻 | GAMEDEV UA | #новини #steam #токсичність #SteamReviews
❤🔥13❤1
🍕 Pac-Man і… піца?
А чи знали ви, що легендарний герой аркадних ігор народився завдяки шматочку піци?
У 1979 році дизайнер Тору Іватані сидів у піцерії, глянув на круглу піцу, з якої з’їли шматок і так з’явилась ідея жовтого ненажери, що «з’їдає» крапочки на екрані.
Pac-Man став однією з найвідоміших ігор усіх часів і навіть символом попкультури 🕹
💻 | GAMEDEV UA | #факти #game #gamedev #pacman
А чи знали ви, що легендарний герой аркадних ігор народився завдяки шматочку піци?
У 1979 році дизайнер Тору Іватані сидів у піцерії, глянув на круглу піцу, з якої з’їли шматок і так з’явилась ідея жовтого ненажери, що «з’їдає» крапочки на екрані.
Pac-Man став однією з найвідоміших ігор усіх часів і навіть символом попкультури 🕹
💻 | GAMEDEV UA | #факти #game #gamedev #pacman
❤15
Фінальний мем тижня!
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
✈️ Gamedev | #меми
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁10🥰5👍1
📌 Підсумок публікацій за тиждень:
🎓 Навчальні матеріали:
• 🚀 Що таке ECS і чим тут Entitas?
• 💥 Що таке Particle System і для чого вона?
• 📐 Яка має бути швидкість по діагоналі з восьминапрямним рухом
🔨Корисне:
• 🚀 Нова систему Tile Set у Unity 6.1
• 🌙 Midnight Mode Vol.1 - Night themed music
📰 Новини та цікаві теми:
• 📈 Новий підхід до кастомізації рендерерів без втрати продуктивності!
• 🧠 Як відеоігри впливають на психічне здоров’я (стрес, тривожність, депресія)?
• 📱 Ефективність рекламних форматів у мобільних іграх: що працює найкраще
• 💬 Хто з PC-геймерів найтоксичніший у Steam?
• 🍕 Pac-Man і… піца?
Усе яке завжди. Підсумок в одному пості 😉
💻 | GAMEDEV UA | [Підтримати канал тут]
🎓 Навчальні матеріали:
• 🚀 Що таке ECS і чим тут Entitas?
• 💥 Що таке Particle System і для чого вона?
• 📐 Яка має бути швидкість по діагоналі з восьминапрямним рухом
🔨Корисне:
• 🚀 Нова систему Tile Set у Unity 6.1
• 🌙 Midnight Mode Vol.1 - Night themed music
📰 Новини та цікаві теми:
• 📈 Новий підхід до кастомізації рендерерів без втрати продуктивності!
• 🧠 Як відеоігри впливають на психічне здоров’я (стрес, тривожність, депресія)?
• 📱 Ефективність рекламних форматів у мобільних іграх: що працює найкраще
• 💬 Хто з PC-геймерів найтоксичніший у Steam?
• 🍕 Pac-Man і… піца?
Усе яке завжди. Підсумок в одному пості 😉
💻 | GAMEDEV UA | [Підтримати канал тут]
👍4🤝2
📦 Pribambase / Пряме малювання в Blender через Aseprite
Якщо ти працюєш з low-poly 3D або 2.5D спрайтами, і любиш Aseprite разом із Blender , то цей плагін дозволяє малювати текстури прямо в Aseprite і бачити результат одразу в Blender.
⚡️ Що можна робити з Pribambase:
• Малюєш у Aseprite і бачиш зміни в Blender одразу, без збереження чи експорту.
• Показує UV-мапу прямо в Aseprite, оновлюється при зміні моделі.
• Керує спрайт-анімаціями: кадри, теги, цикли, NLA.
• Швидкі шорткати для сіток, піксельних матеріалів і 2D спрайтів.
• Підтримка 2.5D спрайтшитів та анімацій для Armory Engine.
🛠 Як встановити:
1. Blender: Edit → Preferences → Add-ons → Install → обираєш pribambase-blender-{…} → активуєш.
2. Aseprite: перетягуєш розширення у вікно або відкриваєш файл.
🔹 [GitHub] - Клац
🔹 [illusionofmana] - Клац
💡 Фішка: Pribambase дає швидкий і зручний 2.5D піксельний робочий процес, економить купу часу та рутинної роботи.
💻 | GAMEDEV UA | #інструменти #aseprite #blender #піксельарт
Якщо ти працюєш з low-poly 3D або 2.5D спрайтами, і любиш Aseprite разом із Blender , то цей плагін дозволяє малювати текстури прямо в Aseprite і бачити результат одразу в Blender.
⚡️ Що можна робити з Pribambase:
• Малюєш у Aseprite і бачиш зміни в Blender одразу, без збереження чи експорту.
• Показує UV-мапу прямо в Aseprite, оновлюється при зміні моделі.
• Керує спрайт-анімаціями: кадри, теги, цикли, NLA.
• Швидкі шорткати для сіток, піксельних матеріалів і 2D спрайтів.
• Підтримка 2.5D спрайтшитів та анімацій для Armory Engine.
🛠 Як встановити:
1. Blender: Edit → Preferences → Add-ons → Install → обираєш pribambase-blender-{…} → активуєш.
2. Aseprite: перетягуєш розширення у вікно або відкриваєш файл.
🔹 [GitHub] - Клац
🔹 [illusionofmana] - Клац
💡 Фішка: Pribambase дає швидкий і зручний 2.5D піксельний робочий процес, економить купу часу та рутинної роботи.
💻 | GAMEDEV UA | #інструменти #aseprite #blender #піксельарт
🔥7👍2❤1
This media is not supported in your browser
VIEW IN TELEGRAM
🎥 Створюємо камеру від третьої особи за допомогою Cinemachine!
Хочеш, щоб твоя гра виглядала професійно? 😎
У цьому туторіалі показано, як налаштувати Third Person Camera із
📌 Дивись відео та завантажуй готовий проєкт
💡 Підійде всім, хто працює з Unity та хоче прокачати візуал і керування камерою у своїх іграх!
💻 | GAMEDEV UA | #туторіал #Cinemachine #ThirdPersonCamera #камера
Хочеш, щоб твоя гра виглядала професійно? 😎
У цьому туторіалі показано, як налаштувати Third Person Camera із
Aiming Rig у Cinemachine, а також використати Impulse Propagation та Blending, щоб додати геймплейні фішки для контролера камери.📌 Дивись відео та завантажуй готовий проєкт
💡 Підійде всім, хто працює з Unity та хоче прокачати візуал і керування камерою у своїх іграх!
💻 | GAMEDEV UA | #туторіал #Cinemachine #ThirdPersonCamera #камера
❤7👍1🔥1
🚀 Чому не варто створювати нові об’єкти всередині Update()
У Unity є ще один “тихий вбивця FPS” - це непомітні алокації пам’яті всередині гарячих циклів.
Здається, дрібниця: ну що такого? Але на мобільних, VR чи WebGL ці мікроалокації швидко перетворюються на лаги.
📌 Що таке алокація
Алокація (allocation) — це процес виділення пам’яті для нових даних під час виконання програми.
У C#/Unity зазвичай є:
• Stack allocation — швидке виділення у стеку (для простих значень).
• Heap allocation — повільніше виділення в “купі”, з подальшим прибиранням за допомогою Garbage Collector (GC).
Кожен new усередині
🧠 Типовий приклад
Код виглядає чисто, але кожен new тут → алокація → робота для GC.
❓ Як оптимізувати
1. Кешуй об’єкти
Створюй їх один раз у
2. Використовуй статичні або readonly поля для констант
Не створюй їх наново кожен кадр:
3. Профілюй код
Unity Profiler та Memory Profile швидко показують, де саме відбуваються зайві алокації.
💡 Коли можна не паритися
Якщо створюєш об’єкти лише раз на кілька секунд або в подіях (
💻 | GAMEDEV UA | #оптимізація #csharp #Unity #coding
У Unity є ще один “тихий вбивця FPS” - це непомітні алокації пам’яті всередині гарячих циклів.
Здається, дрібниця: ну що такого? Але на мобільних, VR чи WebGL ці мікроалокації швидко перетворюються на лаги.
📌 Що таке алокація
Алокація (allocation) — це процес виділення пам’яті для нових даних під час виконання програми.
У C#/Unity зазвичай є:
• Stack allocation — швидке виділення у стеку (для простих значень).
• Heap allocation — повільніше виділення в “купі”, з подальшим прибиранням за допомогою Garbage Collector (GC).
Кожен new усередині
Update() зазвичай означає heap-алокацію, а купа таких викликів змушує GC працювати частіше → гра може фризити.🧠 Типовий приклад
void Update()
{
// Кожного кадру створюється новий масив
float[] values = new float[3] { Mathf.Sin(Time.time), 0f, Mathf.Cos(Time.time) };
// Або новий об’єкт класу
var particle = new Particle();
}
Код виглядає чисто, але кожен new тут → алокація → робота для GC.
❓ Як оптимізувати
1. Кешуй об’єкти
Створюй їх один раз у
Awake / Start, або як поля класу:private float[] _cachedValues = new float[3];
void Update()
{
_cachedValues[0] = Mathf.Sin(Time.time);
_cachedValues[1] = 0f;
_cachedValues[2] = Mathf.Cos(Time.time);
}
2. Використовуй статичні або readonly поля для констант
Не створюй їх наново кожен кадр:
private static readonly GameObject Prefab = Resources.Load<GameObject>("MyPrefab");3. Профілюй код
Unity Profiler та Memory Profile швидко показують, де саме відбуваються зайві алокації.
💡 Коли можна не паритися
Якщо створюєш об’єкти лише раз на кілька секунд або в подіях (
OnClick, OnEnable) - сміливо юзай new. Або у малих проєктах чи прототипах оптимізація не завжди потрібна. Спершу перевір профайлером, а потім оптимізуй.💻 | GAMEDEV UA | #оптимізація #csharp #Unity #coding
👍5🔥1
🎯 Що таке Singleton у Unity (C#)
Singleton — це патерн проєктування, який дозволяє створити в грі лише один екземпляр певного класу й зробити його доступним з будь-якої частини коду. У Unity його часто використовують для таких речей, як
Наприклад,
⚠️ Мінуси:
• Надмірне використання робить код “жорстко зв’язаним”
• Складніше тестувати
• Можуть з’являтися дублікати, якщо неправильно реалізувати
📌 Базовий приклад:
Використовуйте
💻 | GAMEDEV UA | #уроки #Singleton #GameManager #екземпляр
Singleton — це патерн проєктування, який дозволяє створити в грі лише один екземпляр певного класу й зробити його доступним з будь-якої частини коду. У Unity його часто використовують для таких речей, як
GameManager, AudioManager чи UIManager, усюди, де потрібен єдиний “контролер”, що зберігає спільний стан або керує процесами.Наприклад,
GameManager може зберігати прогрес гри, рахунок чи налаштування, а AudioManager керує музикою та звуковими ефектами. Завдяки Singleton не потрібно передавати об’єкт між різними скриптами, бо його можна легко викликати через Instance.⚠️ Мінуси:
• Надмірне використання робить код “жорстко зв’язаним”
• Складніше тестувати
• Можуть з’являтися дублікати, якщо неправильно реалізувати
📌 Базовий приклад:
public class GameManager : MonoBehaviour
{
public static GameManager Instance { get; private set; }
void Awake()
{
if (Instance != null && Instance != this)
{
Destroy(gameObject);
return;
}
Instance = this;
DontDestroyOnLoad(gameObject);
}
}
Використовуйте
Singleton тільки для об’єктів, які справді мають бути єдині у грі, а не для всього підряд. Хоча ліпше просто забудьте і використовуйте ScriptableObject 😉💻 | GAMEDEV UA | #уроки #Singleton #GameManager #екземпляр
🔥8
🚀 Unity 6.3 доступна! [Детальніше тут]
Ще не відійшли від 6.2, а тут ще одне оновлення. Спробуйте нову Unity 6.3 з покращеною стабільністю, продуктивністю та підтримкою платформ.
🔹 Головні новинки:
• UI Toolkit: налаштовувані шейдери та SVG.
• Render 3D як 2D з підтримкою сортування та освітлення.
• Shader Graph: нові інструменти для шейдерів та террейнів.
• Render Graph: швидше і гнучкіше, переглядач на пристрої.
• Multiplayer: HTTP/2 та міграція хоста.
• Аудіо: Scriptable Audio Pipeline та Enhanced Audio Foundation.
• Профілювання та оптимізація: покращені Lightmaps, 2D Animation та Sprite Atlas Analyzer.
💡 Бета відкрита для всіх через Unity Hub!
Не забудь зробити резервну копію проекту 😉
💻 | GAMEDEV UA | #новини #Unity #unitynews
Ще не відійшли від 6.2, а тут ще одне оновлення. Спробуйте нову Unity 6.3 з покращеною стабільністю, продуктивністю та підтримкою платформ.
🔹 Головні новинки:
• UI Toolkit: налаштовувані шейдери та SVG.
• Render 3D як 2D з підтримкою сортування та освітлення.
• Shader Graph: нові інструменти для шейдерів та террейнів.
• Render Graph: швидше і гнучкіше, переглядач на пристрої.
• Multiplayer: HTTP/2 та міграція хоста.
• Аудіо: Scriptable Audio Pipeline та Enhanced Audio Foundation.
• Профілювання та оптимізація: покращені Lightmaps, 2D Animation та Sprite Atlas Analyzer.
💡 Бета відкрита для всіх через Unity Hub!
Не забудь зробити резервну копію проекту 😉
💻 | GAMEDEV UA | #новини #Unity #unitynews
🔥7👍2💯1
💡 Скільки гра має бути в Early Access, щоб не втратити гравців?
Аналітики Newzoo у своєму «Глобальному звіті про ігровий ринок 2025» поділилися статистикою про дочасний доступ у Steam.
🔍 Вони дослідили, як термін раннього доступу впливає на кількість гравців після релізу версії 1.0.
📌 Головний висновок: оптимальний період до 6 місяців.
Найкращі результати отримали ігри, що перебували в ранньому доступі 4–6 місяців? у середньому
📉 Чим довше гра залишається в EA, тим важче повернути аудиторію на виході.
💻 | GAMEDEV UA | #запитання #ринок #earlyaccess #доступ #раннійдоступ
Аналітики Newzoo у своєму «Глобальному звіті про ігровий ринок 2025» поділилися статистикою про дочасний доступ у Steam.
🔍 Вони дослідили, як термін раннього доступу впливає на кількість гравців після релізу версії 1.0.
📌 Головний висновок: оптимальний період до 6 місяців.
Найкращі результати отримали ігри, що перебували в ранньому доступі 4–6 місяців? у середньому
~1,8 млн користувачів за перші 3 місяці після релізу.📉 Чим довше гра залишається в EA, тим важче повернути аудиторію на виході.
💻 | GAMEDEV UA | #запитання #ринок #earlyaccess #доступ #раннійдоступ
👍6🔥2❤1
🕹 1-Bit Platformer Pack
Понад 400 1-бітних спрайтів: персонажі, вороги, предмети, блоки та тайли.
🔗 [Завантажити тут] 👈
Ліцензія: CC0 – можна використовувати у будь-яких проектах, навіть комерційних, атрибуція не обов’язкова.
💻 | GAMEDEV UA | #корисне #текстурки #1bit #піксельарт
Понад 400 1-бітних спрайтів: персонажі, вороги, предмети, блоки та тайли.
🔗 [Завантажити тут] 👈
Ліцензія: CC0 – можна використовувати у будь-яких проектах, навіть комерційних, атрибуція не обов’язкова.
💻 | GAMEDEV UA | #корисне #текстурки #1bit #піксельарт
1👍10❤3
💨 Сила тертя і гальмування
Уявіть, що ваша машинка або персонаж рухається по поверхні і поступово зупиняється. Це відбувається через сили тертя, які уповільнюють рух.
• v(t) — швидкість через час t
• v₀ — початкова швидкість
• μ — коефіцієнт тертя (чим більше, тим швидше об’єкт зупиняється)
💡 Інтуїтивно: при великому терті об’єкт зупиняється швидко, при малому довго ковзає.
Для чого це потрібне в іграх?
Самий явний приклад, який приходить одразу в голову - машини. Коли автомобіль гальмує або ковзає по слизькій дорозі, експоненційне гальмування дозволяє відобразити це реалістично, без різких зупинок.
❓Як реалізувати в Unity
Рух об’єкта оновлюється по кадрах, тому формулу дискретизують:
Приклад коду:
✅ Пояснення коду:
•
•
• Маленькі швидкості можна обнуляти, щоб уникнути дрібних "дрейфів".
‼️ Але виникає інше запитання. Як визначити friction?
Є декілька методів. Самий простий - "експерименталний". Просто підібрати вручну, поки не буде виглядати природньо.
Ще один варіант - за формолую. У класичній фізиці: сила тертя
•
•
💡Хоча краще всього робити по відчуттям. Але якщо ви екстремал, який хоче, щоб все було точно то ваш вибір 😉
📦 Готовий варіант у Unity без коду
Якщо ви не хочете писати код вручну, можна використати
•
• Простий спосіб отримати плавне гальмування, без написання власних формул.
📌 Цей варіант зручний, якщо потрібен швидкий результат і взаємодія з фізикою Unity.
💻 | GAMEDEV UA | #математика #тертя #рух #силатертя
Уявіть, що ваша машинка або персонаж рухається по поверхні і поступово зупиняється. Це відбувається через сили тертя, які уповільнюють рух.
v(t) = v₀ ⋅ e^(−μt)• v(t) — швидкість через час t
• v₀ — початкова швидкість
• μ — коефіцієнт тертя (чим більше, тим швидше об’єкт зупиняється)
💡 Інтуїтивно: при великому терті об’єкт зупиняється швидко, при малому довго ковзає.
Для чого це потрібне в іграх?
Самий явний приклад, який приходить одразу в голову - машини. Коли автомобіль гальмує або ковзає по слизькій дорозі, експоненційне гальмування дозволяє відобразити це реалістично, без різких зупинок.
❓Як реалізувати в Unity
Рух об’єкта оновлюється по кадрах, тому формулу дискретизують:
v_new = v_old ⋅ e^(−μ Δt), де Δt = Time.deltaTimeПриклад коду:
using UnityEngine;
public class FrictionExample : MonoBehaviour
{
[SerializeField] private float speed = 5f; // початкова швидкість
[SerializeField] private float friction = 1f; // коефіцієнт тертя
private Vector3 velocity;
void Start()
{
velocity = transform.forward * speed; // рух уперед
}
void Update()
{
// Експоненційне гальмування
velocity *= Mathf.Exp(-friction * Time.deltaTime);
// Рух об'єкта
transform.position += velocity * Time.deltaTime;
// Зупинка, коли швидкість дуже мала
if (velocity.magnitude < 0.01f)
velocity = Vector3.zero;
}
}
✅ Пояснення коду:
•
Mathf.Exp(-friction * Time.deltaTime) точно реалізує експоненційне зменшення швидкості.•
friction контролює, наскільки швидко об’єкт зупиняється.• Маленькі швидкості можна обнуляти, щоб уникнути дрібних "дрейфів".
‼️ Але виникає інше запитання. Як визначити friction?
Є декілька методів. Самий простий - "експерименталний". Просто підібрати вручну, поки не буде виглядати природньо.
Ще один варіант - за формолую. У класичній фізиці: сила тертя
F = μ * N•
μ — коефіцієнт тертя (в реальному житті: 0…1 для більшості поверхонь)•
N — нормальна сила (вага об’єкта)💡Хоча краще всього робити по відчуттям. Але якщо ви екстремал, який хоче, щоб все було точно то ваш вибір 😉
📦 Готовий варіант у Unity без коду
Якщо ви не хочете писати код вручну, можна використати
Rigidbody (3D) або Rigidbody2D і задати Drag (Linear Drag). Unity автоматично буде зменшувати швидкість об’єкта:•
Rigidbody.drag або Rigidbody2D.drag — відповідає за “тертя повітря/середовища”• Простий спосіб отримати плавне гальмування, без написання власних формул.
📌 Цей варіант зручний, якщо потрібен швидкий результат і взаємодія з фізикою Unity.
💻 | GAMEDEV UA | #математика #тертя #рух #силатертя
🔥7
🔨Як Маріо став Маріо
Маріо вперше з'явився як персонаж на ім'я Jumpman у грі Donkey Kong, яка вийшла 9 липня 1981 року, де він був теслею, що рятував свою дівчину від горили.
Пізніше, у 1983 році, в грі Mario Bros. він став сантехніком, а своє ім'я "Маріо" отримав на честь Маріо Сегале, власника складу американського офісу Nintendo.
💻 | GAMEDEV UA | #факти #game #gamedev #маріо #mario
Маріо вперше з'явився як персонаж на ім'я Jumpman у грі Donkey Kong, яка вийшла 9 липня 1981 року, де він був теслею, що рятував свою дівчину від горили.
Пізніше, у 1983 році, в грі Mario Bros. він став сантехніком, а своє ім'я "Маріо" отримав на честь Маріо Сегале, власника складу американського офісу Nintendo.
💻 | GAMEDEV UA | #факти #game #gamedev #маріо #mario
🔥9❤5👍2
Фінальний мем тижня!
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
✈️ Gamedev | #меми
Зв'язок з автором: @DevAndrew 👈
Бот з блек-лістом: @IndieSafeBot
📌 І пам'ятаємо про #теги, що вони тут не просто так (детальніше в самому першому закріпі)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁12👍2
📌 Підсумок публікацій за тиждень:
🎓 Навчальні матеріали:
• 🚀 Чому не варто створювати нові об’єкти всередині Update()
• 🎯 Що таке Singleton у Unity (C#)
• 💨 Сила тертя і гальмування
🔨Корисне:
• 📦 Pribambase / Пряме малювання в Blender через Aseprite
• 🎥 Створюємо камеру від третьої особи за допомогою Cinemachine!
• 🕹 1-Bit Platformer Pack
📰 Новини та цікаві теми:
• 🚀 Unity 6.3 доступна!
• 💡 Скільки гра має бути в Early Access, щоб не втратити гравців?
Підсумок в одному пості. Зберігайте 😉
💻 Gamedev | [Підтримати канал тут]
🎓 Навчальні матеріали:
• 🚀 Чому не варто створювати нові об’єкти всередині Update()
• 🎯 Що таке Singleton у Unity (C#)
• 💨 Сила тертя і гальмування
🔨Корисне:
• 📦 Pribambase / Пряме малювання в Blender через Aseprite
• 🎥 Створюємо камеру від третьої особи за допомогою Cinemachine!
• 🕹 1-Bit Platformer Pack
📰 Новини та цікаві теми:
• 🚀 Unity 6.3 доступна!
• 💡 Скільки гра має бути в Early Access, щоб не втратити гравців?
Підсумок в одному пості. Зберігайте 😉
💻 Gamedev | [Підтримати канал тут]
🔥6❤2