Spielregeln Kern
Genre-unabhängige Regeln, die jedes Spiel braucht. Genre-Eigenheiten kommen oben drauf, ersetzen sie nie.
Arbeitsablauf
- Dimension (2D/3D), Genre, Kamera und Eingabeschema identifizieren.
- Regelsatz VOR dem Code definieren: Entitäten, Zustände, Regeln, Gewinn/Verlust, Randfälle.
- Mit den untenstehenden Mustern implementieren.
references/collision.mdfür Kollisions-/Physik-Details lesen.- Eine
RULES.mdim Projekt ausgeben, die jede spielspezifische Regel auflistet, damit sie später getestet werden kann.
Universelle Struktur
- Spielschleife: Eingabe -> Update(feste dt) -> Kollision -> Zustandsauflösung -> Rendern. Feste Zeitschrittweite für Physik, variable für Rendern verwenden.
- Spielzustände:
Boot -> Menü -> Spielen <-> Pausiert -> GameOver/Sieg -> Menü. Jeder Übergang muss explizit sein; keine stillen Zustandsänderungen. - Entitäten: jede hat Position, Größe/Kollider, Geschwindigkeit, Zustand und ist Eigentümer ihrer eigenen Regeln.
- Regeltabelle: für jede Regel schreibe
Auslöser -> Bedingung -> Wirkung -> Randfall.
Regeln, die jedes Spiel definieren muss
- Gewinnbedingung, Verlustbedingung und was beim Neustart passiert (was zurückgesetzt wird, was bestehen bleibt).
- Wertung/Fortschritt: wie sie steigt, gedeckelt wird und gespeichert wird.
- Spielerleben/-leben: Schadensquelle, Unverwundbarkeitsfenster, Todesbehandlung.
- Spawn/Despawn: wo, wann, Grenzen und Bereinigung (keine Lecks).
- Schwierigkeitskurve: was skaliert und wie schnell.
- Eingabe: gleichzeitige Eingaben, Pufferung, Neubelegung, Pausenverhalten.
Genre-Erweiterungen (auswählen, was zutrifft)
- Plattformer: Schwerkraft, Sprunghöhe/variabler Sprung, Coyote-Zeit (~100ms), Sprungpuffer (~100ms), Einbahn-Plattformen, Mitbewegen auf Plattformen, Fall-Tod-Ebene.
- Runner/endlos: Geschwindigkeitsrampe, prozeduraler Spawn-Abstand garantiert passierbar, Seed für Reproduzierbarkeit.
- Shooter: Feuerrate, Projektil-Lebensdauer, Trefferregistrierung, Munition/Nachladen.
- Puzzle: deterministischer Zustand, Rückgängig, Lösbarkeitsprüfung.
- Rennspiel/3D: Kontrollpunkte, Rundenvalidierung, Anti-Abkürzungsregeln, Kamerakollision.
Harte Regeln
- Spiellogik niemals an die Bildrate koppeln.
- Niemals eine Entität die bespielbaren Grenzen ohne definierten Ausgang verlassen lassen.
- Jede Regel bekommt eine Zahl (kein "schnell", Einheiten/Sekunde verwenden).
- Zufälligkeit muss seedbar sein.