Як дізнатися, чи потрібно використовувати ігровий движок чи ні? Хочу зробити порівняно складну 2D гру для Android. Які чинники слід зважити, щоб вирішити, чи знайти, встановити та вивчити ігровий движок або просто зробити все вручну?
Як дізнатися, чи потрібно використовувати ігровий движок чи ні? Хочу зробити порівняно складну 2D гру для Android. Які чинники слід зважити, щоб вирішити, чи знайти, встановити та вивчити ігровий движок або просто зробити все вручну?
Відповіді:
Переваги:
Більшість, якщо не все кодування зроблено саме для вас, тому все, що вам доведеться турбуватися, - це вміст, макет рівня тощо.
У зв'язку з цим, управління пам'яттю, завантаження активів, освітлення (у складних двигунах) тощо все було розроблено та випробувано ретельно (сподіваємось).
Як згадувалося нижче, якщо двигун є кросплатформенним, вам доведеться робити мало нічого, щоб не працювати, щоб перенести гру.
Недоліки:
Не допускайте того, що список недоліків довший: коли час, витрачений на кодування та тестування всіх необхідних вам систем, занадто довгий для вашого виробничого циклу, або якщо у вас є більше навичок мистецтва, ніж код, використання ігрового двигуна безумовно, гарна ідея.
Порівняння ігрових двигунів знаходиться в роботах у цьому питанні: Про та Кон з різних 3D-ігрових двигунів
У моєму випадку я витратив багато часу (місяців) на розгойдування, нічого не роблячи через ігрові двигуни. Зараз я зазвичай уникаю їх, як чума, хоча я розумію, що їх слід використовувати розумно і помірковано.
Для мене я одержимий усіма можливостями ! Дивлячись на довгий перелік функцій двигуна X, це схоже на "Вау, я міг би все це зробити! Моя гра могла бути чудовою!" Тож я завантажував би її, запускав демонстрації і був би засліплений тими функціями в дії тощо. Тоді я створив би новий проект у своєму IDE і не знав би з чого почати. Я б написав якийсь код, я міг би навчитися і базувати його на демо-проектах, але це були лише демонстрації.
Я не знав, як почати з нічого і щось зробити. Я не знав першого кроку. Мені сподобалася ідея двигуна, це мене вразило і мене вмотивувало щось зробити, але мої знання про фактичну розробку були настільки обмежені, що навіть після того, як я знав, як додати двигун до контуру збірки, і, можливо, написав кілька рядків, щоб почати двигун, а потім знову його вимкнути, крім цього я ніколи нічого не робив нічого гідного.
Я набагато більше, ніж дитина, крокова людина. Я вважаю за краще робити свою власну гру покроково, переробляючи корисні функції і збираючи ті функції в бібліотеку, яку одного дня я можу вважати "двигуном". Тож поки що я уникаю ажіотажу двигуна і просто дотримуюся матеріалів низького рівня.
І двигуни мають своє місце. Якщо ви знайдете двигун і думаєте собі: "Це саме те, що я написав би! Вони вже зробили для мене роботу, мені не потрібно винаходити колесо, і я точно знаю, як підключити його до гри що я вже почав [або принаймні повністю заплановано і готовий розпочати] ", то це, мабуть, добре підходить. Ви точно знатимете, як ним користуватися та як написати власний код, щоб використовувати двигун, щоб створити щось корисне. Але якщо ви придбали двигун просто тому, що в ньому є все, крім кухонної раковини, і ви думаєте, що стоїте на плечах гігантів, ви дуже помиляєтесь. Перед вами стоїть гігант, і вам потрібно піднятися до його плечей.
Тож величезний недолік для мене: не захоплюйтеся всіма справами, які ви могли зробити. Який би двигун ви не вибрали, він матиме багато потенціалу. Але якщо ви не знаєте, як реально використати потенціал, якщо це не полегшує ваше життя або не допоможе вам виконати свою роботу, то чому ви його використовуєте?
Найбільшим недоліком ігрового двигуна є те, що ви мусите його навчитися. Якщо ви взагалі не знайомі з програмуванням, це все ще може бути швидше, ніж навчитися писати код, щоб робити все те, що двигун обробляє для вас поза коробкою, але якщо ви досвідчені, тоді вам не потрібно сидіти. вниз і почніть кодування, але досить багато часу, щоб дізнатись про незнайомий двигун.
Найбільше, на що потрібно звернути увагу, - це підтримка, оскільки ігрові двигуни не є ідеальними, і вони не читають вашої думки, і ви в якийсь момент зациклюєтесь на ДУМКІ. Так:
Оскільки хтось, хто має багато досвіду розробки програмного забезпечення та хто лише нещодавно тільки намагався розробити гру з нуля, ось мої 2 копійки.
Поки що відповіді дали довгі списки плюсів і мінусів. Я надам те, що для мене найважливіша причина НЕ використовувати ігровий движок. Оскільки я взяв на себе завдання навчитися писати гру виключно для виклику та винагороди, я вирішив це зробити з нуля без двигуна, просто OpenGL та SDL, тому що хотів навчитисявсе вище цього рівня абстракції. На жодному етапі я не пошкодував про це рішення. Моя гра - це хороша версія прокрутки 2D Asteroids, основна, але гладка. Я не намагаюся змагатися з надзвичайно чудовими іграми, але я поширюю свою гру, і люди із задоволенням її грають. Я буду використовувати той самий підхід у створенні гри в багатокористувацьку гру. Це величезна проблема, і використання бібліотек може полегшити, але я мою ціль не зробити його легким. Моя мета - навчитися, і для мене це неповна робота, тому часу у мене не так багато, і прогрес повільний. Але в мене є свої причини такого підходу. Назвіть це "вища освіта".
Отже, дайте відповідь на власне запитання, чи хочете ви навчитися робити те, що замість цього ігровий движок робить для вас користь, яку може принести це навчання? Якщо так, не використовуйте ігровий движок.
Вам потрібно детально пояснити, що ви маєте на увазі під «складним». Хороший ігровий двигун піклується про все наступне:
Подумайте самі, я знаю, як кодувати кожне з них? Скільки часу мені потрібно буде програмувати кожен, і скільки часу знадобиться, щоб навчитися змушувати двигун робити кожне з них?
Найбільша перевага: для вас робиться багато справ. Вам не доведеться продовжувати винаходити колесо.
Ще одна перевага: ігровий движок також може бути кросплатформенним (Unity).
Недоліки? Контроль? Двигун піклується про деякі речі для вас (наприклад, візуалізація), тому якщо у нього є помилки чи проблеми з роботою, ви не можете просто виправити це самостійно.