Open-Source-Game-Engine
Native Spiele aus TypeScript
Schreib TypeScript. Liefere native Spiele aus. Kein Browser, kein C++. Bloom kompiliert dein Spiel ahead-of-time und lässt es auf Metal, DirectX 12, Vulkan und WebGPU laufen — eine Codebasis, sechs Zielplattformen, echtes PBR-Rendering und Physik direkt out of the box.
import { initWindow, windowShouldClose,
beginDrawing, endDrawing,
clearBackground, drawText,
Colors } from "bloom";
initWindow(800, 450, "My Game");
while (!windowShouldClose()) {
beginDrawing();
clearBackground(Colors.RAYWHITE);
drawText("Hello, Bloom!",
190, 200, 20, Colors.DARKGRAY);
endDrawing();
} Warum Bloom?
Bloom ist die einzige Game-Engine, mit der du TypeScript schreibst und wirklich native Spiele ausliefern kannst. Kein Electron, kein WebView, keine Browser-Runtime. Dein Code wird vom Perry-Compiler ahead-of-time kompiliert und läuft gegen einen Rust-Kern.
Einfache API
Die gesamte API passt auf ein Cheatsheet. Keine Klassen, keine Vererbung, keine Magie. Nur Funktionen, die du aufrufst.
Echt nativ
Ein Renderer, vier Backends — Metal, DirectX 12, Vulkan und WebGPU. PBR-Materialien, Cascaded Shadows, TAA und Post-FX direkt mit dabei.
Überall ausliefern
macOS, Windows, Linux, iOS, tvOS und das Web aus einer Codebasis. Bereit für Steam, App Store und itch.io.
Alles, was du brauchst
Neun modulare Subsysteme, jedes einzeln importierbar. Nutze nur, was du brauchst.
Core
Fenstererstellung, Game-Loop, Input-Handling, Timing und Frame-Steuerung.
bloom/core Shapes
2D-Formen zeichnen — Linien, Rechtecke, Kreise, Polygone — plus Kollisionserkennung.
bloom/shapes Textures
Bildladen, Texturverwaltung, Sprite-Batching und Render-to-Texture.
bloom/textures Text
TTF- und OTF-Schriftladen, Textrendering und Vermessung.
bloom/text Audio
Soundeffekte, Musikstreaming, 3D-Positionsaudio, WAV / OGG / MP3.
bloom/audio Models
glTF 2.0-Laden, GPU-Skelettanimation, PBR-Materialien, Mesh-Primitive.
bloom/models Math
Vektoren, Matrizen, Quaternionen, Easing-Funktionen und Zufallszahlengenerierung.
bloom/math Physics
Jolt-basierte Rigid- und Soft-Bodies, Charaktercontroller, Fahrzeuge, Raycasts, Constraints.
bloom/physics Scene
Retained-Mode-Szenengraph — Transformationen, Sichtbarkeit, Schatten, Material-Binding.
bloom/scene Eine Codebasis. Jede Plattform.
Bloom bildet auf jeder Plattform die native Grafik-API ab — über einen einzigen wgpu-basierten Renderer. Dein TypeScript wird zu echten Binaries kompiliert — oder zu einem WASM-Bundle fürs Web.
Was ist neu
Bloom wird aktiv entwickelt — allein in den letzten Wochen über 300 Commits. Aktuelle Highlights:
Auto-DRS & CAS-Schärfung
Dynamische Render-Skalierung passt sich automatisch an deine Ziel-FPS an, mit einem Upscale- plus RCAS-Schärfungs-Pass, damit das Bild auch bei fraktionalen Auflösungen knackig bleibt.
Planare Reflexionen + Texture Arrays
Spiegelartige planare Reflexionen mit Oblique-Clip und IBL-Fallback. Splat-gemapptes Terrain über Texture-Array-Bindings mit Mips.
Imposter-Baker-CLI
Octahedrale Atlanten für entfernte LODs — liefere dichte Wälder und Menschenmengen aus, ohne dein Draw-Call-Budget zu sprengen.
Stapelbare Post-Passes
ACES- / AgX-Tonemapping, Auto-Exposure, Bloom, DoF, Motion Blur, SSGI, SSAO, TAA — kombiniert über Ping-Pong-Render-Targets.
Plattformübergreifendes HiDPI
Windows, Linux und Web teilen sich jetzt dasselbe HiDPI-Handling, das macOS und iOS schon hatten. Deine UI bleibt auf jedem Display scharf.
WGSL-Shader-Hot-Reload
Shader speichern, Ergebnis in unter einer Sekunde sehen. Materialien werden während der Entwicklung an Ort und Stelle neu kompiliert.
Vertraute Patterns, native Power
Schlichte Interfaces, reine Funktionen, null Magie. Wenn du TypeScript kennst, kennst du Bloom.
2D-Formen & Kollision
import { drawRect, drawCircle,
checkCollisionRecs } from "bloom/shapes";
drawRect(100, 100, 200, 80, Colors.GREEN);
drawCircle(400, 300, 50, Colors.GOLD);
if (checkCollisionRecs(player, enemy)) {
playSound(hitSound);
} 3D-Kamera & Models
const camera: Camera3D = {
position: { x: 10, y: 10, z: 10 },
target: { x: 0, y: 0, z: 0 },
up: { x: 0, y: 1, z: 0 },
fovy: 45, projection: 0
};
beginMode3D(camera);
drawModel(tree, { x: 0, y: 0, z: 0 });
drawGrid(10, 1);
endMode3D(); Bereit, dein Spiel zu bauen?
Bloom ist Open Source und kostenlos. Spring rein, bau etwas und liefere es überall aus.