Ізометрична графіка у відеоіграх

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Графіка у відеоіграх

Ізометрична графіка у відеоіграх — графіка, що використовується у відеоіграх і піксельній графіці і відноситься до того чи іншого виду паралельної проєкції, але змінює кут огляду створюючи тривимірний простір, що робить видимими деталі оточення, які інакше не було б видно з перспективи зверху вниз або збоку. Незважаючи на назву, ізометрична комп’ютерна графіка не обов’язково є повністю ізометричною, тобто кути між проєкцією осей X, Y та Z не обов’язково становлять 120°. Замість цього використовуються довільні кути, серед яких диметрична проєкція та співвідношення 2:1 пікселів є найпоширенішими. Терміни 2.5D і псевдо-3D також використовуються, хоча ці терміни можуть мати дещо інші значення в інших контекстах.

Ізометрична проєкція стала менш поширеною з появою більш потужних систем 3D-графіки, однак відеоігри з використанням ізометричної проєкції, особливо рольового жанру, відродилися останніми роками на сцені інді-ігор.[1][2][3]

Загальна інформація[ред. | ред. код]

Кути повороту 3D-камери для чистої ізометричної проєкції (ліворуч) і форма диметричної проєкції, що використовується у відеоіграх (праворуч).[4]
Ізометричне зображення куба, де кути, що розділяють осі X, Y і Z мають однакову величину у 120°, а також однакову довжину кожного з ребер куба.
Диметрична проєкція, яка використовується у відеоіграх. Лише два кути, розділяючі осі X, Y і Z однакові, і лише деякі довжини ребер куба рівні.

Переваги[ред. | ред. код]

У відеоігровій індустрії і піксельному мистецтві ця техніка стала популярною завдяки легкості, з якою двовимірна графіка на основі спрайтів і тайлів може відображати тривімірне ігрове середовище. Оскільки паралельно спроєктовані об’єкти не змінюють розмір під час руху, комп’ютеру не потрібно масштабувати спрайти чи виконувати складні обчислення, необхідні для імітації візуальної перспективи. Це дозволило 8-бітним і 16-бітним ігровим системам (а нещодавно портативним і мобільним системам) швидко й легко відображати великі ігрові зони.

Крім того, хоча це не обмежується суто ізометричною графікою, пре-рендерена 2D-графіка може мати вищу точність і використовувати більш просунуті графічні техніки, ніж це можливо на загальнодоступному комп’ютерному обладнанні, навіть із апаратним прискоренням 3D.[5] Подібно до сучасних CGI, які використовуються у кінофільмах, один раз пре-рендерену на суперкомп’ютері або рендер-фермі графіку, можна потім відтворити багато разів на менш потужному апаратному забезпеченні телевізорів, планшетів та смартфонів. Це означає, що статична пре-рендерена ізометрична графіка часто виглядає краще її сучасних відтворених в реальному часі аналогів.[2]

Використання ізометричної або псевдо-ізометричної перспективи у відеоіграх має переваги і в самому ігровому процесі. Наприклад, у порівнянні з іграми, у перспективі зверху вниз, вони додають третій вимір, відкриваючи нові можливості для взаємодії з ігровим середовищем, що стало однією з ключових особливостей жанру платформерів. По-друге, порівняно з відеоіграми у перспективі від першої чи третьої особи, ізометрична перспектива дозволяє легше контролювати велику кількість ігрових об'єктів, наприклад партію персонажів у рольовому жанрі або мільйонну армію у стратегіях в реальному часі. У наш час відродження ізометричної проєкції є не лише джерелом ностальгії, а і результатом реальних, відчутних переваг ігрового дизайну.[1]

Недоліки[ред. | ред. код]

Деякі недоліки пре-рендереної ізометричної графіки полягають у тому, що, оскільки роздільна здатність дисплея та співвідношення сторін дисплея продовжують розвиватися, статичні 2D-зображення потребують відповідного ре-рендерингу, щоб уникнути ефектів пікселізації. Ре-рендеринг гри не завжди є можливою опцією. Наприклад, у 2012 році, коли Beamdog працювали над ремейком Baldur's Gate (1998) від студії BioWare. Beamdog не мали доступу до оригінальних художніх ресурсів використаних у розробці, що були втрачені під час повені,[6] тож студія не мала іншого вибору ніж просте масштабування 2D-графіки зі згладжуванням без повторного відтворення спрайтів гри. Результатом стала певна «нечіткість» або «змазаність» зображень порівняно з графікою оригінальної гри.

Відмінності від «справжньої» ізометричної проєкції[ред. | ред. код]

Проєкція, яка зазвичай використовується у відеоіграх, дещо відхиляється від «справжньої» ізометричної через обмеження растрової графіки. Лінії в напрямках координат X і Y не будуть слідувати чіткому піксельному візерунку, якщо їх намалювати під необхідними горизонтальними 30°. У той час як сучасні технології можуть усунути цю проблему за допомогою згладжування, комп’ютерна графіка минулих років не підтримувала достатню кількість кольорів або не мала необхідних потужностей ЦП для досягнення задовільних результатів. Натомість для малювання ліній осей X і Y використовується співвідношення 2:1 пікселів, у результаті чого ці осі зображуються під кутом ≈26,565° (arctan(sin(30°))) по горизонталі. Ігрові системи, які використовують пікселі не квадратної форми, можуть, однак, давати різні кути, включаючи «справжні» ізометричні. Тому цю форму проєкції точніше описувати як різновид диметричної проекції, оскільки лише два з трьох кутів між осями рівні між собою, тобто (≈116,565°, ≈116,565°, ≈126,870°).

Історія ізометричних відеоігор[ред. | ред. код]

Порівняння кількох видів графічної проєкції.

Хоча історія відеоігор бачила кілька тривимірних ігор ще в 1970-х роках, першими відеоіграми, які використовували чіткий візуальний стиль ізометричної проєкції в описаному вище значенні, були аркадні ігри на початку 1980-х років.

1980-ті

Використання ізометричної графіки у відеоіграх почалося з появою аркадної гри Treasure Island компанії Data East на DECO Cassette System,[7] випущеної в Японії у вересні 1981 року,[8] але вона не була випущена на міжнародному рівні до червня 1982 року.[9] Першою ізометричною грою міжнародного рівня стала Zaxxon від Sega, яка була випущена в Японії в грудні 1981 року,[10] а на міжнародному рівні — у квітні 1982 року і зрештую набула значної популярності.[11] Zaxxon — це ізометричний шутер, де гравець керує космічним літаком через скролінгові рівні. Це також одна з перших відеоігор, яка відображає тіні у ігровому світі.[12]

Іншою ранньою ізометричною грою є Q*bert.[13] Розробники Уоррен Девіс і Джефф Лі почали роботу над програмуванням концепції приблизно в квітні 1982 року, виробництво гри почалося влітку, а випущено її було в жовтні або листопаді 1982 року. Q*bert показує статичну піраміду в ізометричній перспективі, де гравець керує персонажем, який може стрибати по піраміді.[12]

У лютому 1983 року було випущено ізометричну платформенну аркаду Congo Bongo,[9] яка працювала на тому ж апаратному забезпеченні, що й Zaxxon.[14] Гра дозволяла персонажу гравця проходити ізометричні рівні без скролінгу, включаючи лазіння по тривимірним об'єктам та падіння з них. Схожі можливості були доступні в аркаді Marble Madness, випущеній в 1984 році.

У 1983 році ізометричні ігри перестали бути ексклюзивними для аркадного ринку і нарешті потрапили на домашні комп’ютери із випуском Blue Max для сімейства 8-розрядних комп'ютерів компанії Atari та Ant Attack для ZX Spectrum. У Ant Attack гравець міг вільно рухатися у будь-якому напрямку скролінгової гри, а не тільки по зафіксованому на одній осі, як у Zaxxon. Положення ігрової камери також можна було змінювати на 90 градусів.[15] Журнал Crash, нагородив Ant Attack у категорії графіки за цю нову техніку, яка невдовзі стала відома як «Soft Solid 3-D».[16]

Через рік на ZX Spectrum вийшла Knight Lore, яка загалом вважається революційною грою,[17] що визначила подальший шлях жанру ізометричних пригодницьких ігор.[18] Слідом за Knight Lore на домашніх комп’ютерах з’явилося багато ізометричних ігор – до такої міри, що в певний момент Knight Lore вважалася другою у світі за кількістю створених на її основі програм-клонів, згідно досліжденню Яна Крікке.[19] Іншими прикладами відомих ізометричних ігор були Highway Encounter (1985), Batman (1986), Head Over Heels (1987) і La Abadía del Crimen (1987).[20] Однак ізометрична перспектива не обмежувалася аркадними пригодницькими іграми, наприклад, основою ігрової механіки стратегії Populous (1989) також стала ізометрична перспектива.

Телевізор, відображений у практично ідеальній ізометрії масштабом 2:1 пікселя
3D-рендеринг, відеогри Fallout, що використовує триметричну проєкцію та гексагональну сітку

1990-ті

Протягом 1990-х років кілька успішних ігор, таких як Syndicate (1993), SimCity 2000 (1994), Civilization II (1996), X-COM (1994) і Diablo (1996), використовували фіксовану ізометричну перспективу. Але з появою 3D-рендерингу на персональних комп’ютерах та ігрових консолях, ігри, які раніше використовували 2D-перспективу, почали переходити на 3D і перспективну проєкцію. Це можна побачити в іграх-наступниках вищезазначених проєктів: наприклад, SimCity (2013), Civilization VI (2016), XCOM: Enemy Unknown (2012) і Diablo III (2012) — усі використовують тривимірну багатокутну графіку, і хоча Diablo II (2000), як і її попередник, використовувала фіксовану двовимірну перспективу, вона опціонально дозволяла перспективне масштабування спрайтів на відстані, щоб надати грі псевдо-3D ефект.[21]

Крім того, у 1990-х роках ізометричну графіку почали використовувати для японських рольових відеоігор (JRPG) на консолях, зокрема в тактичних рольових іграх, багато з яких використовують ізометричну графіку й сьогодні. Приклади включають Front Mission (1995), Tactics Ogre (1995) і Final Fantasy Tactics (1997) — остання з яких використовувала 3D-графіку для створення ігрового простору, де гравець міг вільно обертати камеру. А такі ігри як Vandal Hearts (1996) і Breath of Fire III (1997), ретельно імітували ізометричний вид, але насправді використовували перспективну проєкцію.

Infinity Engine

2D (ліворуч) і 3D (праворуч) координати типового диметричного спрайту відеоігри

Black Isle Studios і BioWare допомогли популяризувати використання ізометричної проєкції в рольових відеоіграх наприкінці 1990-х і початку 2000-х років. Ці студії використовували ігровий рушій Infinity Engine у вже ставших легендарними своїх іграх Baldur's Gate (1998), Baldur's Gate II (2000), Planescape: Torment (1999) та Icewind Dale (2000). Цей рушій отримав значну популярність серед гравців, і багато розробників відтоді намагалися наслідувати та вдосконалювати його різними способами.[1] Сам Infinity Engine також був оновлений і модернізований студією Beamdog під час розробки Baldur's Gate: Enhanced Edition (2012).

Дві інші культові гри Black Isle Studios, Fallout (1997) і Fallout 2 (1998), використовували триметричну проєкцію.

Kickstarter

Ізометрична проєкція зберігає свою актуальність і понині, особливо з випуском кількох нещодавно профінансованих краудфінансованих рольових ігор на Kickstarter.[1] Серед них серія Shadowrun Returns (2013-2015) від Harebrained Schemes, франшиза Pillars of Eternity (2015-2018) і Tyranny (2016) від Obsidian Entertainment, а також Torment: Tides of Numenera (2017) від inXile Entertainment. Обидві компанії, Obsidian Entertainment і inXile Entertainment, засновані колишніми членами Interplay Entertainment. Зокрема Obsidian, хотіли «повернути унікальні відчуття ігор Infinity Engine».[1] Заслуговують на увагу у цій темі і кілька псевдоізометричних 3D рольових ігор, таких як Divinity: Original Sin (2014), Wasteland 2 (2014) і Dead State (2014), які були профінансовані за допомогою Kickstarter в останні роки. Однак ці ігри відрізняються від наведених вище тим, що використовують перспективну замість паралельної проєкції.

Використання споріднених технік

Термін «ізометрична перспектива» часто неправильно застосовують до будь-якої гри з — як правило, фіксованим — кутовим видом зверху, який спочатку здається «ізометричним». До них належать вищезгадані відеоігри з диметричною проєкцією; ігри, які використовують триметричну проєкцію, такі як Fallout (1997) і SimCity 4 (2003); ігри, які використовують косокутну проєкцію, такі як Ultima Online (1997) і Divine Divinity (2002);[22] та ігри, які використовують комбінацію перспективної проєкції та виду з висоти пташиного польоту, такі як Silent Storm (2003), Torchlight (2009)[23] і Divinity: Original Sin (2014).[24]

Крім того, не всі «ізометричні» відеоігри покладаються виключно на пре-рендерені 2D спрайти. Існують, наприклад, ігри, які повністю використовують полігональну 3D-графіку, але відтворюють свою графіку за допомогою паралельну замість перспективної проєкції, як-от Syndicate Wars (1996), Dungeon Keeper (1997) і Depths of Peril (2007); ігри, які використовують комбінацію пре-рендерених 2D-фонів і відтворюваних у реальному часі 3D-моделей персонажів, наприклад The Temple of Elemental Evil (2003) і Torment: Tides of Numenera (2017); а також ігри, які поєднують відтворені в реальному часі 3D-фони з намальованими вручну 2D-спрайтами персонажів, наприклад Final Fantasy Tactics (1997) і Disgaea: Hour of Darkness (2003).

Узгодження віртуальних координат з фактичними[ред. | ред. код]

Узгодження координат в ізометричному просторі

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

Інший спосіб, який вимагає менших обчислень і може мати хороші результати, при використанні його для кожного кадру, базується на припущенні уявної квадратної дошки, яку було повернуто на 45°, а потім стиснуто до половини початкової висоти. Віртуальна сітка накладається на проєкцію, як показано на діаграмі, з віртуальним-X і віртуальним-Y. Вибір будь-якого тайлу на центральній осі дошки, де (X, Y) = (Ширина тайлу / 2, Y), створить однакове значення тайлу для фактичного-X і фактичного-Y, яке в даному прикладі дорівнює 3. Вибір тайлу віртуальної сітки, який знаходиться на одну позицію праворуч центральної лінії, фактично пересуває на один тайл менше у фактичному-Y і на один тайл більше у фактичному-X. Це формула, яка обчислює координату y тайла в ізометричному просторі, віднімаючи від віртуального-Y різницю між віртуальним-X центральної лінії і віртуальним-X тайла, що шукається.

Приклад коду С:

float virtualTileX = screenx / virtualTileWidth;
float virtualTileY = screeny / virtualTileHeight;

// деякі системи відображення мають початок у нижньому лівому куті, тоді як тайлова карта вгорі ліворуч, тому нам потрібно змінити Y
float inverseTileY = numberOfTilesInY - virtualTileY;

float isoTileX = inverseTileY + (virtualTileX - numberOfTilesInX / 2);
float isoTileY = inverseTileY - (virtualTileX - numberOfTilesInY / 2);

Спочатку цей метод може здатися неінтуїтивним, оскільки беруться координати віртуальної сітки, а не вихідного ізометричного світу, і між віртуальними тайлами та ізометричними тайлами немає однозначної відповідності. Тайл на сітці міститиме більше ніж один ізометричний тайл, і залежно від того, де він буде вибраний, відображатиметься в різних координатах. Ключовим у цьому методі є те, що віртуальні координати є плаваючими, а не сталими числами. Значення віртуальних X і Y можуть бути (3.5, 3.5), що означає центр третього тайлу. На діаграмі ліворуч це 3-й тайл по осі Y. Коли віртуальні X і Y = 4, фактичний-X також буде 4.

Приклади[ред. | ред. код]

Примітки[ред. | ред. код]

  1. а б в г д Signor, Jeremy (19 грудня 2014). Retronauts: The Continued Relevance of Isometric Games. VG247 (англ.). Процитовано 7 березня 2023.
  2. а б Vas, Gergo (19 березня 2013). The Best-Looking Isometric Games. Kotaku (англ.). Процитовано 7 березня 2023.
  3. Sammut, Mark (6 червня 2020). 20 Best Isometric RPGs, Ranked. TheGamer (англ.). Процитовано 7 березня 2023.
  4. Примітка: сині вектори вказують на положення камери. Червоні дуги представляють обертання навколо горизонтальної та вертикальної осей. Зверніть увагу, як на лівому зображенні вектор камери проходить через дві протилежні вершини куба.
  5. Vas, Gergo (10 травня 2013). Video Games With The Most Memorable Pre-Rendered Backgrounds. Kotaku (англ.). Процитовано 8 березня 2023.
  6. Grayson, Nathan (1 квітня 2016). The Struggle To Bring Back Baldur’s Gate After 17 Years. Kotaku (англ.). Процитовано 8 березня 2023.
  7. DECO Cassette System Games. Giant Bomb (англ.). Процитовано 8 березня 2023.
  8. Treasure Island (Game). Giant Bomb (англ.). Процитовано 8 березня 2023.
  9. а б Masumi Akagi (2005). アーケードTVゲームリスト国内•海外編(1971-2005) [Arcade TV Game List: Domestic • Overseas Edition (1971-2005)]. Japan: Amusement News Agency. ISBN 978-4990251215.
  10. Zaxxon. Sega Retro (англ.). 1 лютого 2023. Процитовано 8 березня 2023.
  11. Zaxxon - Videogame by Sega/Gremlin. www.arcade-museum.com. Процитовано 8 березня 2023.
  12. а б Perron, Bernard; Wolf, Mark J. P. (12 листопада 2008). The Video Game Theory Reader 2 (англ.). Taylor & Francis. ISBN 978-0-203-88766-0.
  13. Q*bert - Videogame by Gottlieb, D., & Co., a Columbia Pictures Industries Co. www.arcade-museum.com. Процитовано 8 березня 2023.
  14. Congo Bongo - Videogame by Sega. www.arcade-museum.com. Процитовано 8 березня 2023.
  15. Sculptin the new shape of Spectrum games. Sinclair User. December 1983. Процитовано 8 березня 2023.
  16. CRASH 1 - 3D Ant Attack. www.crashonline.org.uk. Процитовано 8 березня 2023.
  17. Ultimate Play the Game – Company Lookback. Retro Micro Games Action – The Best of gamesTM Retro Volume 1. Highbury Entertainment. 2006. {{cite web}}: Пропущений або порожній |url= (довідка)
  18. Collins, Steven. Game Graphics During the 8-bit Computer Era. Computer Graphics Newsletters. SIGGRAPH. Архів оригіналу за 9 вересня 2012. Процитовано 8 березня 2023.
  19. J. Krikke (July–August 2000). Axonometry: a matter of perspective. Computer Graphics and Applications. doi:10.1109/38.851742. Knight Lore was said to be the second most cloned piece of software after the word- processing program Word Star. {{cite web}}: Пропущений або порожній |url= (довідка)
  20. CRASH 51 - Run It Again. www.crashonline.org.uk. Процитовано 8 березня 2023.
  21. Diablo II Nears Completion As Blizzard Prepares For Final Phase Of Beta Testing. FindArticles. BNET Business Network. травень 2000. Архів оригіналу за 10 липня 2012. Процитовано 8 березня 2023.
  22. Walker, Trey (12 липня 2002). Divine Divinity goes gold. GameSpot (амер.). Процитовано 8 березня 2023.
  23. McDougall, Jaz (5 листопада 2009). Torchlight review. gamesradar (англ.). Процитовано 9 березня 2023.
  24. Hamilton, Kirk (3 липня 2014). I'm Glad They're Still Making Games Like Divinity: Original Sin. Kotaku (англ.). Процитовано 9 березня 2023.