«Смертна кара» — щоденник розробки #2

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

Усі ми любимо ігри з відкритим світом. Наша гра, «Смертна кара» теж його матиме. Але великий світ ставить багато технічних запитань.

Якщо подивитися на гру в wireframe режимі, то можна побачити, що світ складається з трикутників. Безлічі трикутників. Кожний з яких треба описати. Для кожного з них потрібно декілька бітів пам’яті. Страшно уявити, скільки потрібно її, щоби описати наш світ площею понад 8 квадратних кілометрів =) То як же це обійти? Для цього найдоцільніше використати процедурну генерацію. Суть у тому, що самого ландшафту немає. Є тільки певний алгоритм, який описує, як відображати його.

Математикою запахло?

Хто ще не закрив сторінку, можу втішити. Конкретно для ландшафту математики майже не потрібно. Увесь ландшафт можна процедурно генерувати за допомогою мапи висот.

Такої чорно-білої картинки, де чорний колір — це долина, а білий — верховина. Відповідно сірий колір — це щось проміжне. І в залежності від відтінку, можна обчислити нальоту висоту кожної точки. Таким чином, наш ландшафт займає усього якихось 124 Мб. Понад те, немає обмеження у формі. Головне задати, яка висота — білий колір, а яка — чорний.

Більше оперативки їсть тільки хром!

Згенерувати світ — не проблема. А от рівень зберігатися буде саме в оперативній пам’яті. А це ще гірше, ніж на жорсткому диску, адже оперативки в рази менше. У такому випадку наш ландшафт не має завантажуватися увесь. А має генеруватися тільки декілька метрів навколо. Аби так було, потрібно просто розбити велику картинку на багато маленьких. Таким чином можна дуже легко завантажувати кожну під рівень, та процедурно його генерувати, а коли відходиш на достатню відстань — просто вилучати його.
Оце й усе, що слід сказати про ландшафт. У наступному випуску буде цікава тема про текстури і шейдери. Та де ж ховається „мильце“. Хочеться спитати, чи подобається такий формат статей чи можливо варто щось змінити?

Також будемо раді за підтримку проекту в Steam Greenlight!

«Смертна кара» — щоденник розробки #1

Будеркевич Іван

Predator та Nitro роблять ігрові світи напрочуд реальними: Acer представляє свої ігрові флагмани на Computex 2026

Ігрові ноутбуки, портативні консолі та справжні монстри з GeForce RTX 50 для безкомпромісного ґеймінґу: 2-6…

13 години

Розумна міська мобільність: Acer представляє розумний підключений електротранспорт на Computex 2026

На виставці Computex 2026 компанія Acer представляє широкий асортимент електровелосипедів і електросамокатів та сумісне уніфіковане…

14 години

11 ігор на двох, які перевірять ваші стосунки

Колись спільна гра перед одним телевізором асоціювалася з Mortal Kombat та Need for Speed. Проте…

15 години

Вийшов трейлер фільму “Натиск”… І дещо дуже нагадує

Новий бойовик жахів (як ще це назвати?) від A24 "Натиск" (Onslaught) за режисурою Адама Вінґарда…

18 години

Творець Mewgenics i The Binding of Isaac образився на українських гравців

Інді-розробник Едмунд Мак-Міллен, відомий за Super Meat Boy, The Binding of Isaac і нещодавньою Mewgenics…

2 дні

Call of Duty: Modern Warfare 4 не матиме “клоунських” скінів, обіцяють розробники

Скіни найдивніших персонажів стали вже рутинними для Call of Duty, але схоже франшиза збирається повертатись…

2 дні

This website uses cookies.