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

Автор: Будеркевич Іван

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

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

22222

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

33333

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

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

dem2_opt[1]

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

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

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

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

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

BMAC Zelda

Сподобалася публікація? Підтримай PlayUA

На платформі Buy Me a Coffee ви можете підтримати нас як одноразовим донатом, так і оформити щомісячну підписку. Усі наші підписники на Buy Me a Coffee отримують цифрові або фізичні приємнощі залежно від суми донату. Долучайтеся до нашої спільноти!

Підтримати

Останні статті

Animal Well, Senua’s Saga: Hellblade II, World of Goo 2 — Порадник Ґеймера: Травень 2024

Автор: Володимир Бортюк

hellblade 2

Топові геймерські ноутбуки з процесорами Intel Core 13-го покоління

Автор: PlayUA

intel 1920x1080 03

Пригоди новачків продовжуються. Безжальна Німеччина. Огляд третього етапу WarmUp League Spring Cup 2024

Автор: Андрій Присяжний

image 2024 04 16 19 21 00

Яскраве випробування нового автодрому. Огляд третього етапу 7DRIVE TCR Championship

Автор: Андрій Присяжний

5

Valve повернули Dust2 і зміну рук у Counter-Strike 2

Автор: Андрій Присяжний

p.ua.cs2 left hand

Як почати читати мангу

Автор: PlayUA

manga 02

Перемога вкутана пітьмою. Огляд третього етапу кубку Porsche Supercup 2024

Автор: Андрій Присяжний

p.ua.porsche supercup 2024

Міна в Counter-Strike 2 — плюси, мінуси, підводні камені

Автор: Андрій Присяжний

peter grinbergs 55 claymore4