Spieleprogrammierung und Bugs
Wo Cheat-Möglichkeiten entstehen: in der Spieleprogrammierung selbst. Engine-Architektur, häufige Bugs.
Warum Spiele cheatbar sind
Spiele sind komplexe Softwareprojekte. Die meisten Cheats und Glitches sind nicht durch böse Absicht möglich, sondern durch:
- Time-to-Market-Druck
- Komplexe Spielmechaniken
- Trust-Annahmen zwischen Komponenten
- Performance-Optimierungen statt Sicherheit
- Veraltete Codebasen
Game Engine Architektur
Hauptkomponenten
- Renderer: Grafik-Pipeline (DirectX, Vulkan, OpenGL)
- Physics Engine: Bewegung, Kollision (Bullet, PhysX)
- Audio Engine: Sound-Mixing und 3D-Audio
- Input System: Tastatur, Maus, Controller
- AI System: NPC-Verhalten
- Networking: Multiplayer-Kommunikation
- Scripting: Lua, Python, eigene Sprachen
- Save System: Spielstand-Speicherung
Game Loop
Zentrales Pattern der Spielentwicklung:
- Input lesen
- Spielzustand aktualisieren
- Physik berechnen
- AI updaten
- Sound mischen
- Frame rendern
- Wiederholen (idealerweise 60+ mal pro Sekunde)
Wo Cheat-Möglichkeiten entstehen
Client-Side-Logik
Vieles wird auf dem Client berechnet:
- Position des Spielers (Manipulationsmöglichkeit: Teleport)
- Schaden-Berechnungen (Möglichkeit: One-Hit-Kills)
- Sichtbarkeit (Möglichkeit: Wallhack)
- Geschwindigkeit (Möglichkeit: Speed-Hack)
Server-Side Validation ist die Lösung, aber rechen-intensiv.
Trust-Annahmen
Code geht davon aus, dass Werte plausibel sind:
- „Health zwischen 0 und 100“ — aber Memory-Editor setzt auf 9999
- „Geschwindigkeit unter 10 m/s“ — Cheat setzt auf 1000
- Keine Plausibilitäts-Checks
Race Conditions
- Multiple Threads bearbeiten gleichzeitig Daten
- Bei Glück: Doppel-Items, Geld-Duplication
- Speedrunner finden das oft
Integer Overflows
- Werte werden zu groß → wickeln sich um
- Civilization Gandhi-Bug: Aggressivität auf negativen Wert
- Items mit negativer Anzahl
Beruehmte Bugs durch Programmierung
Civilization Gandhi-Aggression (Mythos und Realität)
Beliebt erzählt: Gandhi wird in Civ I durch Integer Underflow super aggressiv. Tatsächlich ist die Story komplizierter:
- Der Bug existierte vermutlich nicht im Original
- Sid Meier hat das später für Civ V als bewussten Witz eingebaut
- Wurde zur Internet-Legende
Skyrim Glitches
- Whirlwind Sprint durch Türen: Sequence Break
- Bucket auf NPC-Kopf: NPCs sehen nichts mehr, du kannst klauen
- Smithing-Enchanting-Loop: unendlicher Skill-Boost
WoW Corrupted Blood (2005)
- Bug bei Boss-Mechanik infizierte Spieler dauerhaft
- Verbreitete sich wie Pandemie in Hauptstädten
- Wurde später für epidemiologische Forschung genutzt
Minecraft Far Lands
- Bei extrem hohen X-Koordinaten: Welt wird kaputt
- Float-Precision-Problem
- Eigene „Far Lands“-Mythologie entstanden
Stardew Valley Geist-NPC
- Bestimmte Aktionen erzeugen unsichtbare NPCs
- Spieler-Dialoge mit Geistern
- Speedrunner nutzen das
Memory-Layout und Cheating
Heap-Allokation
Spielobjekte werden im Heap dynamisch angelegt:
- Pointer auf Player-Object
- Player-Object hat Health, Position, etc.
- Cheat-Engine findet diese Adressen
- Pointer-Chains stabil über Spielstarts
Globale Variablen
- Bei festen Adressen im Code-Segment
- Sehr stabil für Cheats
- Spielzustand-Pointer, Welt-Pointer oft global
VTables
- C++-Objekte haben Funktionspointer-Tabellen
- Cheats hooken Funktionen über VTable-Manipulation
- Beispiel: D3D11-Present-Funktion für Render-Hooks
Multiplayer-Code
Client-Server-Modell
- Server hat autoritative Wahrheit
- Clients senden Eingaben
- Server validiert und sendet Updates zurück
- Cheats am Client wirkungslos für Server-State
Peer-to-Peer
- Spieler haben gleiche Rechte
- Anfällig für Cheats (jeder kann lügen)
- Oft in alten Spielen, manchen Co-op-Spielen
Hybrid-Modelle
- Manche Berechnungen Client, andere Server
- Latency-Kompensation kompliziert
- Performance vs. Security trade-off
Netcode-Probleme
- Lag-Compensation: erlaubt „Peeker's Advantage“
- Tick-Rate: niedrigere Rate → mehr Unfairness
- Rollback Netcode: in Fighting Games (Guilty Gear)
Scripting-Sprachen in Spielen
Lua
- WoW Add-ons, viele Indie-Spiele
- Einfach zu mod-en
- Schnell, kleine Binary
Papyrus (Bethesda)
- Skyrim, Fallout 4
- Eigene Sprache für Quest-Logik
- Modder können tief eingreifen
UScript / Blueprint (Unreal)
- Visual Scripting
- Modding über offizielle Tools
- Blueprint reverse-engineerbar
Eigene Sprachen
- Manche Spiele rollen ihre eigene Skript-Sprache
- Bekannte: Cyberpunk 2077 (REDscript), Witcher 3 (auch RED-Engine)
Save-File-Formate
Text-basiert
- XML (Stardew Valley)
- JSON (moderne Indie-Spiele)
- Lesbar und manipulierbar
- Einfaches Save-Editing
Binär
- Custom-Formate
- Effizienter
- Schwerer zu editieren, aber mit Tools möglich
- Bethesda-Format, Sims-Format
Komprimiert/Verschlüsselt
- ZIP-Pack + interne Dateien
- Verschlüsselung (XOR oder echte Crypto)
- Pruefsummen verhindern Manipulation
Game Engines im Vergleich
Unreal Engine
- C++-basiert
- Blueprint Visual Scripting
- Hohe Modding-Möglichkeit
- Standard für AAA-Studios
Unity
- C#-basiert
- .NET-basiert, leicht zu reversieren mit dnSpy
- Sehr verbreitet bei Indies
- Anfällig für Mod-Tools
Source Engine
- Valve-Spiele (Half-Life, CS, Portal)
- Hochmodifizierbar
- Mod-Geschichte: Counter-Strike entstand als Mod
Custom Engines
- Creation Engine: Bethesda
- RED Engine: CD Projekt
- Frostbite: EA/DICE
- id Tech: id Software
Bugs vermeiden in Spielen
QA und Testing
- Automatisierte Tests
- Stresstests
- Closed/Open Beta
- Player Reports
Sichere Programmierung
- Input Validation
- Boundary Checks
- Server-Side Authority
- Plausibilitäts-Checks
Bugs in Patches behoben
Spieleentwickler reagieren auf bekannte Bugs:
- Patches und Hotfixes
- Day-One-Patch oft schon vorhanden
- Live-Service-Spiele: kontinuierliche Updates
- Manche Bugs werden absichtlich gelassen („Feature“)
Cheat-Resistenz im Design
Wie Spieleentwickler Spiele schwerer cheatbar machen:
- Server-authoritatives Spielmodell
- Anti-Cheat von Anfang an einbauen
- Hardware-Attestation
- Verschlüsselte Werte im Memory
- Verhaltens-Analyse on-server
IT-Praxis und Web-Entwicklung
Wer sich für die Technik hinter Cheats interessiert, ist oft auch an IT-Sicherheit und Web-Entwicklung interessiert. SEO NW hilft seit 2012.
SEO NW Agentur