В чем сложность разработки движка для игры?

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

С 2011 кода веду разработку своего движка, в свободное время, ради удовольствия … ну почти так, а если точнее то забыл когда получал от этого удовлетворение.

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

Обобщенное описание процесса разработки движка для игры

Сложность здесь колоссальная, если не сказать больше.

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

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

Во время реализации необходимы ресурсы для тестирования: модели, текстуры, звуки и все то что будет задействовано в движке. А эти ресурсы необходимо где-то брать.

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

Параллельно с реализацией функционала необходима разработка редакторов. Здесь также не мало кода, причем очень не мало) Также на этом этапе вылезу ошибки архитектуры (если Вы конечно не первоклассный программист), придется вернуться на несколько шагов назад и кое что поправить.

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

Нюансы разработки

Очень много рутинной работы, больше половины, значительно больше. Из-за этого энтузиазм гаснет. Энтузиазм не бесконечен.

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

Объять весь процесс и контролировать все очень трудно, одному нереально.

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

Дополнительно здесь хочу повторить, баги (ошибки) это очень серьезно.


В итоге, сложность разработки движка для игры заключается:

  • в объеме необходимой предстоящей работы
  • в объеме минимальных знаний и необходимых
  • в ресурсе времени (здесь же выступает множество других факторов, логичность, обоснованность, необходимость, наличие энтузиазма и прочее)
  • в объеме предстоящих ошибок при разработке, где их количество бесконечно

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

Но одно я уяснил точно, это долго и трудно, что будет дальше не известно. Но порой, смотря на движок, на то что он способен выдавать, я понимаю, это сделано мной, и я не самый плохой программист, быть может в какой-то из областей программирования я не так уж и далек от успешных мест, но очень часто я думаю … на сколько же я туп))

Поделиться:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*

code