Важные обновления и нововведения игрового HTML5 движка версии 0.0.4
Первое, и наверное, важнейшее из нововведений - это справка к проекту на Гитхабе. Теперь она полностью на русском и детализирована до максимума. Учтены многие особенности движка и отражены с небольшими примерами.
Второе по списку, но не по важности - это абстракция сцены. Теперь сцена - это объект, который не имеет своих функций рисования. Точнее сказать, с появлением поддержки слоев в j2Ds отпала необходимость привязывать объекты к сцене, теперь это совершенно не обязательно и объекты могут рисоваться на любом слое. Пример - лес из демонстрации "2D Platformer".
Ну и теперь по порядку о самом-самом:
1. Введена поддержка слоев и прозрачностей. Движок позволяет использовать слои для отрисовки, что позволяет экономить ресурсы в десятки раз эффективнее, чем при отрисовке всех объектов на одной сцене.
2. Collision-box / Bounding-box. Ранее в движке не было возможности переопределения обрамляющей коробки объекта и изменения его маски для определения столкновений. Теперь можно, причем переопределяется все в одну строчку.
3. Генерация текстур. Ранее использовать текстуры можно было только как отдельные файлы, которые можно было размещать в папке проекта, теперь текстуры при желании можно создавать самостоятельно, с анимацией и эффектами. Для создания текстур уже создано несколько стандартных шаблонов текстурирования.
4. Низкоуровневый доступ к контекстам рисования. Ранее отрисовка графики производилась через заранее подготовленные шаблоны рисования, теперь же можно использовать доступ к контексту напрямую, что позволяет создавать свои шаблоны такими, какими вы хотите их видеть! Причем это могут быть текстуры совершенно любые. Поддерживаются все стандартные возможности HTML5 Canvas.
5. Измерение FPS. Добавлена опция (подключаемая) для возможности проверки FPS в игре на моменте ее разработки. Соответствующий пример уже добавлен в список официальных демо-примеров.
6. Режим write-mode. Наконец движок позволил корректно обрабатывать вводимый с клавиатуры текст. В режиме write-mode у движка отключаются управляющие клавиши, и задействуется переменная-буффер для хранения вводимого текста. При этом управляющие клавиши можно использовать внутри этого буфера. Пример - контроль ввода.
7. События движка. С появлением игровых состояний были так же введены события движка, позволяющие воспроизводить пользовательские функции при возникновении определенных состояний. Такие как загрузка DOM дерева, получения доступа к input'у, или смена игрового состояния.
8. Поддержка всех событий клавиатуры. Еще одна важная деталь, позволяющая правильно обрабатывать события isKeyPress / isKeyDown / isKeyUp объекта inputController. Ранее доступны были только события isKeyDown.
9. Глобальный delta-time. Как ни странно, но ранее в движке была только возможность ограничить FPS. Теперь наряд с принудительным ограничением FPS есть возможность использовать рассчитываемый движком фактор дельта-тайм, позволяющий стереть разницу между мощностями процессоров.
10. Упрощение движка. Мы снизили количество обязательных команд инициализации, убрали обязательные HTML элементы, чтобы сделать процесс создания игры более творческим и менее техническим, позволив игроделу не заморачиваться над функционалом движка а просто использовать его так, как ему удобно.
11. Работа с курсором. Теперь курсор мыши можно скрывать. назначать на него свое изображение или использовать объект вместо курсора, используя его функционал, уже как игрового объекта.
12. Полная поддержка сенсорных устройств. Добавлены функции обработки жестов сенсоров, манипуляций с экраном.
Ну и напоследок хочется отметить повышение производительности за счет внутренней оптимизации движка, которая увеличила производительность игр на 60%. Вообще, для обновления 0.0.4 было уделено много внимания именно в плане оптимизации, и результат нас весьма порадовал. Надеемся, вас тоже!
Всем спасибо за внимание!
Ссылки:
Видеоуроки по работе с движком