Каковы преимущества и недостатки использования игрового движка? [закрыто]


28

Как узнать, стоит ли использовать игровой движок? Я хочу сделать относительно сложную 2D-игру для Android. Какие факторы мне стоит взвесить, чтобы решить, нужно ли искать, устанавливать и изучать игровой движок или просто делать все вручную?


Не уверен, что игровой дизайн - лучший тэг, здесь; но двигатель был в черном списке. Этот вопрос, вероятно, следует просто удалить.
Гнемлок

Ответы:


25

Преимущества:

  • Большая часть, если не вся кодировка, сделана для вас, так что вам нужно беспокоиться только о содержании, разметке уровней и т. Д.

  • В соответствии с этим, управление памятью, загрузка ресурсов, освещение (в сложных движках) и т. Д. Были разработаны и тщательно протестированы (надеюсь).

  • Как упомянуто ниже, если движок кроссплатформенный, вам придётся практически ничего не делать, чтобы портировать свою игру.

Недостатки:

  • Если вы что-то модифицируете, теперь вам нужно ознакомиться с новой кодовой базой.
  • Если в движке есть ошибка, если она не с открытым исходным кодом, вы не можете ее исправить.
  • Движок не был разработан специально для вашей игры, поэтому он может быть менее эффективным, чем код, который вы пишете специально для вашей игры.
  • Игровые движки обычно не бесплатны.
  • Если игра небольшая, накладные расходы на использование движка могут не стоить затраченного времени на написание кода самостоятельно.
  • Если в вашем игровом движке также есть какие-либо редакторы или инструменты, вам придется их создавать и тестировать, прежде чем передавать их художникам или полагаться на них самостоятельно.

Не позволяйте факту, что список недостатков длиннее: когда время, потраченное на кодирование и тестирование всех систем, которые вам нужны, слишком велико для вашего производственного цикла, или если у вас больше навыков в искусстве, чем в коде, использование игрового движка безусловно, хорошая идея.

В этом вопросе приводится сравнение игровых движков: плюсы и минусы различных игровых движков 3D


3
В целом, это довольно хороший ответ, но я нахмурился в самом первом предложении. Я настоятельно рекомендую изменить формулировку «Большинство, если не все кодирование, сделано для вас» на «Большая часть кодирования низкого уровня сделана для вас»; вводить в заблуждение до такой степени, что безответственно увековечивать миф о том, что «сделайте игру без программирования!»
Джокинг

Кроме того, движок может ограничить то, что вы можете сделать легко - например, почти многие не поддерживают изменяемую местность в стиле Minecraft или Dwarf-Fortress. Это хорошо для игр, которые не нуждаются в этом, но удачи в создании клона Minecraft с одним.
user253751

15

В моем случае я провел много времени (месяцы), барахтаясь вокруг, ничего не делая из-за игровых движков. Теперь я обычно избегаю их как чумы, хотя понимаю, что их следует использовать с умом и в меру.

Для меня я был бы одержим всеми возможностями ! Глядя на длинный список функций в движке X, это похоже на «Ух ты, я мог бы сделать все это! Моя игра могла бы быть великолепной!» Поэтому я загружал его, запускал демонстрации и был поражен этими функциями в действии и т. Д. Затем я создавал новый проект в своей IDE и не знал, с чего начать. Я написал бы некоторый код, я мог бы поучиться и основывать его на демонстрационных проектах, но это были просто демонстрации.

Я не знал, как начать с нуля и что-то сделать. Я не знал первый шаг. Мне понравилась идея движка, она произвела на меня впечатление и заставила меня что-то делать, но мои знания о реальной разработке были настолько ограничены, что даже после того, как я узнал, как добавить движок в путь сборки, и, возможно, написал несколько строк для запуска двигатель, а затем снова его выключить, кроме того, я никогда не делал ничего стоящего.

Я гораздо больше похож на маленького шага. Я предпочел бы делать свою собственную игру по одному шагу за раз, реорганизуя полезные функции и собирая эти функции в библиотеку, которую однажды я мог бы считать «движком». Поэтому пока я избегаю ажиотажа двигателя и просто придерживаюсь низкоуровневых вещей.

И двигатели имеют свое место. Если вы найдете двигатель и подумаете про себя: «Это именно то, что я написал бы! Они уже сделали за меня работу, мне не нужно изобретать велосипед, и я точно знаю, как подключить его к игре». что я уже начал [или, по крайней мере, полностью запланировал и готов начать] », тогда это, вероятно, хорошо подходит. Вы будете точно знать, как его использовать и как написать свой собственный код, чтобы использовать движок для создания чего-то полезного. Но если вы получаете двигатель только потому, что в нем есть все, кроме кухонной раковины, и вы думаете, что стоите на плечах гигантов, вы очень ошибаетесь. Перед вами стоит гигант, и вам нужно взобраться на его плечи.

Так что огромный недостаток для меня: не увлекайся тем, что ты можешь сделать. Какой бы двигатель вы ни выбрали, у него будет огромный потенциал. Но если вы не знаете, как на самом деле использовать потенциал, если это не облегчает вашу жизнь и не помогает вам выполнить свою работу, то зачем вы ее используете?


4

Самый большой недостаток игрового движка заключается в том, что вы должны изучить его. Если вы новичок в программировании в целом, это может все же быть быстрее, чем научиться писать код, чтобы делать все то, что движок обрабатывает для вас из коробки, но если у вас есть опыт, то вам не придется тратить время и начните кодировать, но достаточно времени, чтобы освоить незнакомый движок.

Самая важная вещь, которую нужно искать, - это поддержка, потому что игровые движки не идеальны, и они не читают ваши мысли, и вы в какой-то момент застрянете на чем-то. Так:

  • Есть ли документация?
  • Документация действительно хороша?
  • Есть ли техническая поддержка (как правило, нет, если вы не платите за это)? Какой срок выполнения работ?
  • Есть ли форумы сообщества, где вы можете оставлять вопросы и получать реальные ответы?
  • Существуют ли учебники, которые показывают, как начать использовать движок? Включен ли пример исходного кода? Насколько они полезны для ускорения?

2
+1 за выдающуюся документацию на первый план ... вот где многие движки с открытым исходным кодом выходят из строя
LearnCocos2D

3

Как человек, который имеет большой опыт разработки программного обеспечения и который только недавно действительно пытался разработать игру с нуля, вот мои 2 цента.

Ответы до сих пор предоставили длинные списки за и против. Я предоставлю то, что для меня является наиболее важной причиной НЕ использовать игровой движок. Поскольку я взял на себя задачу научиться писать игру исключительно для испытаний и наград, я решил сделать это с нуля без движка, только с OpenGL и SDL, потому что я хотел научитьсявсе выше этого уровня абстракции. Я ни разу не пожалел об этом решении. Моя игра - это хорошая прокручивающаяся версия 2D астероидов, простая, но плавная. Я не пытаюсь конкурировать с чрезвычайно превосходными играми, но я распространяю свою игру, и людям нравится играть в нее. Я приму такой же подход в создании многопользовательской игры. Это огромная проблема, и использование библиотек может облегчить ее, но я не ставлю задачу облегчить ее. Моя цель - учиться, и для меня это занятие неполный рабочий день, поэтому у меня не так много времени, и прогресс идет медленно. Но у меня есть свои причины для такого подхода. Назовите это «высшее образование».

Итак, ответьте на свой вопрос: хотите ли вы научиться делать то, что вместо этого делает игровой движок для тех преимуществ, которые может принести это обучение? Если это так, не используйте игровой движок.


2

Вам необходимо подробно описать, что вы подразумеваете под «сложным». Хороший игровой движок позаботится обо всем следующем:

  • Рендеринг на стабильной частоте кадров
  • Обработка ввода
  • Пользовательский интерфейс
  • Звуки / музыка
  • Управление ресурсами (изображения, звук, файлы данных)
  • Сохранение / загрузка вашей игры
  • Физика (2D или 3D)

Подумайте сами, я знаю, как кодировать каждый из них? Сколько времени мне потребуется, чтобы запрограммировать каждый из них, и сколько времени я потрачу, чтобы научиться тому, как заставить двигатель выполнять каждый из этих этапов?


1

Самое большое преимущество: многое для вас сделано. Вам не нужно постоянно изобретать велосипед.

Еще одно преимущество: игровой движок также может быть кроссплатформенным (Unity).

Недостатки? Контроль? Движок позаботится о некоторых вещах для вас (например, рендеринг), поэтому, если у него есть ошибки или проблемы с производительностью, вы не можете просто исправить это самостоятельно.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.