Разработка мобильных игр на HTML5 против нативных игровых приложений [закрыто]


12

Каково текущее состояние игровых движков, фреймворков, библиотек и преобразований, связанных с набором технологий HTML5 (включая библиотеки CSS3 и JavaScript, такие как RaphaelJS, Impact, gameQuery); и как это лучше всего сравнить с разработкой нативного приложения (особенно для iOS и Android)?

Особенно с точки зрения производительности, визуальных эффектов и получения этого "родного ощущения".

Мысли о таких решениях, как Appcelerator и Corona SDK, также приветствуются. Что касается Unity3D, возможно ли в нем развиваться и при этом играть в игру в браузере (например, в текущих выпусках Chrome или Firefox, по крайней мере) без каких-либо зависимостей или с тем, чтобы пользователь что-либо устанавливал (без веб-плеера Unity)? ,

Что я ищу, так это как развиваться в веб-стандартах, чтобы достичь максимального количества платформ (включая внешние мобильные), сохраняя при этом собственный опыт работы с мобильными устройствами без необходимости заново реализовывать игру для iOS и Android.


2
Единство по-прежнему требует веб-плеер. Они работают над развертыванием Flash 11, но этого не произойдет некоторое время. Я не играл в HTML5-игру в мобильном браузере, которая была бы приятной. А аудио в HTML5 - все еще куча веселья.
Майкл Бартнетт

1
Если вам нужно «родное чувство», вам нужно нативное приложение ... в противном случае вы всегда ограничены общим знаменателем платформ, которые хотите поддерживать.
bummzack

О, конечно, без какой-либо дополнительной работы я бы. Но компромисс может быть достигнут, пока мне не нужно переписывать все основы игры, добавление более специализированного кода для сенсорных интерфейсов будет вполне приемлемым.
Вик Голдфельд

1
Исходя из моего опыта, нативные игры имеют гораздо большую производительность, чем HTML5 на младших телефонах
Ник Швелидзе,

Ответы:


7

Библиотеки HTML5 на удивление хороши, особенно учитывая его молодой возраст. Существуют твердые 2D / 3D движки, которые поддерживают эффекты частиц, физику и тому подобное. Тем не менее, нет ничего похожего на установленные и зрелые игровые движки, такие как Unity или Unreal Engine.

Кроме того, HTML5 libs в моем опыте нравится быть ориентированным на события. Например, спрайты будут иметь события щелчка, и в действительности не будет традиционного игрового цикла.

Для производительности нативные приложения намного, намного быстрее, чем что-либо, имеющее отношение к холсту HTML 5. Это мой опыт, хотя я понятия не имею о Appcelerator или Corona SDK.

Однако, если ваша цель - это «максимальное количество платформ», а не «веб-стандарты», я предлагаю решение, такое как Unity, которое работает практически на всем, и благодаря встроенному редактору является очень производительным движком.


6

Том из Scirra, мы делаем Construct 2 создателем игр на HTML5 .

Недавно мы написали об этом в блоге, сравнивая производительность HTML5 Canvas / WebGl / C ++ DX. Вы можете прочитать об этом здесь:

http://www.scirra.com/blog/58/html5-2d-gaming-performance-analysis

А вот и график:

введите описание изображения здесь

Я знаю, что это не производительность по сравнению с нативными мобильными форматами, но это сравнение с нативными настольными приложениями, которые должны дать некоторое представление о разрыве в производительности.


Люблю график. Есть ли шанс на обновление 2016 года?
Дан Даскалеску

4

В первую очередь, с 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-игры. Если вы хотите создавать и продавать потрясающие игры, сделайте качество опыта ваших игроков приоритетным.


Запрос на обновление в середине 2012 года - улучшена ли разработка игр на HTML5? Есть ли еще разница в производительности и проблемы со звуком?
Вспышка

3

Проверьте http://cocos2d-javascript.org/

Это еще не полностью реализовано. Но однажды сделанный, это могло бы быть лучшим :)

На этом сайте есть несколько демонстраций, они довольно хороши ...

Редактировать: только что проверил, демо не для мобильных устройств ...


3

Как показали другие ответы, разница в производительности довольно велика. Тем не менее, существуют новые способы получения собственной производительности в Интернете (с использованием Chrome).

MonoGame - это реализация платформы XNA с открытым исходным кодом, предназначенная для работы на максимально возможном количестве платформ. Когда это сочетается с Google Chromes NaCl (Native Client), результаты довольно впечатляющие (требуется Chrome).

Мой совет - создать собственное приложение в XNA или MonoGame и подумать о NaCl и / или ExEn, чтобы вывести свою игру на другие платформы. Подавляющее большинство вашей кодовой базы будет одинаковым для всех платформ, но уменьшенный размер релиза вашей игры не будет иметь простоты HTML5-игры.

HTML5, на мой взгляд, просто еще не существует в отношении полезной производительности, но существуют и другие варианты, которые почти конкурируют с доступностью HTML5, хотя и добавляют немного больше сложности (и стоимости в некоторых ситуациях) к выпуску вашей игры.


Боже мой, я думал, что NaCl был только для нативного кода C ++, но он также запускает Mono ?!
Дэвид Гувейя

1

Я настоятельно рекомендую libgdx, фреймворк на основе Java, в основном предназначенный для развертывания на Android и на рабочем столе, но недавно он добавил html5 в свой арсенал, я настоятельно рекомендую его. http://code.google.com/p/libgdx/

Некоторые игры портированы на html5:


1

Вы можете попробовать PlayN . На данный момент он не очень зрелый или хорошо документированный, и для того, чтобы он заработал, требуются некоторые усилия, но он позволяет программировать на Java и экспортировать свою игру на ряд различных платформ (на данный момент Java, HTML5, Flash, Android и iOS, а в будущем Windows Phone 7).

Преимущество, которое она имеет над Corona, PhoneGap и т. Д., Состоит в том, что она компилирует вашу игру для каждой из платформ, а не просто запускает ее с использованием виртуальной машины; это гарантирует, что вы получите почти нативную производительность на каждой платформе.


0

Отличный ответ и ссылки - спасибо!

Я делаю некоторые собственные тесты (HTML5 / JS и PhoneGap) и нахожу тот же ответ. HTML5 просто еще нет. Я не играл ни с одним из более «экзотических» ответов, таких как app * mobi, который утверждает, что урезанный браузер оптимизирован для игр, но общий план «Напиши свою игру в HTML5 и играй в нее по телефону» не жизнеспособен в этом пункте. Это может попасть туда, но я не уверен. Браузер просто не предназначен для рендеринга, и мы прыгаем через немало обручей, чтобы попасть туда. Я думаю, что вместо этого мы увидим, как кто-то придумает альтернативу, которая получит критическую массу, и она взлетит. Время покажет.

Я буду рад любой обратной связи и конструктивной критике моей работы, которая есть на GitHub и бесплатна для всех.

https://github.com/GameMaker/PhoneGap-Performance-Test--PGPT-

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.