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