Me he encontrado con juegos 3D que se pueden jugar en un navegador. Requieren que se instale un complemento para funcionar. Supongo que el complemento crea una ventana D3D dentro del navegador.
¿Cómo haría para implementar algo similar?
Me he encontrado con juegos 3D que se pueden jugar en un navegador. Requieren que se instale un complemento para funcionar. Supongo que el complemento crea una ventana D3D dentro del navegador.
¿Cómo haría para implementar algo similar?
Respuestas:
El reproductor web de Unity (para Windows) puede usar DirectX y OpenGL en una ventana (sin embargo, abstrae su acceso a estas API).
Otro enfoque sería implementar un complemento DirectX utilizando ActiveX (para Internet Explorer) o NPAPI (para otros navegadores).
Si usa NPAPI, cuando se inicie su complemento, recibirá un identificador de ventana donde puede dibujar lo que quiera (incluida una ventana D3D). Si sigue esta ruta, esencialmente está ejecutando código nativo en las máquinas de los clientes.
El juego que estás jugando puede usar WebGL http://en.wikipedia.org/wiki/WebGL , o algo más exótico como un complemento de Firefox, pero no creo que puedas incrustar código de máquina en un complemento de Firefox (estoy no estoy seguro, eso sería un pequeño defecto de seguridad).
Unity implementa una versión de plugin web de su motor, y parece que lo hacen con ActiveX. No sé si se implementa en Mac ..., aunque me pregunto.
La mejor manera de descubrir cómo este juego que estás jugando utiliza una API 3D o cualquier otro tipo de complemento, es mirar la fuente HTML de la página y buscar objetos o activex u otros.
Echa un vistazo a Firebreath para obtener soporte de Cross-Broswer.