Портирование моего приложения C++ для запуска в браузере

Есть ли простой способ перенести приложение C++ OpenGL в браузер? Он уже портирован на ПК, Mac и iOS. Если есть какой-то относительно простой способ, будет ли он переносимым между компьютерными браузерами? Конечно, мне бы пришлось использовать разные двоичные файлы для разных платформ. Я помню, что слышал кое-что о какой-то изолированной среде для Chrome некоторое время назад, но это исключило бы другие браузеры. Как они (id?) Сделали с Quake в браузере?

4 ответа

Решение

Попробуйте Google Native Client или же NaCl, если вы хотите ленивый порт.

Но если вы хотите сделать реальный порт - обратитесь к этим двум примерам:

  • серия блогов о портировании существующей игры на C++ на html5 (спонсировано Opera)
  • небольшая статья о портировании существующей игры Objective-C на html5 (спонсировано Microsoft).
  • печальный пример переноса популярной защищенной авторским правом игры с C на JavaScript (спонсор Mozilla, с дополнительной помощью Zenimax)

Если вы спрашивали о QuakeLive - это пользовательский плагин, разработанный Id Software. Подобная функциональность может быть достигнута с помощью плагинов Flash или Unity.

Если вы уже ориентируетесь на ES 2.0 для iOS, ваши шейдеры должны работать как есть с WebGL. JavaScript, ахой!

id Software использует гигантский плагин для Quake Live.

Вы можете использовать Mandreel, если вы хотите наименьшее количество работы. Другой вариант - Emscripten, но он конвертирует только ваш C++, он не предоставляет все API, как это делает Mandreel.

Есть ли простой способ перенести приложение C++ OpenGL в браузер? Он уже портирован на ПК, Mac и iOS. Если есть какой-то относительно простой способ, будет ли он переносимым между компьютерными браузерами?

Вы можете попробовать перекомпилировать его в JavaScript, это то, что выполняют браузеры. Если вы не ожидаете, что пользователь установит какой-либо плагин для браузера, вы не сможете дать ему собственный код. Конечно, в среде JavaScript многие вещи, к которым вы привыкли из собственных исполняемых файлов, не работают. Например, вы больше не можете получить доступ к файловой системе. Вы должны использовать хранилище DOM, файлы cookie, загружать / выгружать ресурсы с сервера.

Другие вопросы по тегам