→ Nutze deine eigene AI. → Geh live ohne Kostenüberraschungen.
Welten, die weiterleben, wenn niemand hinsieht: Ökologie, Wetter, ganze Ökosysteme simulieren sich ohne einen einzigen Spieler weiter. Hier bootet diese Engine echt - sieben Prozesse, vier Tiers, Dutzende Module.
Alles ist verbunden./Alles ist Entity./Alles ist simuliert.
Klassische Engines laden ein Level, spielen es ab und werfen es weg. ASE verwaltet einen persistenten Planeten: Das Weltmodell ist auf Milliarden Entities ausgelegt und wird chunk-weise gestreamt.








Das Gründungsaxiom ist Architektur, kein Slogan: Alles ist verbunden, alles ist Entity, alles ist simuliert. Damit eine CPU das ausführen kann, gilt eine harte Disziplin - Systeme rufen einander nie auf. Sie kommunizieren ausschließlich über Components.
Jede Komponente trägt ihren Status in einer VERSION-Registry - nicht behauptet, sondern automatisch aus der Commit-Historie abgeleitet. Was du hier siehst, ist der echte Stand - kein Versprechen. Architektur und Vision stehen; die Implementierung läuft - öffentlich nachvollziehbar, Commit für Commit.
seed → poc → init → core → feat → refine wird automatisch aus der Commit-Zahl jedes Components berechnet; alpha · beta · stable werden von Hand gesetzt. Klick einen Status an um exakt zu sehen, welche Components dort sitzen - direkt aus den VERSION-Registries.
Jedes Modul lebt in einem Graphen. Wähle unten ein Modul - der Graph verdrahtet sich live zu dessen echter Downstream-Kette, gezogen aus den Kausalitäts-Dokumenten der Engine. Fällt atmosphere.temperature unter genetics.cold_tolerance, friert ein Tier - zwei Module, null direkte Kopplung, eine Vergleichsregel im Hub.
Kein Skript hat das geschrieben. Die Kette unten zeigt, was der Output eines Moduls mit jedem Modul weiter unten macht - weil alle denselben Graphen teilen.
Inspiriert von Star Citizens Replication Layer - eigenständig neu gedacht für Ein-Personen-Teams: Der Spielzustand lebt an der Replica, World-Instanzen sind austauschbares Compute, und der Browser spricht ausschließlich mit der Replica. Nie mit der Engine, nie mit einer World.
Weil der Browser an der Replica hängt und nicht an der World, kann ASE das Compute hinter einer Region verschieben, teilen und mergen - ein Topic-Subscription-Handoff - während der Spieler weiterläuft. Die Nahtlosigkeit ist kein Trick; sie ergibt sich aus der Topologie.
Jede SHARED-Component existiert zweimal: als C++-Struct in EnTT auf dem Server und als becsy-Component im Browser - strukturell identisch, weil ase-codegen beide aus einer Quelle transpiliert. Von Hand gespiegelt wird nie.
class AtmoSimPrsChgSystem
: public ecs::System {
void tick(Registry& r, float dt) {
auto v = r.view<AtmoStPrsChgComponent,
AtmoStPrsBaseComponent>();
for (auto [e, chg, base] : v.each()) {
chg.timer_s += dt;
if (chg.timer_s >= 60.0f)
chg.delta = std::min(base.p, MAX_P);
}
}
};
@system(s => s.after(AtmoSimPrsAltSystem)
.inAnyOrderWithWritersOf(AtmoStPrsChgComponent))
export class AtmoSimPrsChgSystem extends System {
private readonly query = this.query(q => q.current
.with(AtmoStPrsChgComponent).write
.with(AtmoStPrsBaseComponent).read);
execute(): void {
const dt = this.delta;
for (const e of this.query.current) {
const chg = e.write(AtmoStPrsChgComponent);
const base = e.read(AtmoStPrsBaseComponent);
chg.timer_s += dt;
if (chg.timer_s >= 60.0)
chg.delta = Math.min(base.p, MAX_P);
}
}
}
registry.view<A,B>()→this.query(q => q.with(A).with(B))view.each()→query.currentstd::min / std::sin→Math.min / Math.sinfloat x = 0.0f→let x: number = 0.0float-Feld→@field.float32constexpr PI→const PI · importiert (SSOT)Zwei von Hand geschriebene Engines driften auseinander, sobald jemand einen Bug nur auf einer Seite behebt. Deshalb schreibt ASE nie zwei: Die Logik wird einmal in C++ geschrieben, und der TypeScript-Zwilling wird daraus transpiliert . Eine Logik auf beiden Seiten lässt den Browser die Welt aus einem Seed nachrechnen , statt das Bild zu streamen, einen Latenz-Spike per Prädiktion überbrücken, ohne zu stottern, und am Server eingerastet bleiben. Er driftet trotzdem - Floating-Point und Prediction tun das immer -, aber der autoritative Server zieht ihn zurück mit winzigen Deltas, so wie NTP eine Quarzuhr an einer Atomreferenz nachführt. Dieselbe Logik hält die Drift klein und die Korrektur winzig.
Components und deterministische Systeme, die auf Server und Client mit identischen Feldern existieren: der Zustand, der gerendert werden muss - Position, Druck, Gesundheit. Die transpilierten Systeme leben hier.
Buffer, Forderes, Broadcast, Persistenz und Hub-Zugriff bleiben in C++ und überqueren den Wire nie - der Client trägt nichts vom Gewicht des Servers.
NetworkInput-, RenderSync- und EntityExport-Systeme schreibt der Codegen für dich - die Leitungen, die Netzwerkdaten ins ECS einspielen und nach React synchronisieren.
float to @field.float32, uint32_t to @field.uint32. Ändere ein Feld in C++, und der Client-Typ formt sich beim nächsten Generieren neu.ASEs Reasoning-Edge-Daemon fährt die CLI, für die du ohnehin bezahlst - die schwere Iterationslast beim Bau eines LLM-getriebenen MMORPGs bleibt während der Entwicklung ein festes Monatsabo statt einer getakteten API-Rechnung.
In ASE ist ein Skill weder eine Markdown-Datei noch ein registrierter Microservice. Er ist eine ECS-Entity: zur Laufzeit aus einem deklarativen Manifest geboren, von einer Query aufgegriffen - dasselbe Alles-kann-nichts-muss-Prinzip, ausgedehnt aufs Reasoning.
id: lore-consistency-checker subscriptions: [ DialogueIntent, LoreState ] reads: [ CharacterMemory, WorldFacts ] writes: [ AnomalyIntent ] # nichts außerhalb davon ist erlaubt work_type: reasoning_heavy # ein Bedarf, kein Modellname cost_layer: game communication_pattern: standard memory: [ episodic, semantic, procedural ] quota: { usd, rate, concurrency, … } # 10 Achsen, geprüft vor dem Spend
Das Reasoning-Tier prüft jeden LLM-Call gegen zehn orthogonale Quota-Achsen. Ein prompt-injizierter oder durchdrehender Skill kann keine Rechnung auftürmen, weil die Ausgabe nie beginnt. Indie-freundliche Caps sind eine Eigenschaft der Architektur, kein Versprechen.
Anti-Cheat ist ein eingebauter Reasoning-Use-Case mit einer dreistufigen Autoritätshierarchie, die stufenweise in Richtung Unumkehrbarkeit eskaliert - und vorher haltmacht: Kein LLM darf je allein einen Spieler bannen.
Jedes MMO stirbt an denselben Wunden: Farming-Bots, Speed-Hacks, koordiniertes Griefing, galoppierende Inflation - und am Ende stehen Wipes und Abwanderung. Drei Jahrzehnte MMO-Geschichte lehren dieselbe Lektion, und nachgerüstete Kontrolle kommt zu spät: Die Wirtschaft ist dann längst vergiftet. ASE zieht diese Lektion in die Architektur ab Stunde eins: Erkennung, Quarantäne und von Menschen gegengezeichnete Sanktionen sind Engine-Primitive, kein Post-Launch-Patch.
Das sind keine Features von ASE - das sind Welten, die MIT ihr gebaut werden. Aetheria ist der Beweis im Entstehen. Mythisch an der Oberfläche, mechanisch darunter.
Die Engine ist kein Monolith - sie ist ein Stern unabhängiger L3-Module, die über einen zentralen Hub schreiben und lesen, mit null direkter Kopplung. Jedes L3-Modul steht unten im Baum - einzeln aufgeführt, mit seiner echten Reife.
ASE ist in strikten Schichten gebaut, L0 bis L5 - und die Grenze zwischen Engine und Spiel verläuft mitten hindurch. Engine-Entwickler besitzen L0 bis L3; dein Spiel baust du in L4 und L5 und siehst dabei nichts außer dem einen ase-sdk-Header.
ASE ist scharf fokussiert - und es lohnt sich, klar zu sagen, wer heute darauf bauen sollte und wer nicht. Komplementär per Design, nicht im Wettbewerb.





Wir onboarden Solo-Entwickler und kleine Studios in Wellen - lass deine Adresse da, und wir melden uns, sobald deine Welle dran ist. Kein Spam, keine Kreditkarte, keine Verpflichtung.