предисловие
Многие молодые первокурсники, которые только соприкоснулись с разработкой игр и готовы показать свои навыки, часто попадают в неприятности уже на первом уровне отбора технологий. Ведь игровые движки в интернете смешаны, а соответствующей информации на официальном сайте относительно мало, а выбор подходящего игрового движка — самая основная и основная часть проекта.
Только представьте, когда разработка игры находится на средней и поздней стадиях, обнаруживается, что игровой движок, внедренный проектом, не соответствует требованиям, в это время, будь то повторная доработка или замена игры. двигатель, это очень трудоемкая и материалоемкая штука. Чтобы избежать этой ситуации, особенно важно выбрать игровой движок, подходящий для нужд проекта, на ранней стадии.
Далее поговорим о том, как правильно выбрать JS игровой движок для проекта.
Классификация игровых сцен
Когда мы впервые получили запрос на игру, мы можем рассмотреть следующие аспекты и проанализировать сценарий спроса на игру, который можно использовать в качестве основы для выбора игрового движка.
- Способ рендеринга игровых эффектов (2D? 3D? VR?)
Это напрямую связано с методами рендеринга, которые может поддерживать игровой движок. Текущие методы рендеринга игр H5 обычно включают 2D-рендеринг, 3D-рендеринг и рендеринг VR.
Обычно существует три типа 2D-рендеринга: рендеринг Dom, рендеринг Canvas и рендеринг WebGL. Из соображений производительности Dom обычно подходит только для небольших игр с меньшим количеством анимационных эффектов и меньшего взаимодействия.Эта статья в основном знакомит с Canvas и WebGL.
Вообще говоря, для небольших 2D-игр достаточно рендеринга Canvas. Однако рендеринга Canvas недостаточно для поддержки требований к производительности крупномасштабных игр из-за множества уровней базовой упаковки, поэтому крупномасштабные игры — лучший выбор. Рендеринг WebGL или встроенная в браузер среда выполнения. - сложность игры
Это во многом связано с функциями, которые может поддерживать игровой движок, предоставляемыми им API и его производительностью.
Рекомендация игрового движка
Автор сравнивает следующие аспекты с некоторыми из наиболее популярных фреймворков в отрасли, надеясь внести предложения и ссылки на технический выбор каждого из объективных данных.
- Методы рендеринга, поддерживаемые движком
- количество звезд на гитхабе
- Обновлено
- Детали документации
- Периферийные продукты
Игровой движок с поддержкой 2D, 3D, VR
Egret
Движок egret — это игровой движок корпоративного уровня с поддержкой команды. Egret проделала хорошую работу по поддержке рабочего процесса, от написания кода Wing до интеграции ресурсов ResDepot и TextureMerger, до отладки Inspector и, наконец, до собственной упаковки (поддерживающей упаковку APP) для каждого процесса разработки игры. Ссылки в основном поддерживаются инструменты. На официальном сайте есть много примеров и руководств. Стоит отметить, что движок Egret поддерживал WebAssembly в мае этого года, что является еще одной вехой в улучшении производительности.
LayaAir
Что касается режима рендеринга, LayaAir поддерживает Canvas и WebGL, а что касается поддержки потока инструментов, то в основном это LayaAir IDE. LayaAir IDE включает режим кода и режим дизайна, поддерживает разделение разработки кода и художественного дизайна и имеет встроенные практические функции, такие как преобразование SWF, упаковка атласа, сжатие и шифрование JS, упаковка приложений и публикация Flash.
На следующем рисунке показан игровой движок, который в основном поддерживает 2D-игры.
Pixi.js
Вообще говоря, скорость рендеринга WebGL будет выше, чем у Canvas, что определяется путями отрисовки обоих. Самая большая особенность Pixi заключается в том, что Pixi имеет полную поддержку WebGL, но не требует, чтобы разработчики овладевали знаниями, связанными с WebGL, и при необходимости легко возвращались к Canvas. По сравнению со многими аналогичными продуктами, его способность рендеринга относительно мощная. Однако у Pixi есть и свои недостатки. Pixi относительно слабо поддерживает анимацию. В реальной разработке часто необходимо вводить дополнительные библиотеки анимации, такие как GSAP.
Phaser
Phaser напрямую инкапсулирует Pixi с точки зрения рендеринга; с точки зрения архитектуры Phaser включает в себя 3 физических движка (Arcade Physics, Ninja, p2.js), предоставляя систему частиц, анимацию, решения для предварительной загрузки и адаптации устройства; с точки зрения совместимости Phaser Акцент делается на мобильные браузеры, с точки зрения API Phaser может реализовать богатые игровые функции и подходит для разработки игр высокой сложности.
CreateJS
CreateJS официально предоставляет TweenJS для поддержки разработки анимации, а также обеспечивает поддержку звука и предварительной загрузки через SoundJS и PreLoadJS, чего достаточно для основных функций игр H5. Что касается совместимости, CreateJS поддерживает практически все браузеры на ПК и мобильных устройствах. Кроме того, CreateJS также поддерживает разработку и экспорт игр H5, созданных с помощью CreateJS с помощью flash CC.
Hilo
Hilo — это проект с открытым исходным кодом, запущенный командой Alibaba, который поддерживает модульную разработку и предоставляет упакованные версии различных модульных парадигм и кросс-терминальных решений, которые подходят для разработки небольших маркетинговых игр. Его объем также относительно небольшой, всего около 70 КБ. Hilo поддерживает рендеринг DOM, рендеринг Canvas и рендеринг WebGL, а также интегрирует Hilo Audio и Hilo Preload. Hilo 3D, который был запущен позже, также является одним из его основных моментов.
Cocos2d-x
Cocos2D-X - относительно старый игровой двигатель в отрасли, а также поддерживает разработку C ++, LUA и JavaScript из трех видов языка, официальные случаи использования более склонны смотреть разработчики C ++, подходящие для среднего и большого количества Разработка игры. Cocos2D-X предлагает инструменты разработки игры Cocos Creator, на основе компонентов, сценарию, управляемой данными, перекрестные выбросы.
lufylegend.js
Последнее обновление lufylegend.js было в 2016 году, но его сообщество по-прежнему очень активно, и если вы столкнетесь с какими-либо проблемами в разработке, вы можете легко найти решения в сообществе. lufylegend.js может поддерживать основные игровые функции, но его масштабируемость не очень высока.
Игровой движок, который в основном поддерживает 3D-игры
Three.js
Я считаю, что многим разработчикам, интересующимся 3D-играми, Three.js уже знаком. На самом деле, официальное позиционирование Three.js — это не игровой движок, а JS 3D-библиотека. Three.js больше склонен к визуальному представлению экранного типа, и он с меньшей вероятностью будет напрямую использовать Three.js для разработки игр H5. Что касается среды рендеринга, Three.js поддерживает режимы рендеринга WebGL и CSS3D.
PlayCanvas
С точки зрения поддержки рендеринга PlayCanvas не только поддерживает 3D-рендеринг WebGL, но также поддерживает виртуальную реальность и обладает относительно хорошей масштабируемостью. При поддержке потока инструментов предоставляются такие услуги, как онлайн-редактор и издательский хостинг. Из официального учебника учебник также более подробный.
Эпилог
Сейчас на рынке много игрового движка H5, что хорошо, что плохо, трудно дать прямое определение движка, могу лишь сказать, что каждый движок имеет свои особенности, в некотором роде с проектом относительно высокая степень соответствия, по мнению автора. сейчас более популярен на рынке несколько основных двигателей, сделанных относительно немного, я надеюсь дать вам время, чтобы сделать технический выбор только для того, чтобы получить небольшую помощь в поиске подходящих двигателей проектов, более быстрое, более точное и более эффективное выполнение требований проекта.
Спасибо за ваше терпение в чтении, я надеюсь, что вы можете что-то получить, и вы можете оставить сообщение, если у вас есть какие-либо недостатки.
Если вас интересует «Разработка игр H5», обратите внимание на нашустолбец.