Новые проекты открывают новые возможности для голодных разработчиков. Все наши сайты здесь, в Blake, используют один и тот же Javascript Framework, который хорошо служил и продолжает служить нам. Из пепла Flash возник Caper, основанный на фреймворке CreateJS, который позволил команде разработчиков контента создавать веселые и яркие занятия для детей и родителей в первые годы существования iPad.

Но время в мобильном мире движется быстро, и сегодняшние телефоны становятся такими же быстрыми, как компьютеры прошлого десятилетия. Он открывает рынок для приложений с большим количеством движущихся частей, более сложной игровой механикой и графикой с более высоким разрешением. Когда на нашем столе появляется новая возможность, мы ухватились за нее. После небольшого этапа исследований и разработок мы остановились на Phaser. Phaser делает себе имя в мире игр HTML5, выводя Javascript на передний план в качестве жизнеспособного игрового языка для этого современного мира, ориентированного на мобильные устройства. Поэтому, используя уроки, которые мы извлекли из Caper, мы начали работу над Jester, нашей совершенно новой структурой действий для этого предстоящего выпуска проекта.

Одним из основных преимуществ Phaser стали порезы и синяки, которые мы получили от рук CreateJS и Caper, хотя конечный результат — мощный инструмент для команды, позволяющий создавать забавные действия, потребовалось много времени, чтобы добиться того, что было. Одним из последствий развития фреймворка стал устаревший код. Как бы мы ни продвигались вперед, нам нужно было продолжать учитывать те уроки, которые были получены в первые дни. Это означало либо постоянную перестройку, либо активную модернизацию с осторожностью. Учитывая сотни, если не тысячи игр по математике и чтению, решение было принято с упором на последнюю. Устаревший код — это то, с чем каждый разработчик должен иметь дело в своей карьере, это так же неизбежно, как загадочные ошибки и сжатые сроки для нас, программистов. Мы остались с почти неиспользуемыми или забытыми классами, к которым мы слишком боялись прикасаться, и постоянно предпринимались усилия по обновлению основного движка, что оказывается сложным, учитывая огромное количество старого кода, на который он влияет. Хотя это по-прежнему остается ключевой проблемой для команды, над которой мы работаем, привлекательность нового старта была слишком хорошей возможностью, чтобы ее упустить.

Сообщество, которое обеспечивает Phaser, было еще одной важной галочкой в ​​коробке для движка. Хотя мы любили CreateJS, участие сообщества несколько уменьшилось за последние несколько лет, в то время как Phaser очень ориентирован на разработчиков, а создатель постоянно общается с пользователями. Обновления выпускаются регулярно, а решения проблем, возникающих при сборке, решаются гораздо быстрее.

Выбрав Phaser в качестве основного движка, мы начали вкладывать в него ресурсы. После длительного процесса выбора имени мы наконец выбрали одно, и так родился Jester.

Однако создание нового фреймворка даже на основе существующего движка сопряжено с определенными трудностями. Во-первых, мы переходим с CoffeeScript на ES6, хотя это и не является большим изменением с точки зрения синтаксиса, но у него есть свой набор предостережений. Использование линтеров и развивающееся руководство по «лучшим практикам» требуют обсуждения и обсуждения для достижения максимальной эффективности, как и подход к более функциональному способу кодирования. Жюри по этому поводу еще не принято, поскольку мы очень любим более объектно-ориентированный способ программирования, но мы никогда не уклоняемся хотя бы от того, чтобы попробовать его. Наши разработчики возятся с клавиатурой, устраняют ошибки сборки и проблемы с компиляцией и пьют больше кофе, чем люди должны пить. Но результат этого прогресса начинает проявляться, и мы уже видим преимущества.

Для многих наших анимаций мы используем библиотеку скелетных анимаций, которая экспортируется прямо из Flash, что позволяет нашим опытным аниматорам использовать то, что им удобно, и по-прежнему иметь возможность предоставить решение, дружественное к HTML5. Caper использовал эту библиотеку, но она нагружала движок: в любой момент времени разрешалось не более двух полностью анимированных персонажей. Мы попробовали несколько других решений на рынке, но решили адаптировать существующую библиотеку к Jester, и результат был ошеломляющим. Более 40 полностью анимированных персонажей прыгают с минимальным падением частоты кадров. Это был тот момент, когда мы поняли, что с двигателем Phaser мы на пути к победе.

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

Возможно, VR — это следующее, что мы рассмотрим. Только время и наш рассудок покажет.