Який 2D-ігровий движок використовувати для наступної гри

Кілька тижнів тому я писав про свій досвід, коли намагався зробити прототип у безлічі різних 2D ігрових механізмів / фреймворків, щоб дізнатись, що змушує їх ставити галочку.

Якщо ви купуєте двигун для вашої наступної 2D гри, ця стаття запропонує деякі речі, які слід врахувати, що може допомогти у вашому процесі розпізнавання.

Зверніть увагу, що я не намагаюся охопити кожен 2D-ігровий движок там; і я не позиціоную один двигун чи структуру над іншим. Ці рекомендації ґрунтуються на моєму особистому досвіді використання різних механізмів та фреймворків для створення прототипів.

І якщо ви віддаєте перевагу дивитися, а не читати, я створив відеоверсію цього допису (26-хвилинний перегляд):

Зреагуйте

На перший погляд, ви можете подумати: "React - це інтерфейс для створення інтерактивних веб-сайтів. Це не ігровий движок!" І ти був би в основному правильний.

Реагувати не забезпечує вбудовану підтримку основ розвитку гри, як, наприклад, 2D фізики, але це робить стан ручки дуже добре. Якщо ви вже розробник JavaScript і хочете з'єднати React з чимось на зразок boardgame.io, щоб зробити просту 2D-гру, ви могли б досить швидко створити і запустити прототип.

Для всіх інших типів 2D-ігор ви хочете шукати деінде.

Єдність

Єдність зробила себе повсюдною у 2D та 3D-просторах розробки ігор. Я б позиціонував його як чудовий 3D-ігровий движок, а також 2D-придатний для експлуатації.

Редактор Unity є досить складним, з великою кількістю вкладених меню, яким потрібно трохи часу, щоб обернутися головою (ознайомтесь із цією статтею для ознайомлення з його 2D-функціями). Якщо у вас ще немає фону в C #, який Unity використовує для створення сценаріїв, вам доведеться розібратися з ним перед вивченням Unity, оскільки це полегшить загальну криву навчання.

Unity також робить багато речей "важким шляхом", коли мова йде про розробку 2D-ігор, яка не відчуває себе рідною в порівнянні з іншими ігровими двигунами. Наприклад, створення двовимірного ігрового світу в Unity здається, що ви перекидаєте 2D-літак у великий 3D-простір, а такі речі, як анімація та досконалість пікселів, є більш незграбними, ніж у інших 2D-специфічних двигунах.

Ви можете зробити будь-який тип 2D-гри з Unity, якщо хочете боротися з редактором та основними 3D-ідіосинкразіями. Він має широку підтримку від громади, і ви переконаєтесь, що робота з C # - це захоплення. Крім того, Unity's Asset Store має всі види мистецтва та шаблони для завантаження та придбання, але покупець будьте обережні: ви можете витратити стільки часу на переписування чужого коду, щоб він відповідав вашому проекту, як і раніше, починаючи з нуля.

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

Годо

Godot - це безкоштовний 2D та 3D ігровий движок із відкритим кодом, який підтримує GDScript, C # і навіть C ++ та Python, якщо ви готові зробити багато важкої роботи, щоб змусити їх працювати. Він підтримує робочий процес у стилі вузла та надзвичайно легкий.

Якщо ви а) бажаєте інвестувати у вивчення GDScript або б) вже дуже добре володієте C #, C ++ або Python, вам, мабуть, буде добре в Godot, особливо якщо вам подобається працювати з програмним забезпеченням з відкритим кодом. Якщо ні, ви можете легко розчаруватися, оскільки для C # чи інших мов не існує настільки великої підтримки, як для GDScript. Тим не менше, Годо - це приємний двигун, з яким можна працювати, і хоча він може не мати такої самої родовідної та громадської підтримки, як щось на зразок Єдності, якщо ви стартуєте самостійно, то можете почуватись добре вдома.

Побудуйте 3

Якщо ви просто хочете робити 2D-ігри і вам не байдужа мова або програма для підписки, ви знайдете Construct 3, щоб мати все, що потрібно для запуску демонстраційної версії і швидко. Вся ваша робота буде виконуватися у браузері за допомогою інструментів перетягування (і спеціальна підтримка JavaScript, якщо вам це потрібно).

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

Game Maker Studio 2

Game Maker Studio 2 має зручний редактор, який підтримує власну мову, що називається, відповідно, Language Maker Language (GML), а також візуальні сценарії. У ньому також є багато навчальних посібників, велика підтримка спільноти та магазин активів (який має ті самі застереження, що й Unity, вище).

Загальний робочий процес Game Maker Studio 2, а також такі дії, як анімація спрайтів, налаштування ігрового світу тощо, є простими та інтуїтивно зрозумілими. GML може бути не вашою чашкою чаю, якщо ви походите з іншої, більш широко використовуваної мови програмування, і я не рекомендував би його як перше введення до навчання кодуванню. У ньому використовуються деякі основні концепції програмування, але не важливі деталі, такі як найкращі методи кодування або те, як писати чистий код.

Крім того, ви можете спробувати Game Maker Studio 2 із безкоштовною 30-денною пробною версією, але вам доведеться заплатити, щоб продовжувати користуватися нею після цього часу.

Фазер 3

Якщо ви хочете все закодувати та багато дізнатися про екосистему JavaScript, роблячи це, перевірте Phaser 3 (або зачекайте Phaser 4, який уже на шляху).

Phaser - це легкий і потужний фреймворк JavaScript для створення 2D-ігор. У той час як Phaser 2 був надзвичайно добре задокументований і мав чудову підтримку з боку громади, Phaser 3 - прямо протилежне. Є хороша офіційна документація та купа прикладів (без особливого контексту навколо них, це слід сказати) та жахливо невелика кількість навчальних посібників.

Розраховуйте побудувати все самостійно, але якщо ви шукаєте підтримку ES6 або TypeScript, або якщо ви дійсно хочете вдосконалити свої навички розробника JavaScript, ви зможете пройти довгий шлях із Phaser 3.

В інтересах справедливості я маю згадати два інших двовимірних ігрових двигуни, які мені рекомендували з тих пір, як я почав писати на цю тему: LÖVE 2D, який використовує Lua, та MonoGame, який підтримує C #. Я не використовував жодного з них (або інших, таких як PyGame), і не можу говорити про їх корисність, але їх, можливо, варто перевірити.

Повідомте мене, який двовимірний ігровий движок ви використовуєте, і чому!

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

М.С. Фарзан, к.е.н. писав і працював у гучних компаніях з відеоігор та редакційних веб-сайтах, таких як Electronic Arts, Perfect World Entertainment, Modus Games та MMORPG.com, а також працював менеджером спільноти для таких ігор, як Dungeons & Dragons Neverwinter та Mass Effect: Andromeda . Він є креативним директором та провідним дизайнером ігор Entromancy: A Cyberpunk Fantasy RPG та автором трилогії The Nightpath . Знайдіть MS Farzan у Twitter @sominator.