Но чем больше я исследую, тем больше ощущается, что офлайн-игры для ПК могут однажды устареть. Все игры будут в браузере.
И если это произойдет через 15 лет, WebGL или подобная технология все еще будут там. Не нужно спешить.
После небольшого исследования я обнаружил WebGL, который работает на Canvas в HTML 5.
Если, конечно, человек не использует Internet Explorer.
Ваши вопросы:
1: Что вы подразумеваете под "такими же сильными сторонами"?
2: WebGL является реализацией JavaScript OpenGL ES 2.0 . Так что да.
3: см. № 2.
4: WebGL - это JavaScript реализация OpenGL ES 2.0. Так что это только JavaScript;)
5: WebGL - это JavaScript реализация OpenGL ES 2.0. Bullet и тому подобное - скомпилированные библиотеки. Если вы не начнете пользоваться какими-либо надстройками для браузера, вы можете использовать только те библиотеки, которые поставляются вместе с браузером, и любую технологию JavaScript, которую вы хотите использовать.
Примечание. Я не уверен, что JavaScript может напрямую взаимодействовать с надстройками браузера. Если это возможно, это будет через специфичный для браузера API. Так что это может быть вообще невозможно.
6: потому что Java требует установки среды выполнения Java, которая фактически является надстройкой. JavaScript имеет более прямой доступ к браузеру. Вы можете взаимодействовать с DOM HTML, взаимодействием на стороне сервера через JSON или другими механизмами и т. П.
7: Определите «медленно». Большинство браузеров используют ту или иную форму JIT, поэтому она будет работать «достаточно быстро». Будет ли он иметь производительность, которую может иметь нативный код? Нет. Но опять же, вы делаете игру, которая будет нуждаться в такой производительности?
8: Скажите мне сейчас: WebGL - это JavaScript реализация OpenGL ES 2.0. Поэтому не нужно взаимодействовать с кодом C / C ++, который не является частью браузера;)
9: они планируют вскоре представить 3D-рендеринг с помощью Silverlight. Silverlight, конечно, является дополнением.
10: Да.
11: Нет. Ничего, даже удаленно кроссплатформенного.
12: Это зависит от браузера и драйвера. Реализации WebGL все еще молоды, поэтому им, возможно, еще придется повзрослеть.
13: Это сложный вопрос. Возможно, вы знаете об этом, но WebGL является реализацией JavaScript OpenGL ES 2.0 ;) Это означает, что он поддерживает то, что делает ES 2.0, вместе с любыми расширениями, которые предоставляет реализация. В отличие от обычных настольных или мобильных реализаций OpenGL, реализация здесь состоит из двух частей: самого браузера и аппаратного драйвера.
Реализация Google WebGL переводит вызовы OpenGL ES 2.0 в WebGL в вызовы Direct3D на настольных компьютерах с Windows. Это обеспечивает им некоторую стабильность (поскольку драйверы OpenGL, особенно на компьютерах с Linux, ненадежны). Стоимость: Google теперь решает, какие расширения поддерживать. Реализация Firefox WebGL идет прямо к настольному OpenGL или базовому OpenGL ES 2.0 для мобильных устройств. Это позволяет базовой реализации предоставлять расширения для WebGL.
Базовая версия ES 2.0, на которую все гарантии WebGL, приблизительно эквивалентна настольной версии OpenGL 2.0. Так что ничего с рабочего стола GL 3.x. Существует множество расширений OpenGL ES, которые предоставляют доступ к большему количеству функций, но их совокупность еще не дополняет функциональность уровня GL 3.x на рабочем столе.
В конечном счете, WebGL не предназначен для "хардкорных игр". Конечно, он может быть в состоянии реализовать некоторые из них, но его основная цель - разрешить рисование трехмерной графики. Быстрая скорость и физика высокого класса - это не то, о чем идет речь.