Devlog без QA | Розробка ігор – Telegram
Devlog без QA | Розробка ігор
641 subscribers
204 photos
61 videos
402 links
Unity/Новини/Ідеї/Натхнення й інший якісний (а можливо і не дуже) контент тут!

Зв’язок: @DevAndrew

Анти-скам бот: @IndieSafeBot
Download Telegram
Всім привіт 👋

📌 Тепер до діла: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.

Ну що, хто покаже перший скрін? 👀🔥

✈️ Gamedev | #ScreenshotSaturday
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍3💯1
📌 Підсумок публікацій за тиждень:

Привіт! Як завжди підсумок у одному пості! Зберігайте 😁

🎓 Навчальні матеріали:
🎯 Gizmos. Tвої очі в Scene View
📉 Easing Functions: що це таке?
🌀 Потрібно обновити 2D-колайдер в runtime?

📰 Новини та цікаві теми:
📱 У Unity знайшли критичну діру безпеки (CVE-2025-59489)
🪧 Ігровий маркетинг без бюджету: що справді працює
😮 Ваші треш випадки! Можете ділитися і далі :)

🔨Корисне:
📱 Toп 10 безкоштовних інструментів, які спростять життя розробнику
👀 Як зміни в ефектах, рухах камери та UI змінюють відчуття гри!

Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що # тут не просто так!

Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
😁74👍2
📱 Steam знову зламав власний рекорд!

Ну що ж. Почнемо тиждень з "лайтових" новин 😀

Звучить божевільно, але Valve реально подвоїла свій пік користувачів за 5 років.

У 2020-му, коли всі сиділи вдома через COVID, пік був 19 млн.

Сьогодні — 41 666 455 одночасно! 🤯

💬 За останні два роки Steam виріс майже на 10 млн користувачів. І, схоже, їхній секрет простий: зроби платформу зручною і люди самі прийдуть.

І поки інші платформи сперечаються про ексклюзиви, Steam спокійно росте, запускає Steam Deck, і перетворюється з просто магазину на повноцінну екосистему.

‼️ Схоже, у Valve все стабільно: гравці ростуть, продажі летять.

✈️ Gamedev | #новини #steam #онлайн #рекорд #record
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥19🤯5👀21👍1
🔥 8 атрибутів, які спрощують життя розробнику

1️⃣ [Header("Назва секції")]
Додає заголовок у інспекторі над полем. Зручно групувати змінні.
[Header("Налаштування гравітації")]
public float gravity = 9.8f;


2️⃣ [Tooltip("Підказка")]
Показує опис при наведенні на поле.
[Tooltip("Швидкість руху персонажа")]
public float speed;


3️⃣ [Space(Бажана кількість пікселів)]
Додає вертикальний відступ між полями.
[Space(25)]
public int health;


4️⃣ [HideInInspector]
Ховає public-змінну в інспекторі.
[HideInInspector]
public int secretValue;


5️⃣ [ContextMenu("Назва методу")]
Дозволяє викликати метод з контекстного меню скрипта.
[ContextMenu("Reset Values")]
void ResetValues() {
health = 100;
speed = 5;
}


6️⃣ [ContextMenuItem("Назва", "Метод")]
При натисненні правою клавішою миші на поле, можна буде викликати метод.
[ContextMenuItem("Reset Speed", "ResetSpeedMethod")]
public float speed;

void ResetSpeed() {
speed = 5;
}


7️⃣ [HelpURL("https://link.com")]
При натисканні , у верхньому правому куті інспектора скрипта, відкриває в браузері вказаний URL.
[HelpURL("https://docs.unity3d.com/Manual/class-Rigidbody.html")]
public class PlayerController : MonoBehaviour { }


8️⃣ [RequireComponent(typeof(Rigidbody))]
Автоматично додає потрібний компонент на об’єкт.
[RequireComponent(typeof(Rigidbody))]
public class PlayerController : MonoBehaviour { }


Як на мене,
[ContextMenu] найюзабельніший 😉

✈️ Gamedev | #уроки #Unity #атрибути #UnityTips #UnityAttributes
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥18👍3🔥21
🎵 Pixel RPG Music

Любиш атмосферу старих RPG і хочеш додати нотку ностальгії у свої ігри чи проєкти?

[Забрати] 👈

Тоді ця добірка для тебе! Безкоштовно можна отримати 12 "піксельних" треків, які чудово передають дух класичних RPG.

✈️ Gamedev | #корисне #аудіо #RPG #8bit #pixelmusic
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥73👍2
⬇️ Коли краще випускати гру: весна чи осінь?

Аналіз AAA-релізів 2021–2024 показує цікаву тенденцію: майже 70% великих ігор виходять між серпнем та листопадом, і ще 23% у лютому–березні.

А от весняний період (квітень–червень) майже порожній, лише 14% релізів. [Джерело]

💡 Що з цього випливає:

Восени ви боретеся за увагу. Ринок переповнений релізами та святковими акціями. Гравці обирають лише кілька головних тайтлів, і менші проєкти ризикують залишитися непоміченими.

Весна – шанс виділитися. Менше конкуренції = більше уваги для вашої гри. Гравці ще не втомилися від новинок, а маркетинг працює ефективніше. Для інді-проєктів це особливо цінно: можна збирати фідбек і формувати спільноту без шуму “великих релізів”.

Січень–лютий і липень — тихі місяці. Активність гравців падає, рекламні кампанії працюють слабше, і немає масового попиту на нові ігри.

Що станом на 2025 рік?

Ситуація ще більш показова. За даними Newzoo, ігри, що виходять у перевантажений період серпень-листопад, отримують у середньому на 30–35% менше гравців за перші три місяці, ніж ті, що вийшли у квітні–червні.

А весняний період залишається майже порожнім, але показує таку ж або навіть вищу залученість аудиторії. Менше конкуренції дозволяє ефективніше просувати гру та привертати увагу гравців без зайвих витрат на маркетинг.

А що ви думаєте про це? Чи варто ігнорувати всю цю статистику і випускати тоді, коли самі готові?

✈️ Gamedev | #запитання #маркетинг #випуск #аналітика #реліз
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥142👍1🤔1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
🤯 Креативність без меж: 3D-артистка створила імпровізовану систему захоплення руху прикріпивши селфі-палку до грудей, щоб утримувати iPhone...

✈️ Gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯16❤‍🔥6👀31
🚀 Підйом предметів

У цьому відео показано, як написати код для виявлення об’єкта, підйому та кидання предметів у грі всього за 10 хвилин!

✈️ Gamedev | #туторіал #UnityTutorial #PickupObjects #ThrowObjects #Підйом
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥11👍2🔥2
📱 Коротка стаття про оптимізацію в Unity 6

Якщо підсумувати оновлення, які Unity отримала за останні версії (читайте попередні пости за тегами #новини), то головний фокус розробників став очевидним — продуктивність і комфорт роботи.

👨‍💻 1. Продуктивність у коді

Unity додала Awaitable class — тепер асинхронний код можна писати через async/await без корутин і без зайвих алокацій. Менше лагів, більше контролю 🚀

Не забуваємо за [SerializeField], [Tooltip], [Header], [RequireComponent] та інші атрибути, які дозволяють підтримувати порядок у скриптах.

UI? Тепер можна створювати інструменти прямо в редакторі через UI Toolkit, а також робити з ним runtime UI, все в єдиному стилі.

⚡️ 2. Швидший робочий процес

• Вимикайте Domain Reload і Scene Reload, бо Play Mode запускається майже миттєво.

• Додавайте власні меню через [MenuItem] і працюйте швидше.

• Розділяйте дані та логіку через ScriptableObjects, оптимізуйте пам’ять із Addressables.

• А .asmdef файли помітно скорочують час компіляції.

⚙️ 3. Профайлінг і дебаг

Unity 6.1 отримала Project Auditor — знаходить важкі місця в коді, невикористані ресурси та проблеми з продуктивністю.

Плюс класика: Memory Profiler, ProfilerMarker, Debug.DrawRay() для візуалізації та кольорові Debug.Log() із тегами <color> і <b> для зручності.

В принципі все те саме і більше є тут [Детальніше] 👈

✈️ Gamedev | #оптимізація #Unity #UnityOptimization
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍3❤‍🔥2
🔄 Interpolate vs Extrapolate

Помічали, як іноді рух об’єктів виглядає рваним через різницю між FPS та фізикою? Це джитер! Interpolate та Extrapolate допомагають зробити рух плавним і природним.

Але яка між ними різниця?


1️⃣ Interpolate (Інтерполяція)

Використовує попередні позиції об’єкта, щоб обчислити його положення на поточному кадрі. Рух виглядає точним і плавним, навіть якщо фізика оновлюється рідше, ніж кадри на екрані.

Мінус: невелика затримка в відображенні, бо об’єкт трохи “тягнеться” з минулого кадру.

2️⃣ Extrapolate (Екстраполяція)

Прогнозує майбутню позицію об’єкта на основі його поточної швидкості та напрямку. Добре працює для об’єктів з передбачуваним рухом — вони одразу показуються у новій позиції.

Мінус: якщо об’єкт різко змінює напрямок або швидкість, прогноз може трохи “промахнутись”.

Один вчиться на минулому, інший прогнозує майбутнє і сподівається, що вгадає 😉

✈️ Gamedev | #факти #Interpolation #Extrapolation #SmoothMovement
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10🔥32👍1
Всім привіт 👋

📌 Тепер до діла: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.

Ну що, хто покаже перший скрін? 👀🔥

✈️ Gamedev | #ScreenshotSaturday
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥4🎉2
📌 Підсумок публікацій за тиждень:

Як завжди підсумок у одному пості! Зберігайте 😁

🎓 Навчальні матеріали:
🔥 8 атрибутів, які спрощують життя розробнику
🚀 Підйом пердметів за 10 хвилин
🔄 Interpolate vs Extrapolate

🔨Корисне:
🎵 Pixel RPG Music
📱 Коротка стаття про оптимізацію в Unity 6

📰 Новини та цікаві теми:
📱 Steam знову зламав власний рекорд!
⬇️ Коли краще випускати гру: весна чи осінь?
🤯 Імпровізована системи захоплення руху!

Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що # тут не просто так!

Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4😁4🔥2
☕️ Добрий ранок, геймдевелопери!

Сьогодні короткий лайфхак для тих, хто прокидається, відкриває Unity і замість коду бачить спам у консолі на кшталт:
ArgumentException: The state of the provided MeshGenerationNode is invalid (entry is null).
або
MeshGenerationContext is assigned to a VisualElement after calling ‘UnityEngine.UIElements.UIR.MeshGenerationCallback’. Did you forget to call ‘End’?


🧩 У чому суть проблеми

Ця помилка з’являється в останніх версіях Unity 6000.x і пов’язана з тим, як Unity малює інспектор через UI Toolkit.

В деяких випадках він «ламається», особливо коли є List<GameObject> або складні посилання. Після цього інспектор може показувати порожні поля і без запуску видавати ось такі от помилки...

🛠 Як це можна виправити

На форумах я знайшов декілька способів, в надійності яких я сумніваюсь, але мені допоміг один з них.

Edit → Project Settings → Editor → Inspector → Use IMGUI Default Inspector

Якщо я правильно зрозумів, ця галочка повертає стару систему відображення інспектора, яка працює без UI Toolkit, а значить без багів 👌

Виправіть, якщо у чомусь помилився. А хто ще знає методи, щоб уникнути цього?

✈️ Gamedev | #баги #фікси #Unity #UIToolkit #TMP
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥183👍1
🌎 Масштабний збій AWS паралізував сервіси по всьому світу

Думаю, багато вже чули, але все ж скажу 😅

Признавайтесь: хто сьогодні заходив у Clash Royale або Roblox і подумав, що вас забанили? А ні!

Все це через масштабний збій у роботі Amazon Web Services (AWS) — хмарної інфраструктури, на якій працює купа сервісів по всьому світу.

Через проблему з DNS у регіоні US-EAST-1 тисячі людей не могли зайти у свої улюблені додатки: від Snapchat, Zoom, Duolingo та Canva до Fortnite і навіть британської податкової HMRC!

ℹ️ За даними AWS, інженери вже усунули проблему, і більшість сервісів працює нормально, але ще можливі затримки та невеликі помилки під час відновлення.

✈️ Gamedev | #новини #AWS #Amazon #Cloud
Please open Telegram to view this post
VIEW IN TELEGRAM
8😢1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Хай живе піксель: хороший приклад процедурної анімації

✈️ Gamedev | [Джерело] | #натхнення
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥4❤‍🔥2👍1
💭 Гнучкі ефекти з C# Generic Interfaces

У сучасних системах здібностей (abilities) зручніше працювати не з конкретними класами, а з інтерфейсами.

Generic Interfaces (IEffect<TTarget>) дозволяють створювати універсальні ефекти, які можна застосовувати до будь-якого типу об’єктів без дублювання коду.

1️⃣ IEffect. Універсальний ефект

Визначає логіку будь-якого ефекту (шкода, лікування, бафи).

Має Apply, Cancel і подію OnCompleted.

public interface IEffect<T> {
IEffect<T> CreateInstance();
void Apply(T target);
void Cancel();
event Action<IEffect<T>> OnCompleted;
}

🔹 Використання generics гарантує типобезпеку. Наприклад, IEffect<IDamageable> можна застосувати лише до цілей, які реалізують IDamageable.

2️⃣ IDamageable. Будь-який об’єкт, що може отримати шкоду

Це базовий інтерфейс для всіх «пошкоджених» об’єктів.
public interface IDamageable {
void TakeDamage(int amount);
}


Будь-який клас, який реалізує цей інтерфейс, автоматично сумісний з ефектами, не змінюючи їх код.
Так, Enemy реалізує IDamageable, тому може приймати ефекти без додаткової логіки.

3️⃣ Миттєві та довготривалі ефекти

DamageEffect одразу наносить шкоду.
DamageOverTimeEffect працює з таймером і завдає шкоду з інтервалом.
public void Apply(IDamageable t) {
t.TakeDamage(damageAmount);
OnCompleted?.Invoke(this);
}


Таймер автоматично зупиняє ефект і викликає OnCompleted.

4️⃣ Ability. Набір ефектів
[Serializable]
public class Ability {
// Список ефектів, які складають цю здібність.
// [SerializeReference] дозволяє в інспекторі Unity змішувати різні типи ефектів (DamageEffect, DamageOverTimeEffect тощо)
[SerializeReference] public List<IEffect<IDamageable>> effects = new();

// Метод виконання здібності на конкретній цілі
public void Execute(IDamageable t) {
if (t == null) return; // захист від null-цілі

foreach (var e in effects) {
// Створюємо окрему інстанцію ефекту для цього застосування,
// щоб уникнути спільного стану (таймери, currentTarget) між цілями
var instance = e.CreateInstance();
if (instance == null) continue;

// Якщо ціль — Enemy, застосовуємо через ApplyEffect,
// який відслідковує активні ефекти та підписується на OnCompleted
if (t is Enemy enemy)
enemy.ApplyEffect(instance);
else
// Інакше застосовуємо ефект без додаткового трекінгу
instance.Apply(t);
}
}
}


🔹 [SerializeReference] дозволяє змішувати різні типи ефектів прямо в інспекторі. Одна здібність може містити кілька ефектів (наприклад, удар + отрута).

5️⃣ Enemy. Керування ефектами
Enemy зберігає активні ефекти й очищає їх при смерті:
void Die() {
foreach (var e in activeEffects) e.Cancel();
activeEffects.Clear();
}


🔹 Подія OnCompleted прибирає завершені ефекти.
🔹 Cancel() зупиняє активні (DoT) при смерті.

6️⃣ PlayerAbilityCaster. Запуск здібностей
if (Input.GetKeyDown(KeyCode.Alpha1))
Cast(hotbar[0], FindFirstObjectByType<Enemy>());


Викликає здібності з клавіш, додає VFX/SFX і керує виконанням.

(Враховуючи, що цей код лише для прикладу, то [Детальніше тут]) 👈

Якщо говорити про плюси, така система дозволяє легко додавати нові ефекти без зміни основного коду і робить їх повністю повторно використовуваними.

Вона також забезпечує чітку архітектуру, що значно спрощує підтримку та масштабування ігрової механіки.

✈️ Gamedev | #уроки #CSharp #GenericInterfaces
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤‍🔥21🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
👀 Зроби рух свого персонажа в 10 разів плавнішим з Root Motion!

✈️ Gamedev | #туторіал #unity #animation #RootMotion #рух
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍4❤‍🔥32
📱 Шейдер-гуру покидає Unity?

Бачили ці круті відео про шейдери? Багато з них створював Бен Кловард – один із провідних Technical Artist із понад 20-річним досвідом.

Він співтворець ShaderFX та автор Uber Shader для Maya, останні роки активно працював над Unity Shader Graph і вів популярний YouTube-канал із 75 000 підписників.

🧩 2025 рік виявився складним для технологічної та геймінг-індустрії. Microsoft, EA, PLAION, Virtuos та King проводили скорочення персоналу, і Бен потрапив під одну з хвиль.

Що цікаво: він хоче продовжити щотижневі навчальні відео на YouTube.

А якщо ваша команда шукає досвідченого Technical Artist із глибокими знаннями шейдерів і оптимізації рендерингу – пишіть Бену
😉

✈️ Gamedev | #новини #Unity #скорочення
Please open Telegram to view this post
VIEW IN TELEGRAM
😢18🔥3👀2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🔈 Bro Audio. Просунути система керування звуком

Вона дозволяє дизайнерам працювати зі звуками без коду, а програмістам через простий API.

Має фічі для плавного затухання, рандомізації, безшовних лупів і динамічних ефектів 🫠

✈️ Gamedev | [Завантажити] | #інструменти #аудіо #audio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥192👍2❤‍🔥1
Всім привіт 👋

📌 Ось і ваша любима рубрика: щосуботи ділимося своїми іграми, артами, скріншотами чи результатами роботи. Це може бути як концепт, так і вже готовий проєкт.

Ну що, хто покаже перший скрін?🔥

✈️ Gamedev | #ScreenshotSaturday
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍2🥰1💯1
📌 Підсумок публікацій за тиждень:

Як завжди підсумок у одному пості! Зберігайте 😁

🎓 Навчальні матеріали:
👀 Зроби рух свого персонажа в 10 разів плавнішим з Root Motion!
💭 Гнучкі ефекти з C# Generic Interfaces

📰 Новини та цікаві теми:
📱 Шейдер-гуру покидає Unity?
🔥 Хай живе піксель: хороший приклад процедурної анімації
🌎 Масштабний збій AWS паралізував сервіси по всьому світу

🔨Корисне:
🔈 Bro Audio. Просунути система керування звуком
☕️ Як пофіксити помилку в інспекторі!

Не забуваємо, що у першому закріпленому повідомленні є вся потрібна інформація. Що # тут не просто так!

Та також, переглядайте та діліться своїми результатами у SCREENSHOT SATURDAY!

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥134🔥3👎2