C++ Anwendungen im Browser?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • C++ Anwendungen im Browser?

    Hallo zusammen,

    ich habe gerade darüber nachgedacht, welche Möglichkeiten es gäbe, eine CPP-Anwendung in einem Browser auszuführen.
    Folgende Ereignisse waren ausschlaggebend dafür:
    • Drakensang - Drakensang Online ist, für den der es noch nicht kennt, ein F2P-Spiel (Free-To-Play) vom Unternehmen "Bigpoint", welches stark an den Kontrahenten "Diablo" erinnert. Die Besondenheit, zumindest für mich als Programmierer, ist, dass Drakensang über den Browser ausgeführt werden kann.
    • From Dust - Ubisoft ist der Entwickler von "From Dust". Bei dem Spiel handelt es sich um eine Art "Spiel-Gott"-Handlung, dessen Augenmerk auf die veränderbare Landschaft liegt. In der Basis ähnelt das Spiel Populous. From Dust kann ebenfalls komplett über Google Chrome gespielt werden. Kostenpflichtig
    • Reprisal Universe - Gestern entdeckt und für mich total faszinierend. Auch hier ähnelt das Spiel (stark) dem vergangenen Populous von Bullfrog Productions (Ich trauere heute noch). Die Handlung, beziehungsweise Szenarien, sind im wesentlichen das Selbe wie vom Vorgänger, dennoch sehr schön und liebevoll umgesetzt. Kostenfrei
    • Minecraft - Sollte heute eigentlich jeder kennen. Minecraft kann sowohl auf dem Computer heruntergeladen oder im Browser ausgeführt werden. Das Bauklötzespiel verfügt sowohl über einen Survival- als auch Creative-Modus und wird heute noch weiterentwickelt und stetig erweitert. Kostenpflichtig (Vollversion), Kostenfrei (Frühere Versionen)

    Zum Kern des Threads:
    Ich habe etwas herum gesucht und nachgelesen, da mich das Thema über die Ausführbarkeit diverser Spiele über den Browser fasziniert. In naher Zukunft möchte ich mich mit dieser Thematik genauer auseinandersetzen.

    Ich fand bisher nur recht wenige Dinge, die die eigentliche Thematik betreffen, jedoch stellte ich fest, dass "Reprisal Universe" zumindest über Flash im Browser ausgeführt wird. Ich kann mir allerdings nicht so recht vorstellen, dass das Spiel wirklich auf Flash basiert. Ich fand Flash bisher immer eher als sehr belastend und sperrig, wenn es um große Projekte oder gar ein Spiel geht. Von daher frage ich mich, wird das SWF-Format (hier) nur als eine Art Container verwendet?

    Minecraft greift komplett auf Java zurück. Auch für Browser gibt es über Java diverse Möglichkeiten Java Apps im Browser auszuführen, was somit keine Große "Kunst" darstellt. Auf Java würde ich für eine mögliche Entwicklung eines Spiels eher ungern zurückgreifen, weswegen ich mich erst mal auf C++ fokussieren möchte. Stellt sich jedoch die Frage: Kluge Entscheidung?
    Meines Wissens gibt es via C++ keine Möglichkeiten Anwendungen wirklich via Browser auszuführen. Sicherlich gibt es ein paar, wie das "Common Gateway Interface" (CGI), jedoch wird einen nicht nur bei Wikipedia davon abgeraten. Mein Wissen über Browsertechnologien ist nicht sonderlich umfangreich, dass heißt, dass ich mich dort erst einmal einarbeiten müsste, aber wo rein genau?

    Was umfangreiche 3D-Grafiken angeht, die im Browser dargestellt werden, wie bei From Dust oder Drakensang Online, bin ich ehrlich gesagt ratlos. Wie wird hier die Lauffähigkeit über den Browser ermöglicht und welche Programmierung findet hier Anwendung?

    Soweit erst einmal zu meinem Monolog. ;)
    Ich hoffe ihr könnt mir etwas weiterhelfen!

    Beste Grüße und Danke,
    SKiD.
  • Da gibt es derzeit sooo viele Arten wie sowas umgesetzt wird, das ist es schon schwierig die Übersicht zu behalten ;) So wie ich das sehe, benutzt jedes deiner genannten Spiele völlig andere Technologien.

    Ich kenn mich damit auch nicht wirklich aus, aber ein paar Sachen kann ich dir verraten:

    Erstmal ist Flash schon leistungsfähiger als du vielleicht denkst. Klar, Spiele der Qualität wie Drakensang Online oder From Dust sind nicht möglich, aber sowas wie Reprisal Universe läuft problemlos in Flash und es gibt durchaus noch grafisch aufwändigere Spiele in Flash. Flash ist zurzeit definitiv (noch) die weitverbreitetste Möglichkeit Spiele im Browser auszuführen. Beispiele wären so gut wie alle Facebook Spiele oder auch die Tausende an Spielen auf Seiten wie kongregate.com/

    Minecraft läuft wie du ja schon weißt rein in Java, da gibts nicht viel mehr zu zu sagen ;)

    From Dust läuft in Chrome über den Google Native Client, was ziemlich genau soetwas ist was du suchst: Der Native Client erlaubt es nativen Code im Browser auszuführen. Zur Zeit gibt es APIs für C und C++ und so wurde auch From Dust dafür umgesetzt. Nachteil ist halt, dass das nur für Chrome funktioniert.
    developers.google.com/native-client/overview?hl=de

    Zu Drakensang kann ich nicht viel mehr sagen, als das was in Wikipedia dazu steht: "Wie alle Radon-Labs-Titel basiert das Spiel auf der selbstentwickelten Nebula-Engine, die für eine Verwendung im Browser angepasst wurde. Das Spiel wurde in C++ geschrieben und läuft mittels eines Java-Applets im Browser.". Ob man sowas selbst mal eben umsetzen kann halte ich für zweifelhaft ;)

    Zusätzlich gibt es noch weitere BrowserPlugins ähnlich wie Flash, nur dass sie speziell für Spiele gedacht sind. Unity wäre dafür ein Beispiel, sehr verbreitet ist das allerdings nicht.

    Als weiteres Beispiel für aufwändige Spiele direkt im Browser gibt es auch noch Quakelive ( quakelive.com/ ) bei dem man Quake3 direkt im Browser spielen kann. Da läuft das ganze auch über ein eigenes Browserplugin. Er installiert über das Plugin das Spiel mehr oder weniger normal auf der Festplatte und kann es dann eben auch direkt im Browser über das Plugin starten.
  • Danke für deine ausführliche Antwort! :)
    Zugegeben: Die Auswahl ist wohl eher bescheiden. ;)

    Also mit Flash habe ich schon einige male gearbeitet, bin jetzt aber nicht so der Profil drinnen, da ich Probleme habe den richtigen Grad zwischen "Arbeiten mit Ebenen" und "Arbeiten mithilfe der Programmierung" zu finden. Die Mischung bekomme ich nicht so gut hin, wie ich es gerne möchte. Und sich auf einen der beiden Bereiche zu fokussieren ist wohl auch nicht gerade das Beste. Vielleicht habe ich dort allerdings auch noch viel zu wenig Erfahrung?
    Also von der Grafik her, würde mir diese Grafik von Reprisal Universe schon reichen, vielleicht sollte ich daher doch Flash im Fokus behalten, zumindest für Browser-Applikationen. Ich dachte allerdings, dass Flash eingestellt werden würde?

    Also da hat Java wohl eindeutig eine Stärke. ;)

    Mich ärgert es etwas mit dem "Google Native Client". Denn immerhin ist das schon ein Stück Leistung, aber dass dann wieder gravierend geschnitten wird, finde ich schon etwas schade. Vielleicht auch nur, weil Google Chrome aus dem eigenen Hause stammt? Vielleicht möchte man die Technologie ganz einfach auch nicht den Konkurrenten zugänglich machen. ;)

    Hm, ich werde mal die Tage schauen, ob ich Applets für Java finde, die C++ ausführen können. Wäre schon schön, jedoch bezweifle ich alleine schon die Erfolgschancen. ;) So ein Plug-In oder eine derartige Engine selbst umzusetzen scheint für eine Person wohl eher mehr als zweifelhaft. ;)

    An Unity hatte ich auch schon gedacht, aber wie gesagt, da muss und werde ich mich mal einlesen. Die Engine ist ja momentan irgendwie in aller Munde, mal schauen was sich damit machen lässt.

    So ähnlich, wie bei Quake Live funktioniert das auch bei Battlefield 3. Vermute ich mal. Das sind allerdings Maßanfertigungen. Selbst wenn das umzusetzen wäre, dann würde ich wahrscheinlich mehrere Jahre dafür benötigen, mal abgesehen davon, dass ich das Wissen erst mal für die Umsetzung dafür bräuchte. ^^