Anzeige
Anzeige
Fundstück
Artikel merken

Doom 3 im Browser: Diese Seite zeigt, was mit Webtechnologie heute möglich ist

Gabriel Cuvillier hat die freie Demo des alten Shooters Doom 3 als Web-App verfügbar gemacht. Damit zeigt er, was mit Webtechnologien heutzutage schon möglich ist.

2 Min. Lesezeit
Anzeige
Anzeige

(Foto: Lauren Elisabeth / Shutterstock

Doom ist ein Titel des ehemaligen Software-Hauses ID, der Geschichte geschrieben hat. Die zugrunde liegende Game-Engine galt damals als bahnbrechend und leistet auch im heutigen Vergleich noch einiges. In den Nullerjahren zwang Doom so manchen Rechner in die Knie. Die Performance-Anforderungen waren hoch.

Doom 3 im Web. (Screenshot: Gabriel Cuvillier)

Doom 3 im Web. (Screenshot: Gabriel Cuvillier)

Anzeige
Anzeige

Eben dieses Spiel hat Gabriel Cuvillier nun unter dem Namen D3wasm (Doom 3 Webassembly) erfolgreich in den Web-Browser verlegt. Dabei unterstützt er nicht nur einen bestimmten, sondern wegen der Verwendung von Standards alle modernen Browser auf allen Betriebssystemen, insbesondere Firefox, Chrome, Safari, Edge und Opera. Auf mobilen Geräten lässt sich das Spiel zwar starten, kann aber von der Performance her nicht überzeugen. Auf Desktop-Browsern hingegen sind durchaus 30 bis 40 Frames per Second drin.

C und C++ ins Web per Webassembly

Wie aber hat es Cuvillier geschafft, ein Programm, das nativ in C geschrieben ist, ins Web zu portieren? Dafür bediente er sich verschiedener offener Tools und Standards.

Anzeige
Anzeige

Die Übersetzungsarbeit von C zu JavaScript erledigte er mit Emscripten. Emscripten ist ein LLVM-Werkzeugsatz, der aus C und C++ JavaScript macht und es mittels asm.js und dessen leistungsfähigerem Nachfolger Webassembly (wasm) im Browser lauffähig macht. OpenGL-Elemente werden dabei zu WebGL konvertiert, wobei Cuvillier hier allerdings nach eigenen Angaben massiv Hand anlegen musste. HTML5 wird durch Emscripten nativ unterstützt. Der so erzeugte Code soll in einer Geschwindigkeit laufen, der der Performance nativer Apps kaum nachsteht. Cuvillier zeigt damit eindrucksvoll das Potenzial von Webassembly.

Anzeige
Anzeige
Doom 3 im Web. (Screenshot: Gabriel Cuvillier)

Doom 3 im Web. (Screenshot: Gabriel Cuvillier)

Webassembly wird breit von Browsern unterstützt

Webassembly wird seit Anfang 2017 von allen großen Browsern unterstützt. Neben C und C++ per Emscripten können auch Projekte aus Rust, Go, C# und F# zu Webassembly kompiliert werden, weil diese Sprachen diese Fähigkeit bereits mitbringen. Webassembly wird eine große Zukunft vorhergesagt. Mozilla arbeitet unter dem Namen WASI (WebAssembly System Interface) daran, die Assemblersprache auch außerhalb des Webs zugänglich zu machen.

Spielbare Demo und Quellcode erhältlich

Wenn ihr euch von der Qualität der Umsetzung selbst überzeugen wollt, könnt ihr die Demo hier starten. Beachtet dabei aber, dass das Spiel erst laufen wird, wenn es die Spieldaten, immerhin 400 Megabyte, vollständig geladen hat. Diese Daten und euren Spielfortschritt nebst Konfigurationseinstellungen speichert D3wasm in einer lokalen IndexedDB. Deshalb läuft das Spiel nicht im privaten Browser-Modus.

Anzeige
Anzeige

Wer sich für den Source Code interessiert, findet ihn auf GitHub.

Passend dazu: Hohe Performance, gute Fehlerprüfung: Darum ist Rust so beliebt

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige