Каково текущее состояние игровых движков, фреймворков, библиотек и преобразований, связанных с набором технологий HTML5 (включая библиотеки CSS3 и JavaScript, такие как RaphaelJS, Impact, gameQuery); и как это лучше всего сравнить с разработкой нативного приложения (особенно для iOS и Android)?
Особенно с точки зрения производительности, визуальных эффектов и получения этого "родного ощущения".
Мысли о таких решениях, как Appcelerator и Corona SDK, также приветствуются. Что касается Unity3D, возможно ли в нем развиваться и при этом играть в игру в браузере (например, в текущих выпусках Chrome или Firefox, по крайней мере) без каких-либо зависимостей или с тем, чтобы пользователь что-либо устанавливал (без веб-плеера Unity)? ,
Что я ищу, так это как развиваться в веб-стандартах, чтобы достичь максимального количества платформ (включая внешние мобильные), сохраняя при этом собственный опыт работы с мобильными устройствами без необходимости заново реализовывать игру для iOS и Android.
источник
Ответы:
Библиотеки HTML5 на удивление хороши, особенно учитывая его молодой возраст. Существуют твердые 2D / 3D движки, которые поддерживают эффекты частиц, физику и тому подобное. Тем не менее, нет ничего похожего на установленные и зрелые игровые движки, такие как Unity или Unreal Engine.
Кроме того, HTML5 libs в моем опыте нравится быть ориентированным на события. Например, спрайты будут иметь события щелчка, и в действительности не будет традиционного игрового цикла.
Для производительности нативные приложения намного, намного быстрее, чем что-либо, имеющее отношение к холсту HTML 5. Это мой опыт, хотя я понятия не имею о Appcelerator или Corona SDK.
Однако, если ваша цель - это «максимальное количество платформ», а не «веб-стандарты», я предлагаю решение, такое как Unity, которое работает практически на всем, и благодаря встроенному редактору является очень производительным движком.
источник
Том из Scirra, мы делаем Construct 2 создателем игр на HTML5 .
Недавно мы написали об этом в блоге, сравнивая производительность HTML5 Canvas / WebGl / C ++ DX. Вы можете прочитать об этом здесь:
http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis
А вот и график:
Я знаю, что это не производительность по сравнению с нативными мобильными форматами, но это сравнение с нативными настольными приложениями, которые должны дать некоторое представление о разрыве в производительности.
источник
В первую очередь, с Corona SDK приятно работать. Lua - отличный язык, Corona - очень основательная структура, и документация до сих пор была великолепной.
По моему мнению, разработка HTML5-игр пока не стоит. Как в настольных, так и в мобильных браузерах. Если ваша цель - сделать классную игру для настольных компьютеров и мобильных устройств, не беспокойтесь. Если ваша цель состоит в том, чтобы сделать игру на HTML5, то сделайте это и используйте одну из платформ, упомянутых людьми (также посмотрите на Crafty или Gee). чтобы больше об интерфейсе рисованного типа).
Основная причина в том, что когда я делаю игру, я хочу сделать законченную и отточенную игру. Частью создания законченной и отточенной игры является хороший звук. Хотя
<audio>
тэг поддерживается в основных браузерах (при условии, что вы предоставляете достаточно разных форматов), управление звуковым сопровождением программным способомcreateElement
является довольно сложной задачей. SoundManager 2 - это пластырь, а не решение. Во многих случаях он просто использует объект Flash для настольных компьютеров. В какой момент я спрашиваю, почему бы просто не сделать чертову вещь во Flash?На iOS, если вы не используете хак, как в библиотеке Jukebox Zynga , вы фактически ограничены только воспроизведением звуков в ответ на ввод пользователя. Это нелепо.
Кроме того, если вы не упаковываете свою HTML5-игру в приложение, людям нужно соединение, чтобы играть. Больше всего времени я провожу в мобильных играх в метро - нет сигнала. А если вы упакуете свою игру, разве не будет странно не иметь звука? Если я загружаю игру, я ожидаю определенного уровня отзывчивости и полировки. Читайте: родное приложение.
До тех пор, пока HTML5 не станет более развитым и мобильные браузеры не станут более быстрыми, а звук HTML5 не перестанет сосать, я буду веселиться, играя с Javascript
<canvas>
и всем этим, но я не буду так долго выпускать отлаженную игру с ним. Это сводится к тому, каковы ваши цели. Очень немногие, кто знает, кто играет в игры и не являются разработчиками, даже имеют на своем радаре мобильные HTML5-игры. Опять же, если вы хотите создавать классные HTML5-игры, создавайте HTML5-игры. Если вы хотите создавать и продавать потрясающие игры, сделайте качество опыта ваших игроков приоритетным.источник
Проверьте http://cocos2d-javascript.org/
Это еще не полностью реализовано. Но однажды сделанный, это могло бы быть лучшим :)
На этом сайте есть несколько демонстраций, они довольно хороши ...
Редактировать: только что проверил, демо не для мобильных устройств ...
источник
Как показали другие ответы, разница в производительности довольно велика. Тем не менее, существуют новые способы получения собственной производительности в Интернете (с использованием Chrome).
MonoGame - это реализация платформы XNA с открытым исходным кодом, предназначенная для работы на максимально возможном количестве платформ. Когда это сочетается с Google Chromes NaCl (Native Client), результаты довольно впечатляющие (требуется Chrome).
Мой совет - создать собственное приложение в XNA или MonoGame и подумать о NaCl и / или ExEn, чтобы вывести свою игру на другие платформы. Подавляющее большинство вашей кодовой базы будет одинаковым для всех платформ, но уменьшенный размер релиза вашей игры не будет иметь простоты HTML5-игры.
HTML5, на мой взгляд, просто еще не существует в отношении полезной производительности, но существуют и другие варианты, которые почти конкурируют с доступностью HTML5, хотя и добавляют немного больше сложности (и стоимости в некоторых ситуациях) к выпуску вашей игры.
источник
Я настоятельно рекомендую libgdx, фреймворк на основе Java, в основном предназначенный для развертывания на Android и на рабочем столе, но недавно он добавил html5 в свой арсенал, я настоятельно рекомендую его. http://code.google.com/p/libgdx/
Некоторые игры портированы на html5:
Пакс Британия
Математика
Векторный пинбол (пример игры)
источник
Вы можете попробовать PlayN . На данный момент он не очень зрелый или хорошо документированный, и для того, чтобы он заработал, требуются некоторые усилия, но он позволяет программировать на Java и экспортировать свою игру на ряд различных платформ (на данный момент Java, HTML5, Flash, Android и iOS, а в будущем Windows Phone 7).
Преимущество, которое она имеет над Corona, PhoneGap и т. Д., Состоит в том, что она компилирует вашу игру для каждой из платформ, а не просто запускает ее с использованием виртуальной машины; это гарантирует, что вы получите почти нативную производительность на каждой платформе.
источник
Отличный ответ и ссылки - спасибо!
Я делаю некоторые собственные тесты (HTML5 / JS и PhoneGap) и нахожу тот же ответ. HTML5 просто еще нет. Я не играл ни с одним из более «экзотических» ответов, таких как app * mobi, который утверждает, что урезанный браузер оптимизирован для игр, но общий план «Напиши свою игру в HTML5 и играй в нее по телефону» не жизнеспособен в этом пункте. Это может попасть туда, но я не уверен. Браузер просто не предназначен для рендеринга, и мы прыгаем через немало обручей, чтобы попасть туда. Я думаю, что вместо этого мы увидим, как кто-то придумает альтернативу, которая получит критическую массу, и она взлетит. Время покажет.
Я буду рад любой обратной связи и конструктивной критике моей работы, которая есть на GitHub и бесплатна для всех.
https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-
источник