Einführung in die Spieleentwicklung für das Web
Das moderne Web hat sich schnell zu einer geeigneten Plattform entwickelt – nicht nur für die Entwicklung beeindruckender, hochwertiger Spiele, sondern auch für deren Verbreitung. Dieser Artikel stellt Ihnen die Vorteile des Webs als Spieleplattform und die Technologien vor, die dies ermöglichen.
Die Bandbreite der Spiele, die sich für das Web entwickeln lassen, steht der von Desktop- und nativen Betriebssystemplattformen in nichts nach. Mit modernen Webtechnologien und einem aktuellen Browser lassen sich beeindruckende, erstklassige Spiele für das Web entwickeln. Dabei geht es nicht um einfache Kartenspiele oder soziale Multiplayer-Spiele, wie sie früher mit Flash® umgesetzt wurden. Es geht um 3D-Action-Shooter, Rollenspiele und mehr. Dank erheblicher Leistungssteigerungen bei der Just-in-Time-Kompilierung von JavaScript und neuer APIs können Sie Spiele entwickeln, die im Browser oder auf Geräten mit HTML5 laufen, ohne Kompromisse eingehen zu müssen.
HTML als Spieleplattform
Sie können das Web als eine bessere Zielplattform für Ihr Spiel betrachten. Wie wir gern sagen: „Das Web ist die Plattform.“ Sehen wir uns die Kernbestandteile der Webplattform an:
| Funktion | Technologie |
|---|---|
| Audio | Web Audio API |
| Grafik | WebGL (OpenGL ES 2.0) |
| Eingabe | Touch-Events, Gamepad API, Gerätesensoren, WebRTC, Full Screen API, Pointer Lock API |
| Sprache | JavaScript (oder C/C++, das mit Emscripten zu JavaScript kompiliert wird) |
| Netzwerk | WebRTC und/oder WebSockets |
| Speicherung | IndexedDB oder die „Cloud“ |
| Web | HTML, CSS, SVG (und vieles mehr!) |
Die geschäftlichen Vorteile
Ob Sie als Einzelperson oder für ein großes Spielestudio entwickeln: Sie möchten wissen, warum es sinnvoll ist, Ihr nächstes Spielprojekt auf das Web auszurichten. Sehen wir uns an, wie das Web Ihnen dabei helfen kann.
- Die Reichweite des Webs ist enorm: Es ist überall. Mit HTML entwickelte Spiele laufen auf Smartphones, Tablets, PCs und Smart-TVs.
- Marketing und Auffindbarkeit werden verbessert. Sie sind nicht darauf beschränkt, Ihre App im App-Store eines anderen Anbieters zu bewerben. Stattdessen können Sie Ihr Spiel im gesamten Web und über andere Medien vermarkten. Dabei profitieren Sie davon, dass sich Webinhalte leicht verlinken und teilen lassen, um neue Kunden zu erreichen.
- Sie behalten dort die Kontrolle, wo es darauf ankommt: bei Zahlungen. Sie müssen nicht 30 % Ihrer Einnahmen abgeben, nur weil sich Ihr Spiel im Ökosystem eines anderen Anbieters befindet. Stattdessen bestimmen Sie Ihren Preis selbst und nutzen einen Zahlungsdienst Ihrer Wahl.
- Sie können Ihr Spiel jederzeit aktualisieren. Sie müssen nicht auf eine Freigabe warten, während jemand in einem anderen Unternehmen entscheidet, ob Ihre wichtige Fehlerbehebung heute oder morgen veröffentlicht wird.
- Sie bestimmen selbst über Ihre Analysen. Statt sich darauf zu verlassen, dass jemand anderes festlegt, welche Analysen Sie benötigen, können Sie eigene Daten erheben oder einen Drittanbieter Ihrer Wahl nutzen, um Informationen über Ihre Verkäufe und die Reichweite Ihres Spiels zu sammeln.
- Sie können die Beziehung zu Ihren Kunden auf Ihre Weise direkter gestalten. Kundenfeedback muss nicht mehr durch die begrenzten Möglichkeiten eines App-Stores gefiltert werden. Treten Sie ohne Vermittler so mit Ihren Kunden in Kontakt, wie Sie es möchten.
- Ihre Spieler können Ihr Spiel jederzeit und überall spielen. Da das Web allgegenwärtig ist, können Ihre Kunden den Status ihres Spiels auf dem Smartphone, Tablet, privaten Laptop, Arbeitsrechner oder einem anderen Gerät prüfen.
Webtechnologien für Spieleentwickler
Sehen wir uns die APIs an, die das Web für die Spieleentwicklung bietet. Die folgende ausführliche Liste vermittelt Ihnen einen Eindruck davon, was Sie mit dem Web umsetzen können:
- Fetch API
-
Senden und empfangen Sie beliebige Daten über einen Webserver – vom Herunterladen neuer Spiellevel und Grafiken bis zum Austausch von Spielstatusinformationen, die nicht in Echtzeit übertragen werden müssen.
- Full Screen API
-
Mit dieser einfachen API kann Ihr Spiel den gesamten Bildschirm einnehmen und die Spieler so noch stärker ins Geschehen eintauchen lassen.
- Gamepad API
-
Wenn Ihre Nutzer Ihr Spiel mit Gamepads oder anderen Spielcontrollern steuern können sollen, benötigen Sie diese API.
- HTML und CSS
-
Mit diesen beiden Technologien können Sie die Benutzeroberfläche Ihres Spiels erstellen, gestalten und anordnen. Zu HTML gehört das Element
<canvas>, das eine Möglichkeit zum Erstellen von 2D-Grafiken bietet. - HTML-Audio
-
Mit dem Element
<audio>können Sie einfache Soundeffekte und Musik abspielen. Für anspruchsvollere Anforderungen an die Audioverarbeitung sehen Sie sich die Web Audio API an. - IndexedDB
-
Eine leistungsfähige API zum Speichern von Nutzerdaten auf dem eigenen Computer oder Gerät. Damit können Sie Spielstände und andere Informationen lokal speichern, sodass sie nicht bei jeder Verwendung erneut heruntergeladen werden müssen. Das hilft auch dabei, Ihr Spiel ohne Internetverbindung spielbar zu machen – etwa während eines langen Flugs.
- JavaScript
-
JavaScript, die Programmiersprache des Webs, ist in modernen Browsern sehr schnell und wird kontinuierlich schneller. Nutzen Sie JavaScript, um den Code für Ihr Spiel zu schreiben, oder sehen Sie sich Technologien wie Emscripten oder Asm.js an, mit denen Sie bestehende Spiele leichter portieren können.
- Pointer Lock API
-
Mit der Pointer Lock API können Sie die Maus oder ein anderes Zeigegerät an die Oberfläche Ihres Spiels binden. Statt einer absoluten Cursorposition erhalten Sie Änderungen der Koordinaten. So können Sie die Eingaben der Nutzer präziser erfassen und verhindern, dass Eingaben versehentlich an anderer Stelle erfolgen und dadurch wichtige Aktionen verpasst werden.
- SVG (Scalable Vector Graphics)
-
Damit können Sie Vektorgrafiken erstellen, die unabhängig von Größe und Auflösung des Bildschirms gleichmäßig skaliert werden.
- Typed Arrays
-
Typed Arrays ermöglichen Ihnen den Zugriff auf binäre Rohdaten aus JavaScript heraus. So können Sie GL-Texturen, Spieldaten und andere Daten bearbeiten, auch wenn sie nicht in einem nativen JavaScript-Format vorliegen.
- Web Audio API
-
Mit dieser API können Sie die Wiedergabe, Synthese und Verarbeitung von Audio über JavaScript-Code steuern, eindrucksvolle Soundeffekte erzeugen sowie Musik in Echtzeit abspielen und bearbeiten.
- WebGL
-
Damit können Sie leistungsfähige, hardwarebeschleunigte 3D- und 2D-Grafiken für Webinhalte erstellen. WebGL ist eine vom Web unterstützte Implementierung von OpenGL ES 2.0.
- WebRTC
-
Mit der WebRTC API (Real-Time Communications) können Sie Audio- und Videodaten steuern, Videokonferenzen ermöglichen und andere Anwendungsdaten zwischen zwei Nutzern austauschen. Sollen Ihre Spieler miteinander sprechen können, während sie Monster bekämpfen? Dann ist diese API die richtige Wahl.
- WebSockets
-
Mit der WebSocket API können Sie Ihre App oder Website mit einem Server verbinden und Daten in Echtzeit austauschen. Das eignet sich besonders für Multiplayer-Spiele, Chatdienste und Ähnliches.
- Web Workers
-
Mit Workers können Sie Hintergrund-Threads starten, die eigenen JavaScript-Code ausführen, und so moderne Mehrkernprozessoren nutzen.