от технических требований к своей будущей игре, то велика вероятность, что вы натолкнетесь на программу, с которой не сможете «подружиться» и в среде, в которой не будете чувствовать себя комфортно. Если бы сотни моих вечеров, проведенных за работой в Construct, являли собой борьбу с логикой движка, его интерфейсом, а заодно с моим дискомфортом и ярым нежеланием возвращаться к работе, то я бы не довел до ума ни один из своих проектов. Именно соответствие Construct моим личностным особенностям помогло мне создать на нем три игры и провести в этой программе больше 6000 часов.
Работа с игровым движком напоминает общение между двумя людьми из разных стран. Вы очень плохо знаете язык приезжего, а если и заучите каждое слово, то вам все равно потребуются дополнительные годы, чтобы говорить на уровне носителя языка и понимать все культурные особенности своего товарища.
Каждый вечер вы будете пытаться объяснить этому иностранцу на ломаном подобии его наречия: «Я хочу, чтобы ты сделал “вот такую штуку”» (например, чтобы персонаж атаковал по нажатию на кнопку «Х»). Чтобы в понятной форме донести до движка ваши требования, вы должны быть терпеливы и внимательны. Сложно оставаться терпеливым и внимательным к продукту, который вызывает у вас только раздражение и ненависть.
Один мой знакомый был программистом веб-сайтов и неплохо знал такой язык программирования, как Java Script. Желание делать игры привело его к Unity – благодаря многочисленному сообществу и отличной маркетинговой кампании пути многих начинающих разработчиков упираются именно в Unity. В ходе разработки своего проекта с использованием всех предоставляемых Unity благ он начал спотыкаться о реализацию сложных и глубоких задач, вроде создания AI (искусственного интеллекта) или проработки поведения NPC. Знания Java Script едва ли помогали ему в этом деле. Скорее, напротив, они мешали освоить новую логику в новой среде.
Вместо удобного, раскрученного, многофункционального движка мой знакомый в итоге обратился к более низкоуровневому программированию и начал разработку проекта на «сухом» Java Script с использованием react-компонентов (готовой библиотекой некоторых шаблонов кода для реализации конкретных задач) и массово используемым готовым решением для корректно работающей физики под названием phaser.js. Работа над игрой стала для него куда менее утомительной, среда – куда более понятной и знакомой лично ему. Но набор его инструментов выглядит как что-то неповоротливое и сложное! Так почему ему не понравилось работать на Unity?
Его личный опыт, его склад ума и его знания поспособствовали тому, что работа на чем-то более, казалось бы, сложном и неудобном, протекала быстрее и приносила больше удовольствия.
Надеюсь, никто не забыл предисловия к этой книге, и не ждет, что я четко скажу вам в одном предложении, какой движок вам выбрать? Я не могу этого сделать – проблема выбора движка лежит на вас, я уже перечислил, на что нужно опираться в своем решении. Но я могу дать еще две подсказки.
Во-первых, никто не запрещает вам попробовать каждый из популярных движков. Зайдите на сайт одного из них, посмотрите на игры, которые созданы