Werkzeuge für die Spieleentwicklung

Auf dieser Seite finden Sie Links zu unseren Artikeln über Spieleentwicklungswerkzeuge, die letztendlich Frameworks, Compiler und Debugging-Tools abdecken sollen.

asm.js

asm.js ist ein sehr eingeschränkter Teil der JavaScript-Sprache, der erheblich optimiert und in einer Ahead-of-Time (AOT) Compiling-Engine ausgeführt werden kann, um eine viel schnellere Leistung als die typische JavaScript-Leistung zu erreichen. Dies ist natürlich großartig für Spiele.

Emscripten

Ein LLVM-zu-JavaScript-Compiler; mit Emscripten können Sie C++ und andere Sprachen, die in LLVM-Bytecode kompiliert werden können, in hochleistungsfähiges JavaScript kompilieren. Dies ist ein ausgezeichnetes Werkzeug zum Portieren von Anwendungen ins Web! Es gibt ein nützliches Emscripten-Tutorial auf der Wiki.

Firefox Profiler

Der Firefox Profiler ermöglicht es Ihnen, Ihren Code zu profilieren, um herauszufinden, wo Ihre Leistungsprobleme liegen, damit Sie Ihr Spiel auf Höchstgeschwindigkeit laufen lassen können.

Werkzeugkette für die Entwicklung und das Debuggen von Spielen

Wie unterscheidet sich dies vom normalen Debugging von Web-Apps? Welche speziellen Werkzeuge sind verfügbar? Vieles davon wird von Will in tools behandelt, aber hier sollten wir eine Art praktisches Werkzeugketten-Tutorial zum Debuggen von Spielen bereitstellen, mit Links zu Wills Materialien:

  • Grundlegender Überblick über die Werkzeuge
  • Shader-Editor
  • Leistungswerkzeuge (noch in Produktion, voraussichtlich Anfang 2014)

Web-Technologien

Web-Technologien in der Spieleentwicklung und ihre Funktion
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++ unter Verwendung von Emscripten, um in JavaScript zu kompilieren)
Netzwerk WebRTC und/oder WebSockets
Speicherung IndexedDB oder die "Cloud"
Web HTML, CSS, SVG (und vieles mehr!)
Fetch API

Senden und Empfangen jeder Art von Daten, die Sie von einem Webserver benötigen, wie das Herunterladen neuer Spielebenen und Grafikdateien bis hin zur Übertragung von nicht echtzeitkritischen Spielstatusinformationen hin und her.

Full Screen API

Vollbild-Spielverlauf.

Gamepad API

Verwenden Sie Gamepads oder andere Game-Controller.

HTML und CSS

Erstellen, gestalten und layouten Sie die Benutzeroberfläche Ihres Spiels.

HTML-Audio

Einfaches Abspielen von Soundeffekten und Musik.

IndexedDB

Speichern Sie Benutzerdaten auf ihrem eigenen Computer oder Gerät.

JavaScript

Schnelle Web-Programmiersprache, um den Code für Ihr Spiel zu schreiben. Um Ihre bestehenden Spiele einfach zu portieren, verwenden Sie Emscripten oder Asm.js

Pointer Lock API

Sperren Sie die Maus oder ein anderes Zeigegerät innerhalb der Benutzeroberfläche Ihres Spiels.

SVG (Scalable Vector Graphics)

Erstellen Sie Vektorgrafiken, die unabhängig von der Größe oder Auflösung des Benutzerdisplays sanft skaliert werden.

Typed Arrays

Greifen Sie auf rohe Binärdaten innerhalb von JavaScript zu; Manipulieren Sie GL-Texturen, Spieldaten oder alles andere.

Web Audio API

Kontrollieren Sie die Wiedergabe, Synthese und Manipulation von Audio in Echtzeit.

WebGL

Erstellen Sie hochleistungsfähige, hardwarebeschleunigte 3D- (und 2D-) Grafiken. OpenGL ES 2.0.

WebRTC

Echtzeitkommunikation zur Steuerung von Audio- und Videodaten, einschließlich Videokonferenzen und dem Senden anderer Anwendungsdaten zwischen zwei Benutzern wie Chat.

Websockets

Verbinden Sie Ihre App oder Website mit einem Server, um Daten in Echtzeit hin und her zu übertragen. Perfekt für Mehrspieler-Gaming, Chat-Dienste und dergleichen.

Web Workers

Erzeugen Sie Hintergrund-Threads, die ihren eigenen JavaScript-Code für Multicore-Prozessoren ausführen.

Native Spiele ins Web portieren

Wenn Sie ein nativer Entwickler sind (zum Beispiel Spiele in C++ schreiben) und daran interessiert sind, wie Sie Ihre Spiele ins Web portieren können, sollten Sie mehr über unser Emscripten-Tool erfahren - dies ist ein LLVM-zu-JavaScript-Compiler, der LLVM-Bytecode (z.B. generiert aus C/C++ mit Clang oder aus einer anderen Sprache) nimmt und in asm.js kompiliert, das im Web ausgeführt werden kann.

Um loszulegen, sehen Sie sich an: