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

Зв’язок: @DevAndrew

Анти-скам бот: @IndieSafeBot
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🎯 Як зробити World Space UI з UI Toolkit в Unity

💡 Плаваючі числа у 3D, кастомні елементи інтерфейсу прямо у світі гри – все це можливо з UI Toolkit!
У цьому туторі показано, як реалізувати інтерактивний UI в World Space, використовуючи:

🔧 UI Toolkit + RenderTexture
💥 Spawner для Damage Numbers
🔁 Object Pooling для високої продуктивності

Універсальний клас WorldSpaceUIDocument, який відображає UI Toolkit елементи в 3D-просторі
🎨 Нюанси: шейдери, масштабування панелей, оптимізацію рендеру

📹 [Переглянути] - Як вам таке? Напишіть вашу думку у коментарях 👇

💻 | GAMEDEV UA | #туторіал #spaceUI #UIToolkit
👍8
Плейлист для GIT 😎

💻 | GAMEDEV UA | #memes #меми
😁8🗿1
This media is not supported in your browser
VIEW IN TELEGRAM
🌀 Як зробити свій ЛАБІРИНТ?

🔧 В основі генерації лабіринту лежить простий алгоритм - Depth-First Search (DFS). Ми створюємо сітку, де кожна клітинка це прохід, а між ними розміщені стіни. Поступово видаляючи стіни між сусідніми клітинками, ми й отримуємо справжній лабіринт 🧱➡️🕳

Як це працює:
Створюємо ґратку, де:
• Кожна Maze Cell — це прохід (позиції з непарними координатами)
• Усі інші клітинки — стіни


Далі запускається алгоритм DFS (Depth-First Search), який:
• Починає з (0,0)
• Випадково відвідує сусідів
• Видаляє між ними стіни


📦 Як використовувати:
1. Створи порожній об’єкт у сцені, наприклад MazeGenerator
2. Навісь на нього скрипт MazeCellGenerator
3. Створи префаб стіни
4. Встав цей префаб у поле blockPrefab в інспекторі
5. Задай розміри лабіринту (numX, numY), наприклад 10×10

🎥 Навчальні відео:
🔲 2D Лабіринт: [відео тут]
🧱 3D Лабіринт: [відео тут]

Готовий і покращений скрипт, як на відео, уже на GitHub — [GitHub]

💻 | GAMEDEV UA | #туторіал #лабіринт #maze
🔥4👍1
Де викладати свої ігри? Поради, витрати і можливі заробітки 🎮💸

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

Популярні платформи для публікації ігор:

Steam
🔹 $100 одноразово за кожну гру
🔹 Комісія — 30% від продажів
🔹 Найбільший ринок ПК-ігор, ідеально для серйозних проєктів

Google Play Store (Android)
🔹 Одноразова плата $25 за реєстрацію аккаунту
🔹 30% комісії від продажів та внутрішніх покупок
🔹 Грандіозна аудиторія мобільних користувачів

Apple App Store (iOS)
🔹 $99 річна підписка для розробника
🔹 30% комісія
🔹 Високий рівень платоспроможності користувачів, але строгі правила

Itch.io
🔹 Безкоштовно викладаєш, сам обираєш відсоток комісії (можна 0%)
🔹 Підходить для інді-ігор, експериментів і прототипів
🔹 Можливість безпосереднього спілкування з гравцями

Epic Games Store
🔹 Нова політика з 01 червня 2025:
  – 0% комісії з перших $1 млн доходу на рік для розробника
  – Після — стандартна схема 12% для Epic, 88% — для розробника
🔹 Відбірковий процес, але комісія суттєво вигідніша за інші платформи
🔹 Платформа для якісних ігор із великим потенціалом

Консолі (PlayStation, Xbox, Nintendo)
🔹 Публікація складна, потрібна офіційна ліцензія і угоди
🔹 Високі витрати, але велика аудиторія

Мультиплатформеність
Сучасні інструменти розробки дозволяють створювати гру одразу для кількох пристроїв — ПК, мобільні телефони, консолі. Це розширює аудиторію і дає більше шансів на успіх і прибуток!

🎯 Все залежить від якості гри, маркетингу і трохи від удачі.

Важливі поради:
– Не забувай про маркетинг — навіть найкраща гра потребує уваги аудиторії.
– Спілкуйся з гравцями, збирай фідбек.
– Обирай платформу під тип і аудиторію твоєї гри.


💻 | GAMEDEV UA | #запитання #GamePublishing
👍41
🚀 Unity Profiler - твій найкращий друг у боротьбі з лагами

🧠 Що таке Profiler?
Це вбудований інструмент в Unity, який дозволяє побачити, що саме відбувається в грі щосекунди:
• скільки кадрів в секунду (FPS),
• що навантажує CPU та GPU,
• скільки памʼяті витрачає гра,
• як працює рендеринг, фізика, анімація, скрипти тощо.


🔍 Що можна знайти за 1 хвилину:
Update() бере 40% кадру — час оптимізувати скрипти
1000 GameObject активуються одночасно — пулінг?
Камера малює UI тричі — Canvas не оптимізовано

💡 2 поради, з чого почати:
1️⃣ Увімкни Deep Profile — щоб побачити повну картину (але тільки для діагностики)
2️⃣ Відсортуй по Time ms — побачиш, що зʼїдає час кадру

🔧 Інструменти всередині Profiler:
• CPU Usage
•GPU Usage
•Memory
•Rendering
•Physics
•UI
•Audio
•Timeline (зведення всього)


📹 [Відеоролик]

👉 Хочеш FPS +20? Почни з аналізу.

💻 | GAMEDEV UA | #уроки #оптимізація #профайлер #profiler
👍2👀1
🧠 Expression Trees

У Unity зазвичай логіка будується через класи, інтерфейси, делегати, або ж ScriptableObject-и. Але є ще один могутній, майже невідомий інструмент Expression Trees з C#.

Це спосіб представити логіку у вигляді структури даних, яку можна:

створити динамічно під час виконання,
• зберігати у вигляді даних (наприклад, JSON),
• виконати як реальний код без перекомпіляції.

🔧 Як це працює?
У C# є клас Expression, який дозволяє тобі створити дерево з логічних і математичних операцій. Наприклад, замість написати x => x > 5, ти можеш зібрати цей вираз вручну:
ParameterExpression x = Expression.Parameter(typeof(int), "x");
Expression body = Expression.GreaterThan(x, Expression.Constant(5));
Expression<Func<int, bool>> lambda = Expression.Lambda<Func<int, bool>>(body, x);

А потім цей lambda — це вже звичайна функція, яку можна викликати як lambda.Compile()(10) → true

🎮 Як це корисно в іграх?

У відео показано, як Expression Trees можна застосовувати для:
• AI: створення поведінки NPC на основі умов, які визначаються під час гри (чи навіть гравцем).
• Моддингу: дозволити користувачу створювати власну логіку, яка буде виконуватися у грі.
• Data-driven логіки: зберігати логіку не в коді, а в конфігураційних файлах, і завантажувати її на ходу.
• Runtime noscripting: міняти поведінку без оновлення гри.

Це надзвичайно потужний підхід для адаптивних систем — як у The Sims, Spore чи Black & White, де поведінка змінюється не жорстко, а гнучко, залежно від контексту.

👉 [Відеоролик] 👈

💡 Якщо у тебе є система модифікаторів, AI з умовами, діалоги або навіть складний туторіал — Expression Trees можуть зробити це гнучким, динамічним і налаштованим на льоту.

💻 | GAMEDEV UA | #уроки #ExpressionTrees #Trees
🔥5👍1
У нас невеличкий ювілей — нас вже трішки більше 100! 🎉
Чесно кажучи, хотів викласти це одразу, але чекав вдалого моменту.

Дякую вам за активність, реакції, коментарі й просто те, що ви тут 💬❤️

Це дуже мотивує продовжувати ділитися корисним і цікавим!

Також, якщо у вас є прикольні фічі чи відео з ваших проєктів — кидайте мені, буду з радістю викладати їх сюди, щоб надихати інших 💡

І якщо вам подобається контент — рекомендуйте канал друзям або знайомим, кому близька ця тема.

Будем розвиватися разом! 🚀
3👍2🔥1
🤹 Анімація через код

Animator? Та іноді простіше зробити все вручну, через код.

🔸 Повний контроль над кожним кадром
🔸 Динамічна адаптація під умови гри
🔸 Менше залежності від складних анімаційних графів

Основні способи:
▶️ Lerp / Slerp – плавний рух, обертання, зміна кольору
transform.position = Vector3.Lerp(startPos, endPos, t);
transform.rotation = Quaternion.Slerp(startRot, endRot, t);

▶️ Mathf.Sin / Cos – коливання, "пульсація", ефекти
float yPos = Mathf.Sin(Time.time * speed) * amplitude;
transform.position = new Vector3(x, baseY + yPos, z);

▶️ DOTween – прості анімації в один рядок
transform.DOMove(targetPos, 1f).SetEase(Ease.OutBounce);
material.DOColor(Color.red, "_Color", 0.5f);


Коли не варто?

🎭 Якщо анімація кісткова або дуже складна — Animator + Rigging зекономлять час.

💻 | GAMEDEV UA | #уроки #анімації #animator
👍8
🎬 Як робиться анімацію в Unity і навіщо вона потрібна?

Анімація — це те, що оживляє твої ігрові персонажі та об’єкти. В Unity можна створювати анімації різними способами, залежно від типу проєкту.

Ми вже говорили про анімування кодом. У пості вище ☝️

• Для 2D ігор часто використовують покадрову анімацію або кісткову — коли окремі частини персонажа рухаються за допомогою “кісток”. Це робить рухи більш плавними і природними.

• Для 3D моделей анімації створюють у зовнішніх програмах або прямо в Unity, налаштовуючи рухи скелету персонажа.

• Весь процес включає риггінг (створення “кісток”), налаштування ключових кадрів і керування переходами між анімаціями.


▶️ Ось відеоуроки на цю тему — для кращого розуміння:

1)
2D Animation
2)
Unity 3D Animation System - Курс
3)
Animation Rigging

💻 | GAMEDEV UA | #уроки #туторіал #анімації #animator #animation
🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Хочете такий аудіовізуалізатор у Unity? 🎧🎵

Залив простий і зрозумілий приклад на GitHub – ідеально для навчання або експериментів.
Можна змінювати префаб, згладжування, кількість еліпсів і багато іншого.

💻 | GAMEDEV UA | #туторіал #аудіовізуалізатор #аудіо
5
🔍 Як тестити свої ігри?

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

🧪 1. Ручне тестування
Тестуй свою гру сам:
• проходь рівні, тисни кнопки, ламай механіки;
• експериментуй — спробуй грати «не по правилах» (гравці так часто роблять).

👥 2. Дай протестувати друзям
• Запроси друзів або знайомих, які не брали участі у розробці.
• Подивись, що їм незрозуміло, що дратує або навпаки подобається.
• Добре, якщо вони різного віку або не геймери — це дасть нову перспективу.

🌐 3. Злий пробну версію гри
Це можна зробити кількома способами:
• Android: залий .apk на Google Drive, Itch.io, або Google Play Console (Internal Test).
• Windows/WebGL: використай
Itch.io або Game Jolt — легко завантажити і отримати фідбек.

Можна поставити обмеження: наприклад, перші 2 рівні або 5 хвилин геймплею — це дозволить людям спробувати і дати чесний відгук.

💵 4. Найми професійного тестера
Якщо хочеш максимально серйозного підходу — заплати фрілансеру, який займається QA
• Такі люди знають, що і як ламати, і зазвичай дають звіт із багами.
• Їх можна знайти на сайтах типу Upwork, Fiverr або freelancehunt.


🎮 5. Запусти бета-тест
• Створи закрите бета-тестування через Google Play
• Надішли інвайт лише вибраним людям або всім охочим.


Це створює ефект “ексклюзивності” й водночас дозволяє виявити баги.

📱Тестуй на різних пристроях
Перевір гру на слабкому телефоні, планшеті, різних роздільних здатностях.
Важливо бачити, як гра поводиться на старих девайсах, при низькому FPS або з повільним інтернетом.

📋 Зроби чек-лист
Перш ніж викладати гру, переконайся в наступному:

• Все зберігається правильно?
• Кнопки не зникають?
• Немає глюків при зміні сцен?
• Інтерфейс адаптований під різні екрани?
• Немає помилок у консолі?


✍️ Від себе
Не недооцінюй силу зворотного зв’язку — іноді навіть один випадковий коментар може вказати на проблему, яку ти ніколи не помічав. Якщо робиш гру не тільки для себе — обов'язково слухай гравців. І не бійтеся показувати гру рано — краще помітити помилки на початку, ніж уже після релізу.

А який спосіб вам імпонує найбільше? Пишіть нижче 👇

💻 | GAMEDEV UA | #запитання #test #тест
👍3👀1
Процедурний рух ходьби 🦾

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

Це особливо корисно для:
🌍 Ігор з відкритим світом
🎮 Проєктів зі складною механікою пересування
🤖 Ситуацій, де стандартні анімації виглядають штучно

▶️ [Переглянути відео] 👈

Такий підхід значно розширює можливості створення унікальних рухів і підвищує рівень занурення гравця.

💻 | GAMEDEV UA | #туторіал #ProceduralAnimation #ПроцедурнаАнімація
🔥42
🎯 10 корисних C# атрибутів для Unity-розробника

🔹 StructLayout, FieldOffset, Preserve
Контроль над розміщенням полів у памʼяті.
Корисно для серіалізації, нативних структур або оптимізації.
[StructLayout(LayoutKind.Explicit)] — задає точне розміщення.
[FieldOffset(n)] — визначає байтову позицію.
[Preserve] — не дає Unity прибрати код при збірці.

🔹 InspectorName, DefaultExecutionOrder
Покращення зручності в інспекторі та контролю порядку викликів скриптів.
[InspectorName("Гарна назва")] — замінює імʼя змінної в інспекторі.
[DefaultExecutionOrder(-50)] — ранній або пізній старт MonoBehaviour.

🔹 NotNull, CanBeNull, UsedImplicitly
Допомагає IDE видавати попередження.
[NotNull] — не можна залишити null.
[CanBeNull] — дозволено null, IDE врахує.
[UsedImplicitly] — навіть якщо не видно використання, не видаляти.

🔹 PreferBinarySerialization
Unity-атрибут, який змушує серіалізувати об'єкт у бінарному вигляді (замість YAML).
Актуально для ScriptableObject з великою кількістю даних.

🔹 SelectionBase
Коли клікаєш дочірній об’єкт у сцені, виділяється батьківський.
Зручно для редагування складних префабів.
[SelectionBase]

🔹 Child, Parent, Self, Anywhere (Zenject-фреймворк)
Атрибути для Dependency Injection вказують, де шукати залежність: серед дітей, батьків, самого обʼєкта або глобально.
[Inject(Id = "Camera", Source = InjectSources.Self)]


🎥 Відео, де це все показано з прикладами та деталями 👈

💻 | GAMEDEV UA | #уроки #атрибути #csharp
👍9
🌀 Як зробити плавну UI-карусель у Unity?

Хочеш, щоб гравець вибирав скіни чи персонажів через красиву, плавну карусель? Ось базовий варіант, який легко реалізувати у Unity — без додаткових плагінів!

👉 How to Create a UI Carousel in Unity

🔧 Використовуємо:
• UI → Scroll View з горизонтальною прокруткою
• Кожен елемент — окрема кнопка чи панель з контентом
• Snap-ефект: автоматичне прилипання до найближчого елемента після прокрутки

💡 Для чого це можна використати?
• Вибір персонажів або скінів
• Галереї предметів, зброї чи арту
• Меню рівнів або налаштувань
• Перегляд колекцій чи статистики

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

💻 | GAMEDEV UA | #туторіал #UI #UICarousel #карусель
👍5
💡 Як придумати щось нове, коли здається, що все вже придумали?

🔹 1. Новизна ≠ винахід
Справжні інновації — це рекомбінації.

🎮 Stardew Valley — це не нова ідея. Це любовна відповідь на Harvest Moon, але зроблена з душею і якістю.

💡 Порада: змішуй жанри, механіки, стилі. Навіть мінімальна зміна контексту = нове відчуття.

🔹 2. Візьми знайоме, але переверни
Що буде, якщо в Slay the Spire ти не герой, а монстр?
Що якщо Flappy Bird — це вертикальний шутер?

🌀 Трюк: «Що буде, якщо…?» — ідеальна вправа для мозку.

🔹 3. Почни не з механіки, а з емоції
Замість “що гравець буде робити?”, запитай:

“Що гравець має відчувати?”
• Напруга?
• Радість?
• Самотність?

🎮 Journey чи Limbo — приклади, де емоція важлива, як геймплей.


🔹 4. Проблема — джерело інновацій
Багато інновацій — відповідь на обмеження.

🎮 Thomas Was Alone створив унікальні характери з… квадратів. Без бюджету на арти — автор зосередився на історії та наративах.

💡 Порада: подивись на свої обмеження не як на мінус, а як на рамки для креативу.

🔹 5. Геймджеми = ковдра ідей
48 годин. Тема. Обмеження.
Саме там народжуються шедеври!

🎯 Спробуй: щотижня сам собі ставити тему і робити 1 екран або прототип.


А що ви думаєте про це? Поділіться своїм досвідом в коментарях 👇

💻 | GAMEDEV UA | #запитання #ідеї
🔥2👍1👀1
🔍 6 маловідомих фіч C#, які зроблять твій код кращим

Якщо ти все ще логуєш Debug.Log("SomeMessage") вручну — є простіший спосіб.

Якщо твої інтерфейси лише набір сигнатур без реалізації - саме час переглянути підхід.

Якщо ти не знаєш, що yield return можна використовувати не тільки для корутин - пора це змінити.

І якщо масиви для тебе - просто [] без можливості нарізати як шматки то тебе чекає приємне відкриття.

У цьому відео розглядаються такі теми:
🔹 Автоматичне логування — не потрібно вручну вписувати назви методів у Debug.Log, компілятор зробить це за тебе.
🔹 Методи в інтерфейсах — тепер інтерфейси можуть містити базову реалізацію, що дає більше гнучкості без ламання всього коду.
🔹 Форматування чисел — легко виводь значення з потрібною точністю, відступами або символами, не пишучи зайвого коду.
🔹 Ледача ітерація (yield return) — створюй оптимальні колекції, які обробляються по елементу, тільки коли потрібно.
🔹 Явні/неявні оператори — перетворюй власні структури (наприклад, Health) у числа або назад, але без втрати безпеки типів.
🔹 Зручна робота з масивами — нарізай, звертайся з кінця, виділяй діапазони — усе просто та читабельно.

📼 [Переглянути відео] ▶️

💡 Ці прийоми легко додати в свій проєкт – вони не про "синтаксичний цукор", а про контроль і якість.


💻 | GAMEDEV UA | #уроки #код #csharp
🔥71
🎭 Ілюзія вибору в іграх — маніпуляція чи майстерність?

У багатьох сюжетних іграх тобі дають вибір. Інколи — драматичний:
– Захистити персонажа чи зрадити?
– Напасти чи втекти?
– Вбити чи пощадити?

Але потім — все одно та ж сцена, той самий результат.
"Це не справжній вибір!" — думає гравець.
Але тут є нюанс 👀

💡 Приклад: Detroit: Become Human
Гра вся про вибір. Але:
– Багато гілок зливаються в одну
– Деякі рішення змінюють лише репліки
– Інколи є "емоційні" наслідки, але не геймплейні

І все ж: гра відчувається гнучкою. Бо ілюзія працює 💫

🤔 То як створити цю ілюзію вибору?
Ось кілька конкретних прийомів, які можна застосувати навіть у простій грі:

1. Контекстуальна реакція
Дай персонажам реагувати на вибір хоча б словами або мімікою.
🗨 “Я не очікував цього…” — і гравець вже відчуває, що щось змінив.

2. Вибір → ставлення, не події
Навіть якщо сюжет іде по рейках, ти можеш змінити відношення NPC.
🤝 Хтось тобі більше довіряє, хтось — боїться.

3. Варіативний діалог
Кілька різних реплік → та сама дія.
Але емоційно — інша мотивація, інша роль.

4. Затриманий наслідок
Нехай вибір вплине пізніше, не одразу.
Це створює ефект: “Це точно було через той вибір?”
🧠 Гравець сам додумує зв’язки — і це працює краще за пряме пояснення.

📌 Висновок:
🎲 Ілюзія вибору — це не обман, а інструмент занурення.
Коли вона зроблена грамотно — гравець не втрачає інтерес, а навпаки — починає вірити, що кожне рішення має вагу. Навіть якщо це не так 😉

💻 | GAMEDEV UA | #запитання #вибір #ілюзіявибору
👍4😁1
Seven Swords V2 - 7 FREE PBR Swords

[Завантажити] 👈

Досить гарні модельки. А як вам? 👇

💻 | GAMEDEV UA | #корисне #текстури #модельки
🔥4
Імпорт проєктів із Blender в Unity — просто і швидко ⚡️

1. Підготовка моделі в Blender
• Оптимізуйте меш – уникайте зайвих полігонів.
• UV-розгортка – переконайтесь, що вона правильна, інакше текстури будуть некоректні.
• Назви об'єктів – давайте зрозумілі назви, це допоможе при імпорті в Unity.

2. Експорт з Blender
📁 Рекомендований формат – FBX (підтримує анімацію, матеріали, скелети).
Кроки:
• Виділіть потрібні об’єкти.
• Оберіть: File → Export → FBX (.fbx)
Увімкніть:
- Apply Modifiers (застосувати модифікатори)
- Embed Textures (якщо потрібні вбудовані текстури)
- Animation (якщо є анімації)

3. Імпорт в Unity
• Перетягніть .fbx файл у папку Assets.
• Unity автоматично імпортує модель.
• Якщо потрібно — вручну налаштуйте матеріали або текстури.

🎥 Відеоінструкція ▶️

💻 | GAMEDEV UA | #уроки #імпорт #blender
👍2🔥1
🧠 Unity Hierarchy Hack: Додавай іконки прямо в ієрархію

🎯 Хочеш бачити статус об'єктів одразу в інспекторі?
Додавай кастомні індикатори прямо в Hierarchy — помилки, стани, попередження або будь-яку потрібну інформацію.

🛠 Через Unity Editor Events можна виводити значки, кольорові мітки, чи навіть текст біля GameObject — миттєво, зручно і наочно.

🔍 Ідеально для великих сцен, AI логіки, індикації багів або технічної інформації.

▶️ Дивись приклад тут: Hierarchy Hack – відео

📌 Працює на рівні редактора. Один раз налаштував — і бачиш все без відкриття інспектора.

💻 | GAMEDEV UA | #туторіал #HierarchyIcons #інструменти #іконки
🔥5