Ich bin auf 3D-Spiele gestoßen, die in einem Browser spielbar sind. Für die Arbeit muss ein Plugin installiert sein. Ich denke, das Plugin erstellt ein D3D-Fenster im Browser.
Wie würde ich etwas Ähnliches implementieren?
Ich bin auf 3D-Spiele gestoßen, die in einem Browser spielbar sind. Für die Arbeit muss ein Plugin installiert sein. Ich denke, das Plugin erstellt ein D3D-Fenster im Browser.
Wie würde ich etwas Ähnliches implementieren?
Antworten:
Unity Web Player (für Windows) kann sowohl DirectX als auch OpenGL in einem Fenster verwenden (es abstrahiert jedoch Ihren Zugriff auf diese APIs).
Ein anderer Ansatz wäre die Implementierung eines DirectX-Plugins mit ActiveX (für Internet Explorer) oder NPAPI (für andere Browser).
Wenn Sie NPAPI verwenden, erhalten Sie beim Start Ihres Plugins ein Fensterhandle, in dem Sie alles zeichnen können, was Sie möchten (einschließlich eines D3D-Fensters). Wenn Sie diesen Weg gehen, führen Sie im Wesentlichen systemeigenen Code auf den Clients-Computern aus.
Das Spiel, das Sie spielen, verwendet möglicherweise WebGL http://en.wikipedia.org/wiki/WebGL oder etwas Exotischeres wie ein Firefox-Plugin, aber ich glaube nicht, dass Sie Maschinencode in ein Firefox-Plugin einbetten können (ich bin es) nicht sicher, das wäre eine kleine Sicherheitslücke).
Unity implementiert eine Web-Plugin-Version ihrer Engine, und anscheinend tun sie dies mit ActiveX. Ich weiß nicht, ob es auf einem Mac implementiert ist ..., frage ich mich allerdings.
Der beste Weg, um herauszufinden, wie dieses Spiel, das Sie spielen, eine 3D-API oder ein anderes Plugin verwendet, besteht darin, in der HTML-Quelle der Seite nach Objekten oder ActiveX oder anderen zu suchen.
Schauen Sie sich Firebreath an, um Cross-Broswer-Unterstützung zu erhalten.