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

Зв’язок: @DevAndrew

Анти-скам бот: @IndieSafeBot
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🎆 Швидко генеруйте VFX-текстури за допомогою EffectTextureMaker

✈️ Gamedev | [Посилання] | #туторіал #VFX #ефекти #інструменти
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥14🔥42👍1
📱 Unity 6.3 LTS. Що нас чекає?

Я настільки люблю Unity, що мені ніколи не набридне робити пости по типу цього 😀

Unity випустили перший LTS-реліз після 6.0 і він заряджений продуктивністю, стабільністю та крутим функціоналом (кожен раз одне й те саме. Здається я це вже десь чув)

Якщо говорити за нові оновлення:

• Platform Toolkit
Єдиний API для роботи з акаунтами, сейвами, досягненнями та контролерами на всіх платформах:
Android, iOS, Windows (GDK/Steam), Xbox One/Series, PS5, Nintendo Switch і Nintendo Switch 2.

• Android XR
Нові можливості: Face Tracking, Object Trackables, Dynamic Resolution.

• Доступність
Нативна підтримка screen reader на Windows, macOS, Android та iOS.

⚙️ Продуктивність, стабільність і всяке таке

Unity 6.3 пройшла Production Verification (тестування нової версії на реальних комерційних іграх, а не на демосценах) на реальних іграх.

Говорять, що результати видно одразу: -30% регресій (щоб це не означало), -22% багів від користувачів, швидкий імпорт, Play Mode та збірка.

ТАКОЖ AssetBundle TypeTrees отримали серйозні оптимізації, які різко зменшують використання пам’яті та пришвидшують збірки. Реальні проєкти показали до −99% споживання памʼяті та скорочення часу збірки в кілька разів (Це справжні цифри?)

Ще без змін не залишився і PROFILER: Новий Highlights-модуль - швидке резюме продуктивності в один клік. Це означає, що Profiler тепер сам виділяє ключові показники й проблемні місця в проєкті — без потреби копатися в сотнях графіків.

🛠 Графіка, аудіо та редактор

У графіці теж чимало апдейтів: оптимізований Bloom для мобільних, щільніші лайтмапи через xAtlas, новий Sprite Atlas Analyzer та можливість рендерити 3D як 2D.

Shader Graph отримав кастомне освітлення, терайн-шейдери та новий Template Browser.

• В аудіо з’явився Scriptable Audio Pipeline для гнучкого й продуктивного оброблення звуку.

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

Ну і найцікавіше...

Multiplayer та мережеві оновлення: Unity 6.3 LTS додає підтримку HTTP/2 за замовчуванням, що знижує навантаження на сервер і економить ресурси CPU на пристроях гравців.

Крім того, у Netcode for Entities з’явилася Host Migration через Unity Gaming Services (UGS), яка дозволяє продовжувати гру навіть після втрати хоста, забезпечуючи більш стабільний мультиплеєрний досвід.

Як вам такі оновлення? Діліться думками у коментарях 👇

✈️ Gamedev | [Джерело] | #новини #Unity #Unity3D #UnityLTS #Release #Реліз
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥10🔥421👍1
🗿 Як "забрати" об’єкти з Post Processing

Короче, згадав одну ситуацію, з якою стикнувся відносно недавно і вирішив з вами поділитися.

Треба було відділити (напевно це слово буде найбільш влучним?) деякі об'єкти від пост-обробки. На жаль у Unity немає цієї магічної і класної функції як “Exclude From Post Processing”.

Тому потрібно використовувати неординарні методи.

Чому так?

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

Тому на допомогу приходить друга камера!

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

Насправді не обов'язково робити вашу гру занадто важкою для оптимізації, адже у камері є таке чудове налаштування як: Culling Mask. Але все по порядку.

📋 Реалізація

1. Створюєш новий Layer, наприклад: NoPostProcess

Переносиш туди всі об’єкти, які не мають бути під постобробкою (UI, 3D-моделі, світло — що завгодно).

2. Налаштовуєш головну камеру (Camera_Main)

Render Type: Base

Culling Mask: усе крім NoPostProcess

Post-processing: ON

У Base камері → вкладка Stacking → додати Overlay камеру (другорядну). Ця камера малює основну сцену та накладає постобробку.

3. Параметри Overlay Camera

• Render Type: Overlay

Culling Mask: тільки ті об’єкти, які не повинні проходити постобробку

• Post-processing: OFF

Ставите цю камеру як дочірню в головну і позицію 0 0 0

Готово! Тепер Unity малює спочатку Base Camera з постобробкою, а потім Overlay Camera без ефектів, тому ваші об’єкти залишаються “чистими”.

❗️Маленьке уточнення. Якщо не помиляюсь, це працює так з URP, але трохи інакше, ніж у Built-in Render Pipeline: у Built-in не треба додавати другу камеру у Stack, порядок рендера контролюється лише через Depth і Culling Mask.

✈️ Gamedev | #уроки #PostProcessing #ПостОбробка #URP
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥4👍2🥰1
Всім привіт 👋

Ніч була тяжка.. Сподіваюсь у всіх все добре!

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

Можете кидати і старі проєкти)

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

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

Ще один тиждень пролетів. І ось підсумок!😁

🎓 Навчальні матеріали:
🗿 Як "забрати" об’єкти з Post Processing

📰 Новини та цікавe:
🔥 Прекрасна реалізація взаємодії гравця без HUD і лишнього!
📱 Ці інді-жанри приносять сотні мільйонів...
📱 Unity 6.3 LTS. Що нас чекає?

🔨Корисне:
🎆 Швидко генеруйте VFX-текстури

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

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

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9😁6🔥2🥰1
👀 Рубрика: Питання для аудиторії

Багато з нас працюють в Unity, хтось в Unreal, хтось на інших рушіях.

За яким критерієм саме ви обрали свій рушій?

Чи це була зручність роботи, документація, візуальна складність, продуктивність, графіка, чи, можливо, звичка або порада знайомих?

І САМЕ ЦІКАВЕ: Що би ви порадили людині, яка тільки починає свій шлях (Порада стосовно рушія, але якщо бажаєте, то можете і в загальному сприйняти це питання 😉)

Цікаво почути вашу думку в коментарях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9🔥5🤔5🥰1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍531
📱 Generics у C# (та Unity)

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

Generics у C# – це можливість оголошувати класи, методи, інтерфейси тощо з узагальненими параметрами типу. Замість конкретного типу (наприклад int чи string) ви вказуєте параметр T, який задасться під час використання.

Наприклад, .NET забезпечує багато generic-класів для колекцій (List<T>, Dictionary<TKey,TValue> тощо), адже вони можуть зберігати будь-який тип без втрати безпеки типів* (гарантія, що змінні та об’єкти у програмі працюють тільки з тими типами даних, для яких вони призначені, і не можуть бути випадково використані неправильно).

📍 Синтаксис та створення власних generic-типів

Щоб оголосити узагальнений клас або метод, використовують синтаксис з кутовими дужками <T>. Наприклад, узагальнений клас може виглядати так:

public class GenericList<T>
{
private List<T> innerList = new List<T>();
public void Add(T item) { innerList.Add(item); }
public T Get(int index) { return innerList[index]; }
}


У цьому прикладі T – параметр типу, він може бути будь-яким (вкладений у клас GenericList<T>). Коли ви створюєте список, передаєте конкретний тип: var intList = new GenericList<int>(); intList.Add(5);.

Аналогічно можна писати generic-методи:

public void Swap<T>(ref T a, ref T b) 
{
T temp = a; a = b; b = temp;
}


Тут метод Swap<T> може поміняти місцями будь-які два об’єкти одного типу. Виклик: Swap<int>(ref x, ref y).

Якщо коротко то використовувати можна багато як. У тих же інтерфейсах і т.п. Але є ще одна цікава деталь!

⛔️ Обмеження типів (where)

Параметру T можна встановлювати обмеження (where-умови), щоб звузити, яким типом він може бути. Найпоширеніші обмеження:

where T : class T повинен бути "посилальним" типом (неможна передати int тощо).

where T : struct T повинен бути типом-значення (не клас).

where T : notnull – у контексті nullable вимоги – обмежує ненульовані типи (C# 8+).

Думаю, логіка зрозуміла.

Але якщо це канал про розробку ігор, то чому б і не згадати за практичне використання у нашому любимому Unity 😅

📱 Використання generics у Unity

Unity Scripting API містить багато generic-методів у своїй бібліотеці. Наприклад, GetComponent<T>() – це generic-метод у GameObject/Component, який повертає компонент типу T (де T : Component)

Використання:

Rigidbody rb = gameObject.GetComponent<Rigidbody>();


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

Ще один прикладAddComponent<T>() – generic-метод GameObject.AddComponent<T>(), який додає компонент типу T до ігрового об’єкта. Сигнатура: public T AddComponent<T>()

SphereCollider sc = gameObject.AddComponent<SphereCollider>();


Також гріх не згадати: UnityEvent<T> та Системи Entities (ECS).

Ну і базові методи по типу FindObjectOfType<T>() / FindObjectsOfType<T>(), GetComponentInChildren<T>(), GetComponentInParent<T>().

Тобто, якщо ви не знали точно, що таке Generic, то ви 100% з ним стикались.

⚠️ Звісно, хоча існують і нюанси, але краще прочитати самому, якщо це вам настільки цікаво.

[Джерело 1] / [Джерело 2] / [Джерело 3].

На жаль, саркастичного і влучного жарту не придумав. Не сьогодні...

✈️ Gamedev | #уроки #Generic #csharp #unity
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥15👍51👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
⛓️‍💥 Прискорте гру за допомогою об’єднання мешів

Якщо ви збираєте сцени з модульних асетів, підвищити продуктивність можна, об’єднавши їх в один меш за допомогою Mesh.CombineMeshes

✈️ Gamedev | [Документація] | #оптимізація #mesh #GameOptimization
Please open Telegram to view this post
VIEW IN TELEGRAM
15🔥82❤‍🔥1👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🤯 Редактор ландшафтів на основі сплайнів. Як вам таке?

✈️ Gamedev | [Джерело] | #натхнення
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥184👍3❤‍🔥2🥰1
📱 Valve заборонила рекламу скінами, кейсами та гемблінг‑сайтів на турнірах!

Цього тижня гучних новин не було, або я не побачив, тому тримайте приємно-чілову (сподіваюсь) новину:

Valve оновила правила проведення турнірів та ліцензію для використання своїх ігор у кіберспорті і тепер на всіх офіційних подіях (як рейтингових, так і нерейтингових):

заборонена реклама сайтів з відкриттям кейсів, торгівлею скінами та скін‑гемблінгом,

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

організатори не можуть приймати спонсорів, чиї доходи базуються на порушенні угод Valve/Steam.

Це велике оновлення для CS2‑сцени: багато команд вже прибрали подібні спонсорські логотипи перед останніми великими турнірами.

👉 Заборона має посилити контроль над використанням IP Valve та вплинути на фінансування турнірів і команд.

✈️ Gamedev | #новини #Valve #CS2 #кіберспорт #гемблінг #скіни
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍2😁1👀1🤝1
Всім привіт 👋

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

Можете кидати і старі проєкти)

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

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

Ще один тиждень пролетів. І ось підсумок!😁

🧊 Проблеми з фізикою? Physics Debugger допоможе!

📱 Generics у C# (та Unity)

👀 За яким критерієм саме ви обрали свій рушій?

🤯 Редактор ландшафтів на основі сплайнів

📱 Valve заборонила рекламу скінами, кейсами та гемблінг‑сайтів на турнірах!

⛓️‍💥 Прискорте гру за допомогою об’єднання мешів

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

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

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11❤‍🔥2🔥2🥰1
🌄 Камені та валуни з варіаціями

✈️ Gamedev | [Забрати] | #корисне #текстури #гори #матеріали
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4🤝21
📱 Локалізація через CSV

Всім привіт. Всі ж пам'ятають ось цей от асет? Якщо ні — раджу зазирнути, штука справді зручна 👀

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

Звучить доволі круто, правда? 🔥

Про що взагалі мова?

Мова йде про просту систему локалізації в Unity на базі CSV, яка підходить насамперед для інді-проєктів. Так, у Unity вже є офіційний Localization Package, який покриває майже всі кейси. Але інколи він здається надто важким або перевантаженим, особливо для невеликих ігор. Тому тут показано лайт-альтернативу з власними плюсами.

⚙️ Як це влаштовано під капотом:

🔹 CSV-таблиця з перекладами
Всі тексти гри зберігаються в одній CSV:

• перший рядок — назви мов;

• кожен рядок — один і той самий текст різними мовами.

0 | Ukr    | Eng       | Jap
1 | текст | text | 文章
2 | меню | settings | 設定
3 | ПКМ | RMB | 右クリック
4 | гей | hello | こんにちは


🔹 ScriptableObject як “посередник”

Вся логіка локалізації зосереджена в одному ScriptableObject, який зберігає CSV як TextAsset, один раз парсить таблицю на старті гри, пам’ятає поточну мову, віддає локалізовані рядки іншим скриптам і кешує текстові обʼєкти для автоматичного оновлення. Також це можна викликати з інших скриптів:

InitializeLocalizator(); // На старті сесії один раз парсить CSV, згадує поточну мову, нехай "Ukr"

GetStringText(2); // Повертає string з рядку 2 і стовпчику поточної мови = "меню"

FillTextObject(2, textObj); // Передає в textObj.text = "меню"; кешує textObj і рядок

ChangeLanguage("Jap"); // Перезаписує поточну мову
|
--> TranslateAllTexts(); // Усім кешованим об'єктам замінює текст (той же рядок, інша колонка).
//Те, що текстові об'єкти в кеші, дозволяє тут же міняти і їх шрифт, наприклад, якщо потрібні ієрогліфи*

*А тут згадаємо ще один пост: як бути, якщо CJK шрифти не відображаються

Поки ви сидите в шоці і думаєте наскільки це геніально, просто і круто - розкажу вам як це інтегрувати у свій проєкт:

1. Заповнити таблицю своїми текстами і перекладами

2. Де Start() > дописати виклик InitializeLocalizator

3. Підв'язати метод ChangeLanguage до кнопок, що міняють мову

4. При спавні тексту > викликати для нього FillTextObject, щоб він далі сам перекладався і міняв шрифт

5. Якщо потрібно просто брати значення > викликати GetStringText

Надійніше вести стовпець в таблиці з текстовими ключами, щоб звертатись до рядків по ним, а не по індексам:
using LocalizationSystemMini;

[SerializeField] private InputStringsScriptableObject textStrings;

var hi = textStrings.GetStringTextByKey("hi_key");
var userName = "..."; // Ім`я гравця

textObj.text = $"{hi}, {userName}!";

// За потреби можна оновити шрифт вручну. Актуальний береться зі списку мова-шрифт, який розробник складає в скриптабл об'єкті
textObj.font = textStrings.GetCurrentFont();

Таким чином код буде мати доступ до локалізованого тексту, і виводити його на сцену.

Щоб додати мову й відредагувати переклади, достатньо відкрити CSV. Так можна перекласти цілий стовпець, пропустивши його через перекладач (або наш любимий ШІ). Або працювати з локалізаторами, у яких немає доступу/пристрасті до інспектора)

🎁 В джерелі можна завантажити .unitypackage, взяти собі в проект готову структуру таблиці + скриптабла, одразу додати щось в CSV і спробувати викликати в коді. Система вже передбачає збреження мови між сесіями, підтримку шрифтів для різних мов і ще деякі цікаві фічі.Наприклад, переклади з плейсхолдерами {var}, розкиданими по тексту залежно від порядку слів у мові.

А що ви думаєте про такого роду підхід? Або якому ви би надали перевагу?

✈️ Gamedev | [Забрати] | #корисне #локалізація #переклад #localization
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4❤‍🔥3
Ого, нас уже 600! 🎉
Вітаю всіх і дякую кожному з вас. Я справді дуже ціную нашу з вами спільноту.

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

Дякую, що ви тут 💙
🎉27👏5🔥4👍3
📱 Unity знову може змінити правила гри

Більшості, якщо не всіх, це не буде стосуватися. Тому не переживайте 😅

Unity МОЖЕ запровадити нове щорічне мінімальне фінансове зобов’язання для клієнтів рівня Enterprise. Йдеться про суму від $250 000 до $2 000 000 на рік, яка буде прив’язана до валового доходу компанії за останні 12 місяців.

Згідно з листом, який Unity розіслала клієнтам цього тижня, нововведення працюватиме в межах Unity Enterprise Minimum Commitment Program. Компанії, які за умовами ліцензії зобов’язані використовувати Enterprise, мають сплачувати мінімальну суму зобов’язання на початку кожного підписного року. Ці кошти зараховуватимуться в рахунок ліцензій та сервісів підтримки Unity.

⚠️ За інформацією джерел, Unity також пригрозила відкликанням ліцензій у разі відмови від участі в програмі.
«Ми готові платити більше за ліцензію, але прив’язка плати до нашого доходу — це вже занадто. Це виглядає як шантаж», — коментує один із розробників.


📈 Нагадаємо, що з 12 січня 2026 року:

• ціни на Unity Pro та Enterprise зростуть на 5%;

• Havok Physics for Unity більше не входитиме до планів Pro, Enterprise та Industry.

Після скандалу з Runtime Fee Unity обіцяла повернути довіру спільноти, однак нові кроки знову викликають питання: чи не перетворюється рушій на “податок з доходу” для розробників?

✈️ Gamedev | #новини #Unity #gamedev
Please open Telegram to view this post
VIEW IN TELEGRAM
👀17🤬4🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
🚦 Рендер 3D-моделей з 2D-сортуванням і 2D-освітленням

Чомусь згадав одну гру... Не можу згадати назву 🤔

✈️ Gamedev | #туторіал #3D #2DRendering #2DLighting
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1042👏1
Маленька дискусія на кінець робочого тижня 🤔

Привіт
, народ! 👋

Пам’ятаю, вже була невелика дискусія на цю тему, але цікаво почути вашу думку безпосередньо зараз.

Чи можна вважати ігри мистецтвом?

Думка автора — так.

Так, можливо, є різниця між грою, створеною суто для заробітку, і грою, в яку автор вкладає ідею. Але питання — чи заробіток є головною ціллю?

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

Цікаво почути вашу думку 👇

#запитання
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍2🤔2🥰1
Всім привіт 👋

Трохи пізно, але стало цікаво чи буде більше активу, якщо кидати перед сном, коли більшість зараз грають якусь Civilization V і в теорії можуть кинути якийсь скрін))

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

Можете кидати і старі проєкти)

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

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

Ще один тиждень пролетів. І ось підсумок! 😁

📱 Локалізація через CSV

🚦 Рендер 3D-моделей з 2D-сортуванням і 2D-освітленням

📱 Unity знову може змінити правила гри

🤔 Маленька дискусія на кінець робочого тижня

🌄 Камені та валуни з варіаціями

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

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

✈️ Gamedev | [Підтримати канал тут]
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9🤣3👍211