Techniken für die Spieleentwicklung

Diese Seite listet wesentliche Kerntechniken für alle auf, die Spiele mit offenen Webtechnologien entwickeln möchten.

2D-Kollisionserkennung

Algorithmen zur Erkennung von Kollisionen in 2D-Spielen hängen von den Arten von Formen ab, die kollidieren können (z.B. Rechteck zu Rechteck, Rechteck zu Kreis, Kreis zu Kreis). Normalerweise haben Sie eine einfache generische Form, die die Entität abdeckt und als "Hitbox" bekannt ist. Auch wenn die Kollision nicht pixelgenau ist, sieht sie gut genug aus und ist bei mehreren Entitäten leistungsfähig. Dieser Artikel bietet einen Überblick über die gebräuchlichsten Techniken zur Bereitstellung der Kollisionserkennung in 2D-Spielen.

3D-Kollisionsdetektion

Dieser Artikel bietet eine Einführung in die verschiedenen Volumentechniken, die zur Implementierung der Kollisionsdetektion in 3D-Umgebungen verwendet werden. Folgeartikel werden Implementierungen in spezifischen 3D-Bibliotheken behandeln.

3D-Spiele im Web

Für reichhaltige Spielerlebnisse im Web ist die Waffe der Wahl WebGL, das auf dem HTML-canvas gerendert wird. WebGL ist im Grunde genommen ein OpenGL ES 2.0 für das Web — es handelt sich um eine JavaScript-API, die Werkzeuge bereitstellt, um reichhaltige interaktive Animationen und natürlich auch Spiele zu erstellen. Sie können damit dynamische 3D-Grafiken mit JavaScript generieren und rendern, die hardwarebeschleunigt sind.

Asynchrone Skripte für asm.js

Jedes mittelgroße oder große Spiel sollte asm.js-Code als Teil eines asynchronen Skripts kompilieren, um dem Browser die maximale Flexibilität zu geben, den Kompilierungsprozess zu optimieren. In Gecko ermöglicht die asynchrone Kompilierung der JavaScript-Engine, das asm.js abseits des Hauptthreads zu kompilieren, während das Spiel geladen wird und den generierten Maschinen-Code zu cachen, sodass das Spiel bei folgenden Laden nicht erneut kompiliert werden muss (ab Firefox 28). Um den Unterschied zu sehen, schalten Sie javascript.options.parallel_parsing in about:config um.

Audio für Web-Spiele

Audio ist ein wichtiger Bestandteil jedes Spiels; es bietet Rückmeldung und Atmosphäre. Webbasierte Audio-Unterstützung entwickelt sich rasch weiter, aber es gibt immer noch viele Unterschiede zwischen Browsern, die es zu navigieren gilt. Wir müssen oft entscheiden, welche Audio-Teile für das Spielerlebnis wesentlich sind und welche zwar schön zu haben, aber nicht notwendig sind, und entsprechend eine Strategie entwickeln. Dieser Artikel bietet einen detaillierten Leitfaden zur Implementierung von Audio für Web-Spiele und betrachtet, was derzeit auf möglichst vielen Plattformen funktioniert.

Implementierung von Spielsteuerungsmechanismen

Einer der Hauptvorteile von HTML5 als Plattform für die Spieleentwicklung ist die Möglichkeit, auf verschiedenen Plattformen und Geräten zu laufen. Die Vereinheitlichung von Unterschieden zwischen den Geräten schafft mehrere Herausforderungen, nicht zuletzt bei der Bereitstellung geeigneter Steuerungen für verschiedene Kontexte. In dieser Artikelserie zeigen wir Ihnen, wie Sie den Bau eines Spiels angehen können, das auf Touchscreen-Smartphones, mit Maus und Tastatur sowie mithilfe weniger gängiger Mechanismen wie Gamepads gespielt werden kann.

Implementierung von Steuerungen mit der Gamepad-API

Dieser Artikel untersucht die Implementierung eines effektiven, browserübergreifenden Steuerungssystems für Webspiele unter Verwendung der Gamepad-API, mit der Sie Ihre Webspiele mit Konsolenspiel-Controllern steuern können. Er enthält eine Fallstudie über das Spiel Hungry Fridge, erstellt von Enclave Games.

Klare Pixelkunst-Optik mit Bilddarstellung

Dieser Artikel behandelt eine nützliche Technik, um Ihren Canvas/WebGL-Spielen eine klare Pixelkunst-Optik zu verleihen, selbst auf hochauflösenden Monitoren.

Übersicht über Kacheln und Kachelkarten

Kachelkarten sind eine sehr beliebte Technik in der 2D-Spieleentwicklung, bei der die Spielewelt oder die Levelkarte aus kleinen, gleichmäßig geformten Bildern, den Kacheln, aufgebaut wird. Dies führt zu Leistungs- und Speicherplatzgewinnen – große Bilddateien, die gesamte Levelkarten enthalten, sind nicht erforderlich, da sie aus kleinen Bildern oder Bildfragmenten mehrfach zusammengesetzt werden. Diese Artikelreihe behandelt die Grundlagen der Erstellung von Kachelkarten mit JavaScript und der Canvas-API (obwohl dieselben High-Level-Techniken in jeder Programmiersprache verwendet werden könnten).

WebRTC Datenkanäle

Die WebRTC (Web Real-Time Communications) API ist hauptsächlich für ihre Unterstützung von Audio- und Videokommunikation bekannt; sie bietet jedoch auch Peer-to-Peer-Datenkanäle. Dieser Artikel erklärt mehr darüber und zeigt Ihnen, wie Sie Bibliotheken verwenden können, um Datenkanäle in Ihrem Spiel zu implementieren.