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

Зв’язок: @DevAndrew

Анти-скам бот: @IndieSafeBot
Download Telegram
😅 Unity знову сипле новинами! [Детальніше]

Щойно ми встигли ознайомитися з Unity 6.2, уже тестується 6.3, а тим часом команда підготувала перший список breaking changes для Unity 6.4.

Що планують змінити 👇

🔹 UI Toolkit:
UxmlFactory/UxmlTraits остаточно йдуть у минуле. Нові елементи треба створювати через [UxmlElement] та [UxmlAttribute].

🔹 SRP Volumes:
Тепер Physics не обов’язкова залежність для SRP Core, URP і HDRP. Зміни торкнуться Local Volumes, а інтерфейс IVolume прибрали — використовуйте VolumeGizmoDrawer.

🔹 OnDisable для всієї ієрархії:
Object.Destroy() тепер викликає OnDisable() навіть для «внуків» об’єкта, а не лише для нього й прямих дітей.

🔹 SRP Compatibility Mode:
Його вирішили прибрати назавжди. Кастомні рендер-паси доведеться переводити на Render Graph.

👉 Це ще не весь список, бо Unity обіцяє оновлювати його до старту бети 6.4. Будемо слідкувати 🫡

💻 Gamedev | #новини #Unity #Gamedev #Unitynews
7🤔3
This media is not supported in your browser
VIEW IN TELEGRAM
Як відключити колізії гравця зі своїми кулями 💥

💻 Gamedev | #туторіал #collider #зіткнення
6🔥3👍2
📊 Відгуки і рейтинги = продажі ігор

Дані за 2024–2025 роки показують: чим вищий рейтинг та більше позитивних відгуків – тим вищі продажі ігор на всіх платформах (А буває інакше?)

🔹Steam [Джерело]

На Steam кількість і зміст відгуків прямо впливають на конверсії та видимість. За даними GameDiscoverCo з травня 2024 року, середні ігри з високим рейтингом суттєво краще конвертують свій лист очікування у фактичні продаж

Ігри з рейтингом «Overwhelmingly Positive» (> 95%) продаються в рази краще: зі 100 тис. вішлістів виходить близько 51 тис. продажів. Натомість «змішані» (< 70%) відгуки різко знижують конверсію, тоді як «Mostly Positive» і вище дають сигнал гравцям, що гра безпечна для покупки.

🔹Google Play (Android) [Джерело]

На Google Play рейтинг напряму впливає на рішення: близько 79% користувачів перевіряють його перед завантаженням, а 77% узагалі не встановлюють ігор із оцінкою нижче трьох зірок. Високі ж рейтинги значно підвищують довіру і конверсію.

А як щодо алгоритмів? Алгоритм Google Play враховує рейтинги й відгуки поряд з іншими сигналами, тож високий середній бал (особливо 4.5–5★) покращує позиції в пошуку та підвищує конверсію. Одночасно Google відсіює спам і фейкові коментарі, тому розробники мають просити оцінки лише «етично» — через вбудовані запити, без винагород.

🔹App Store (iOS)

В App Store ситуація подібна до Google Play: більшість користувачів орієнтуються на відгуки й рейтинг, і оцінка нижче 4★ різко знижує шанси на встановлення.

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

📌 І підсумовувати не потрібно, бо і так всім зрозуміло, що відгуки/рейтинг = продаж. А ось алгоритми вже цікавіше 🧐

💻 Gamedev | #запитання #статистика #маркетинг #оцінка #рейтинг
4👍2🔥1
🌀 State Machine: що це і як працює

State Machine – це шаблон проектування, який описує поведінку об’єкта через набір станів та переходів між ними.

Простіше кажучи, у будь-який момент об’єкт перебуває лише в одному стані, а події чи умови визначають перехід в інший стан (Аніматор? 😅)

Навіщо потрібна FSM у геймдеві

Без FSM доводиться писати безліч if-else та тримати купу булевих прапорців. Результат? Код стає заплутаним і важко підтримуваним. FSM дозволяє:
Чітко розділити логіку по станах.
Легко додавати нові стани та переходи.
Зменшити дублювання коду.
Робити поведінку персонажів і систем прозорою.

🔹 Де використовується?

1. AI ворогів та NPC: стани «патрулювання», «переслідування», «атака». Перехід між ними відбувається за подіями (наприклад, гравець з’явився в полі зору).

2. Ігрова логіка (Game State): меню, гра, пауза, завершення рівня. Перехід відбувається за подіями (кнопки, завершення рівня).

3. Анімації: Animator Controller – це стейт-машина для анімацій. Через StateMachineBehaviour можна запускати код при вході/виході з анімаційного стану.

4. UI: перемикання між меню, налаштуваннями, екраном гри. Кожен стан відповідає певному екрану або панелі.

🔹 Приклад базової FSM у Unity (C#)
using UnityEngine;

// Базовий клас стану як ScriptableObject
public abstract class State : ScriptableObject
{
public virtual void Enter(GameObject owner) { }
public virtual void Update(GameObject owner) { }
public virtual void Exit(GameObject owner) { }
}

// Приклад стану: Idle
[CreateAssetMenu(menuName = "FSM/States/IdleState")]
public class IdleState : State
{
public override void Enter(GameObject owner) => Debug.Log("Idle: Enter");

public override void Update(GameObject owner)
{
// Тут можна перевіряти умови переходу
// Наприклад, якщо бачимо гравця — переходь в Patrol
var fsm = owner.GetComponent<StateMachine>();
if (fsm.SeePlayer())
{
fsm.ChangeState(fsm.patrolState);
}
}

public override void Exit(GameObject owner) => Debug.Log("Idle: Exit");
}

// Приклад стану: Patrol
[CreateAssetMenu(menuName = "FSM/States/PatrolState")]
public class PatrolState : State
{
public override void Enter(GameObject owner) => Debug.Log("Patrol: Enter");

public override void Update(GameObject owner)
{
// Логіка патрулювання
}

public override void Exit(GameObject owner) => Debug.Log("Patrol: Exit");
}

// Контролер FSM
public class StateMachine : MonoBehaviour
{
[Header("States (ScriptableObjects)")]
public State initialState;
public State patrolState; // задаємо через інспектор

private State currentState;

void Start()
{
if (initialState != null)
{
currentState = initialState;
currentState.Enter(gameObject);
}
}

void Update()
{
// Виклик логіки стану
currentState?.Update(gameObject);
}

void FixedUpdate()
{
// Якщо стан пов'язаний з фізикою, тут можна викликати додаткові методи
// Наприклад: currentState?.FixedUpdate(gameObject);
}

public void ChangeState(State newState)
{
currentState?.Exit(gameObject);
currentState = newState;
currentState?.Enter(gameObject);
}

// Приклад умови переходу
public bool SeePlayer()
{
// Тут простий приклад перевірки
}
}
//ScriptableObject станів не зберігає локальні дані для конкретного об'єкта

Кожен стан має методи Enter, Update, Exit. Контролер викликає їх у міру зміни стану.

📌 Best Practices

Щоб FSM працювала ефективно і сучасно, рекомендується розділяти дані та поведінку, наприклад, використовувати ScriptableObject для опису станів і переходів.

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

💻 Gamedev | #уроки #Unity #csharp #State #StateMachine #FSM
🔥62❤‍🔥11🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🧩 SpriteShape. Що це таке?

Це інструмент, який дозволяє малювати дороги, річки, гори чи будь-які криві форми не вручну, а буквально «натягувати» спрайти на лінію.

Ти ставиш точки, а Unity сама будує форму з кутів і прямих сегментів.

🔹 Як працює?
1.
Додаєш SpriteShape Profile — набір спрайтів для різних частин:
Corner (кути),
Edge (прямі частини).
2. У сцені створюєш SpriteShape Controller і малюєш криву.
3. Unity сам "натягує" спрайти по цій кривій, комбінуючи кути й прямі сегменти.

▶️ [Детальніше] 👈

💻 Gamedev | #інструменти #SpriteShape #туторіал #leveldesign
👍11🔥2🥰1
🚨 У Steam верифікована гра вкрала $150 000 у геймерів

Майже два місяці на платформі Steam продавалась безплатна гра Block Blasters — ретро-платформер із сотнями позитивних відгуків. Насправді у коді був троян, який викрадав криптовалюту з гаманців гравців.

❗️ Жертвами стали сотні користувачів. Серед них стрімер із Латвії RastalandTV, який під час благодійного стріму втратив $32 000, зібрані на лікування від саркоми.


Дослідники з’ясували, що шкідливе ПЗ крало дані входу в Steam, IP-адреси та доступ до криптогаманців. Загалом втрати склали понад $150 000.

🔒 Якщо ви встановлювали Block Blasters то терміново:
змініть паролі Steam;
перенесіть криптовалюту на нові гаманці.

Valve поки офіційно не прокоментувала інцидент.

💻 Gamedev | #новини #valve #Steam #криптовалюта #шахрайство
🤯10👀3❤‍🔥11👍1
Retro synth - 80/90's / Три безкоштовних трека 💿

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

Особисто мені подобається такий стиль. А що ви думаєте 👇

💻 Gamedev | #корисне #аудіо #retrowave #synthwave #audio
👍6🔥2🥰2
🎯 Чи працює реклама через інфлюенсерів для інді-ігор?

Так! І часто навіть ефективніше, ніж класична реклама.

Наприклад, у кейсі Kickstarter-кампанії інді-гри Infinity Heroes маркетинг через інфлюенсерів забезпечив 245% повернення інвестицій [Джерело]

📊 ROI (Return on Investment — окупність інвестицій) у рекламі через інфлюенсерів може бути значно вищим: у середньому бренди отримують у кілька разів більшу віддачу, ніж від банерів чи звичайних оголошень. Для інді-ігор це особливо важливо, бо бюджети обмежені.

Навіть невеликі канали з аудиторією у 10–100 тисяч підписників (хіба це невеликі?) часто показують кращу залученість, ніж великі «зірки».

Загалом 70% брендів визнають, що найвищий ROI вони отримують від співпраці з творцями контенту [Джерело]

🔥 Де це працює найкраще:

Twitch — прямий контакт із геймерською аудиторією.
YouTube Gaming — довготривалі відео, які продовжують приносити гравців навіть через місяці.
TikTok — всі ж бачили відео з історіями з reddit-а, а на фоні була якась гра?

‼️АЛЕ...
Якщо говорити про небезпеки, то дуже багато «інфлюенсерів» мають накручену аудиторію, тому виходить ви платите за цифри.

Наприклад, у 2019 році бренди втратили близько $1,3 млрд через фейкові підписки [Джерело]

📌 Головне підібрати перевіреного блогера, у якого є жива аудиторія, що реально цікавиться іграми.

💻 Gamedev | #запитання #реклама #інфлюенсери #marketing #маркетинг
7👍2🔥21
💾 Коротке нагадування що до Texture Compression

Хоча зараз не 90-ті, коли для одного грибочка в Mario доводилося відзеркалювати ту саму текстуру, аби зекономити пам’ять, все ж не забуваємо про стиснення текстур 🍄

🔹Max Size — завжди підбирайте під реальну потребу. Іконці не треба 4K, 256×256 вистачить.
🔹Compression (Low / Normal / High) — впливає лише на вигляд текстури, а не на пам’ять. Low = швидше компресія, High = краще виглядає.

Не забувайте про Filter Mode:
Point — для піксель-арту.
Bilinear / Trilinear — для плавності, але вони трішки більше навантажують GPU.

📌А якщо вже зовсім скрутно — використовуйте відзеркалення, як у Mario, але в основному важливо просто міняти Max Size🍄

💻 Gamedev | #оптимізація #текстури #стиснення #compression
🔥10😁321
Всім привіт! 👋

Давніше хотів запустити цю рубрику — SCREENSHOT SATURDAY

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

Хочу, щоб це стало маленьким місцем для натхнення, підтримки та обміну ідеями. 🚀

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

💻 Gamedev | #ScreenshotSaturday
11👍3🤝1
💭 Observer: як об’єкт може шепотіти всім іншим

Уяви: один об’єкт щось робить, а інші автоматично реагують. І при цьому ніхто ні на кого не прив’язаний прямо. Це і є Observer (Спостерігач).

🧩 Що це?
Observer дозволяє одному об’єкту (subject) “повідомляти” інших про зміни стану без жорстких залежностей.

Наприклад:
Гравець отримав очки → UI оновлює рахунок
Машина перетнула фініш → спрацьовує анімація та звук
Хтось натиснув кнопку → активуються всі підписані елементи

Головна ідея: предмет знає тільки про подію, а не про тих, хто слухає.

⚡️ Як це працює в Unity/C#
В C# це реалізується через делегати та події (event / Action):
public class Subject : MonoBehaviour {
// подія з делегатом Action
public event Action OnSomethingHappened;

public void DoSomething() {
// безпечний виклик (якщо немає підписників, нічого не станеться)
OnSomethingHappened?.Invoke();
}
}

public class Observer : MonoBehaviour {
[SerializeField] private Subject subject;

void OnEnable() {
if (subject == null) {
Debug.LogWarning($"{name}: subject не встановлено, підписка пропущена.");
return;
}
subject.OnSomethingHappened += HandleEvent;
}

void OnDisable() {
if (subject == null) return;
subject.OnSomethingHappened -= HandleEvent;
}

private void HandleEvent() {
// реакція спостерігача
}
}


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

Це додає гнучкості для UI та архітектури. Крім того, таку систему легко тестувати окремими компонентами.

⚠️ Мінуси: доводиться вручну налаштовувати підписку та відписку, і спостерігачі все одно потребують посилання на джерело події.

У великих сценах, де подій багато, це може трохи впливати на продуктивність.

📌 Якщо доволі багато подій то краще профілювати їх

✈️ Gamedev | #уроки #observed #слухач #ObserverPattern #csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍2❤‍🔥1
🚀 ШІ для піксель-арту / PixelLab

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

🔹 Можливості PixelLab:
Генерація спрайтів із текстового опису
Редагування готових картинок
Створення тайлсетів, сцен і анімацій
Підтримка API для автоматизації

▶️ [Переглянути] 👈

📌 Є безкоштовна версія. Хоча є обмеження по розміру зображень та кількості запитів, але її цілком вистачає для тестування та перших проєктів.

✈️ Gamedev | #інструменти #PixelArt #Aseprite #ArtTools #SpriteArt
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👍3👎2
💥 БОМБА в ігровій індустрії! [Інфа]

Electronic Arts офіційно продали за $55 млрд (це друга найбільша угода в історії геймінгу після покупки Activision Blizzard). Новими власниками стали інвестфонди з Саудівської Аравії, США та Silver Lake.

🇸🇦 Саудівська Аравія активно скуповує геймдев і кіберспорт, і тепер отримала ще один величезний актив...

EA повністю йде з біржі та стає приватною компанією. Частину угоди покриють кредитами, через що експерти хвилюються: компанія може зробити ставку лише на свої найприбутковіші серії: EA FC, Madden та Battlefield.

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

Чи отримаємо ми нову епоху EA, чи ще жорсткіший донат у всіх іграх?

✈️ Gamedev | #новини #EA #Gaming #EAFC26 #Saudi #news
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯93👏2
Як не втратити друзів і правильно поділити прибуток з гри 🤑

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

🔹 Як ділити дохід?

1. Рівні долі 50/50, 33/33/33 тощо. Підходить, якщо внесок усіх приблизно однаковий.

2. Пропорційно часу — фіксуєте відпрацьовані години (через трекери), після релізу ділите дохід відносно затраченого часу.

3. За ролями і внеском — програміст 45%, дизайнер 35%, композитор 20% (або інші пропорції). Можна комбінувати з компенсацією витрат.

4. З урахуванням виходу з команди — якщо хтось іде до релізу, він втрачає частину чи весь відсоток (суперечливий варіант, домовляйтеся окремо).

🔹 Юридичне оформлення

Найзручніший варіант в Україні це ФОП 3-ї групи. Це дозволяє офіційно отримувати виплати від Google Play, App Store чи Steam.

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

• Податки:
5% від усього доходу (без віднімання комісій Steam/Google/Apple).
ЄСВ ≈ 1500 грн/міс, навіть якщо прибутку немає.
– Кожен ФОП самостійно відповідає за сплату своїх податків.

📌 Приклад:
Якщо ви продали гру на $100 через Steam, Steam забере 30% ($30). На рахунок ФОПа прийде $70. Але податок 5% рахується від $70.

🔹 Платформи та комісії

Google Play$25 реєстрація, 15% до $1 млн/рік, далі 30%.
App Store$99/рік, комісія 30%, для малих розробників 15%.
Steam$100 за гру, 30% з продажів.

Як зберегти дружбу?

Ключ до нормальних відносин у команді — домовлятись про все заздалегідь. Обговоріть ролі, відсотки та умови ще на старті, а не «по ходу». Обов’язково закріпіть домовленості письмово: договір, меморандум або навіть звичайне листування.

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

🗣 Розкажіть про свій досвід, або поділіться власними думками у коментарях 👇

✈️ Gamedev | #запитання #gamedev #фінанси #податки #гроші
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥13👍42💯1
🔮 Ефект розчинення

Шейдер, який дозволяє об’єктам красиво "зникати". Ідеально для вибухів, телепортацій чи зникнення ворогів. Реалізовано через Shader Graph.

📼 [Переглянути] 👈

Діліться враженнями в коментарях 👇

✈️ Gamedev | #туторіал #shadergrapg #dissolve #зникнення #розчинення
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥3
📱 Оптимізація ігор на старих телефонах

На потужних ПК твоя гра може літати, але на старих смартфонах навіть простий проект починає задихатися. Ось кілька базових правил, які реально допомагають тримати FPS стабільним 👇

🎯 Draw Calls
Намагайся тримати кількість викликів малювання до ~150.
Якщо перевищуєш 170+, на старих пристроях FPS починає падати.

Текстури та UI
Використовуй ручні атласи: замість десятків картинок — одна велика текстура. Також обирайте правильно форматування.

Також для статичних моделей можна застосувати техніку об’єднання: всі нерухомі 3D об’єкти комбінуються в одну велику сітку. Але варто бути обережним, бо це збільшує розмір скомпільованого файлу.

Також важливе видалення непотрібних граней, та імпорт в середній якості (якщо якість дозволяє).

📦 Static Batching
Вже всім відома і заїжджена тема. Для об’єктів, які ніколи не рухаються, став галочку Static. Це дозволяє рушію групувати їх і зменшувати draw calls.

💡 Освітлення та постобробка
Запхав їх в одну категорію так як до них просто одна порада - як можна менше та обережніше у використанні 😉

👉 [Детальніше] 👈

📌 В принципі, це базові правила оптимізації для старих телефонів. Акуратніше з PostProcesing 😉

✈️ Gamedev | #оптимізація #unity #batching #postprocessing #optimization
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103👍21
📱 Поляки хочуть влаштувати революцію в Steam? [Інфа]

Заспокойтесь, ніхто не будує барикади під офісом Valve. Але привід для бунту є 🧐

👉 Виявляється, Steam досі рахує регіональні ціни за курсом 2022 року. Через це ігри у деяких країнах вартують на 20–40% дорожче, ніж мали б.

💸 Приклад: Metal Gear Solid Delta: Snake Eater
США — $69.99
Польща — 369.99 zł (≈ $101 по сьогоднішньому курсу)
Україна — ₴1475 (≈ $35 🤯)

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

Valve поки що мовчить і живе «за законами 2022-го», але геймери вже масово скаржаться.

✈️ Gamedev | #новини #steam #ринок #ціни #valve #економіка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👀61👍1
Media is too big
VIEW IN TELEGRAM
❤️‍🔥 Контурні шейдери для Unity (URP, Shader Graph)

Розробник поділився готовим пакетом шейдерів: просто завантажуєте, відкриваєте проєкт у Unity 6+ і додаєте свої 3D-моделі. Контури з’являться автоматично‼️ | [Більше...]

✈️ Gamedev | #корисне #шейдер #shader #URP #ShaderGraph #3D
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍53