Files
game1.shadow-land.de/PLAN.md

14 KiB
Raw Permalink Blame History

Airline Tycoon Browser-MMO — Projektplan

Projekt: game1.shadow-land.de Status: Planungsphase Stand: 24. April 2026


1. Spielkonzept

Ein vollwertiges Airline-Tycoon-Browsergame als MMO:

  • Multiplayer: 1618 Spieler pro Session
  • Echtzeit: 1 Spieltag = 16 Stunden (Beschleunigung, nicht in Echtzeit)
  • Plattform: Browser-basiert (HTML5/JS Frontend, PHP/DB Backend)
  • Grafik: Comic-Stil (à la Airline Tycoon Original)
  • Start: Jeder Spieler beginnt mit gleichem Startkapital + 2 Grundflugzeugen

Freies Spielziel: Jeder Spieler verfolgt eigene Strategien

  • Reichste Airline
  • Meiste Flugzeuge
  • Meiste Passagiere
  • Größtes Streckennetz
  • Bestes Sabotage-Imperium

2. Spielwelt — Reale Flughäfen

Datenquelle

  • OurAirports Open Data (85.000+ Flughäfen, 1.162 große internationale)
  • IATA-Codes, Namen, Städte, Länder, Koordinaten

Spielwelt-Auswahl (Phase 1)

60 Flughäfen weltweit — ausgewogen auf alle Kontinente:

Region Flughäfen
Europa FRA, LHR, CDG, AMS, MUC, ZRH, FCO, MAD, BAR, LBU
Nordamerika JFK, LAX, ORD, DFW, ATL, SFO, MIA, SEA, YYZ, YVR
Asien DXB, HND, PEK, PVG, NRT, SIN, HKG, ICN, DEL, BKK
Naher/Mittlerer Osten DOH, AUH, JED, RUH, IST, AMM, BEY
Südamerika GRU, GIG, EZE, BOG, LIM, SCL, CCS, BHI
Afrika JNB, CAI, CMN, LOS, ADD, NBO, SEZ
Ozeanien SYD, MEL, AKL, WLG

Flughafen-Attribute (pro Flughafen, pro Runde)

  • Passagier-Nachfrage: variiert nach Wirtschaftslage
  • Treibstoffpreis: schwankt täglich
  • Flughafengebühren: fix pro Start/Landung
  • Slots: begrenzte Start-/Landezeitfenster
  • Regionaler Bonus: manche Routen haben höhere Nachfrage

3. Flugzeuge

Flugzeugtypen (realistische Vorbilder)

Name Hersteller Range (km) Kapazität (Pax) Kaufpreis Crew-Kosten/Tick
Prop 1 Dash 8-100 1.500 37 500.000 200
Prop 2 ATR 72-500 1.650 70 1.500.000 300
Narrowbody 1 A320-200 5.700 150 8.000.000 600
Narrowbody 2 B737-800 5.700 162 9.500.000 650
Widebody 1 B777-200 12.000 300 35.000.000 1.200
Widebody 2 A350-900 15.000 325 42.000.000 1.400
Langstrecke A380-800 15.200 525 85.000.000 2.000

Flugzeug-Zustand

  • Zustandswert: 100% → 0% (bei Absturz/Sabotage)
  • Wartung: Alle 50 Ticks fällig, senkt Zustand um 5%
  • Reparatur: Kosten = (Kaufpreis × fehlende %)
  • Absturz: Bei Sabotage oder Zustand 0%

Flugzeug-Design (Customization)

  • Lackierung: 12 Farben + Airline-Logo-Text
  • Sitzklassen: First/Business/Economy Mix konfigurierbar
  • Ausstattung: WLAN, Unterhaltung, Mahlzeiten (beeinflusst Zufriedenheit)

4. Routen & Flugplanung

Routen-System

  • Route mieten: Kosten pro Tag (10.000500.000/Tag je nach Beliebtheit)
  • Route kaufen: Einmalkauf (Kaufpreis = 100× Tagesmiete)
  • Flugroute: Direktflug von A nach B
  • Distance: Berechnet aus Koordinaten (Haversine-Formel)

Tägliche Berechnungen pro Route

Einnahmen/Tick = gebuchte_Pax × Ticketpreis × Nachfrage_Faktor
Kosten/Tick    = Treibstoff × (Distanz/Verbrauch) + Crew_Kosten + Gebühren

Ticketpreis-Setzung

  • Min/Max: abhängig von Distanz (0,052,00 €/km)
  • Nachfrage-Kurve: zu hohe Preise → weniger Passagiere
  • Komfort-Faktor: Ausstattung beeinflusst Nachfrage

Flugplan (pro Flugzeug)

  • Startflughafen, Zielflughafen, Abflugzeit (Tick)
  • Automatische Rundflüge bis Flughafen voll ist oder Flugzeug umgeleitet wird

5. Finanzen

Kontostand

  • Startkapital: 10.000.000 Credits
  • Kredite: max. 50.000.000, Zins 2% pro Spieltag
  • Bankrott: Kontostand < -10.000.000 → Game Over, Session wird verlassen

Einnahmen

  • Passagier-Tickets (Hauptquelle)
  • Fracht (wenn Cargo-Flugzeug auf Route)
  • Werbeverträge (tägliche Prämie für frequentierte Routes)

Ausgaben

  • Crew-Gehalter (täglich)
  • Treibstoff (täglich, preisvariabel)
  • Flughafengebühren (Start/Landung)
  • Routen-Mieten (täglich)
  • Wartung (periodisch)
  • Werbung (optional)
  • Kreditzinsen (täglich)
  • Sabotage-Kosten

Finanzübersicht (pro Spieler)

  • Tagesbilanz
  • Historie (letzte 30 Spieltage)
  • Rankings: Kontostand, Umsatz, Gewinn

6. Sabotage-System

Verfügbare Sabotage-Aktionen

Aktion Kosten Wirkung Gegenmaßnahme
** Essen versalzen** 50.000 Crew-Zufriedenheit -30% auf einer Route für 5 Ticks → Einnahmen -40% Ersatz-Crew ordern (20.000)
** Treibstoff manipulieren** 80.000 Flugzeug verliert 20% Zustand Wartung früher einplanen
** Slot-Störung** 30.000 Ziel-Flughafen-Slot für 2 Ticks blockiert Slot-Warteschlange abwarten
** Werbekampagne sabotieren** 40.000 Konkurrent verliert Passagiere auf einer Route für 3 Ticks Eigene Werbung
** Mechaniker bestechen** 60.000 Wartung eines Flugzeugs verzögert sich um 10 Ticks Interner Mechaniker (extra teuer)
** Passagier-Skandal** 100.000 Negativ-Presseecho auf gesamte Airline für 7 Ticks → alle Routen -25% PR-Kampagne schalten (50.000)
** Slots aufkaufen** 150.000 Die eigenen Slots am Zielflughafen verdoppeln Konkurrenz kann Gegen-Slots kaufen
** Sicherheitsbeamter abwerben** 45.000 Sabotage-Abwehr eines Konkurrenten für 10 Ticks deaktiviert Gegenseitige Sabotage

Sabotage-Regeln

  • Max. 3 aktive Sabotage-Aktionen pro Spieler gleichzeitig
  • Aktionen werden als "Gerüchte" in der Presse angezeigt
  • Sabotage-Erfolgschance: 70% (kann durch Sicherheitspersonal erhöht werden)
  • Sicherheitsstufe der Airline: 05 Sterne (kostenloser Basisschutz)

7. KI-Rivalen (NPC-Spieler)

NPC-Typen

  • Passiv: Kauft selten Flugzeuge, wenig aktiv
  • Normal: Ausgewogene Strategie, konkurriert moderat
  • Aggressiv: Sabotiert häufig, drängt auf Expansionskurs
  • Bedenklicher Investor: plant langfristig, wartet auf beste Deals

NPC-Verhalten pro Tick

  1. Prüfe Finanzen
  2. Prüfe Routen-Einnahmen
  3. Entscheide: Neues Flugzeug kaufen / Route mieten / Sabotage / Wartung
  4. Aktualisiere Ticketpreise basierend auf Nachfrage
  5. Zufalls-Events (Ereignisse im Spiel)

NPC-Start-Konfiguration

  • Gleiches Startkapital (10.000.000 Credits)
  • Gleiche 2 Grundflugzeuge
  • Zufälliger NPC-Typ + zufälliger Airline-Name

8. Spieler-Konto & Authentifizierung

Registrierung

  • Benutzername (einzigartig, 320 Zeichen)
  • E-Mail
  • Passwort (hashed)
  • Airline-Name (einzigartig, 330 Zeichen)

Login

  • Session-basiert (PHP Sessions + Cookie)
  • "Angemeldet bleiben" für 30 Tage

Spieler-Profil

  • Airline-Name und Logo (Text-basiert, Comic-Schriftart)
  • Airline-Farbe (1 aus 12 Farben)
  • Statistiken: Spieltage, Flüge, Passagiere, Sabotage-Erfolge
  • Rangliste-Position

9. Matchmaking & Session-System

Session-Aufbau

  • Min. Spieler: 16 (1 Mensch reicht, Rest KI)
  • Max. Spieler: 18
  • Matchmaking: Wer sich einloggt ohne offene Session → neue Session erstellen

Session-Verwaltung

Session[ID]
  - status: 'open' | 'running' | 'closing' | 'finished'
  - players: [SpielerID, ...] (max 18)
  - npcs: [NPC-ID, ...] (bis 16 humans + 2 minimum NPCs)
  - day: aktueller Spieltag
  - opened_at: timestamp
  - closes_at: timestamp (opened_at + 90 days) — danach keine neuen Spieler
  - ends_at: timestamp (opened_at + ~365 Tage) — Saisonende

Spielerbeitritt

  • Session hat < 16 Menschen → KI füllt auf 16 auf
    1. Mensch kommt → Session bleibt bei 16 Menschen (KI wird entfernt wenn ≥16 Menschen)
    1. Mensch kommt → Neue Session wird erstellt
  • Bei Verbindung: automatisch nächste offene Session oder neue

Session-Lebenszyklus

  • Öffnungsphase: Session ist offen für Neueinsteiger
  • Max. Laufzeit: 3 Kalendermonate (90 Tage) — dann automatische Neue Session
  • Schlussphase: Nach 3 Monaten: keine neuen Spieler mehr, Rest spielt weiter bis Ende
  • Saisonende: Nach ~6 Spielmonaten (realistisch 1 Jahr) wird Session abgeschlossen, Leaderboard-Ehren vergeben
  • Grund: Gleiche Startbedingungen für alle, kein ewiges Aufholen müssen

Session-Leave

  • Spieler verlässt Session → Lücke wird NICHT aufgefüllt (bis Session beendet)
  • Bei Disconnect: Spieler hat 7 Spieltage Zeit wieder beizutreten, sonst rausgeworfen

10. Spiel-Tick & Zeit-System

Tick-System

  • 1 Spieltag = 16 Stunden = 1 Echtzeit-Tag
  • 1 Tick = 1 Stunde (16 Ticks pro Spieltag)
  • Cron-Job alle 2,5 Echtzeit-Stunden (später: kontinuierlich via PHP CLI daemon)

Pro Tick berechnet:

  1. Alle Flugzeuge bewegen sich (Distanz → Tick-Dauer)
  2. Einnahmen/Ausgaben kalkulieren
  3. Sabotage-Effekte prüfen
  4. NPC-Entscheidungen ausführen
  5. Nachrichten/Events generieren
  6. Leaderboards aktualisieren

Spieltag-Ende:

  1. Tagesbilanz zusammenfassen
  2. Zinsberechnung für Kredite
  3. Wartungsintervalle prüfen
  4. Sabotage-Timer aktualisieren
  5. Presse/News-Report generieren
  6. Leaderboard-Updates

11. Leaderboards

Rankings (pro Session)

Rangliste Sortierung
🏆 Kontostand Guthaben (Assets - Schulden)
✈️ Flugzeug-Flotte Anzahl Flugzeuge (nach Kaufpreis)
👥 Passagiere Gesamte transportierte Pax
💰 Umsatz Summe aller Einnahmen
📉 Gewinn Umsatz - Ausgaben (letzte 30 Tage)
🌍 Routen-Netz Anzahl aktive Routen
Sabotage-Erfolge Erfolgreiche Aktionen

Globale Rankings (alle Sessions kumuliert)

  • All-Time richest airline
  • Most flights completed
  • Best Saboteur Award

12. Benutzeroberfläche (UI)

Seiten/Views

  1. Dashboard — Übersicht: Kontostand, Flotte, nächste Flüge, aktive Routen, Leaderboard-Vorschau
  2. Flughäfen — Weltkarte mit allen Flughäfen, eigene Routen markiert, Nachfrage anzeigen
  3. Flugzeuge — Eigene Flotte, Zustand, nächste Wartung, Flugzeug kaufen
  4. Routen — Eigene Routen, Ticketpreise, Passagier-Zahlen, Routen mieten/kündigen
  5. Sabotage — Aktive Aktionen, Sabotage-Report, Sicherheitsstufe
  6. Finanzen — Bilanz, Kontobewegungen, Kredite, Tagesbericht
  7. Markt — Flugzeug-Markt (Gebrauchtflugzeuge), Treibstoff-Preise
  8. Presse — Nachrichten, Gerüchte, Industrie-News
  9. Ranglisten — Alle Leaderboards
  10. Profil — Airline-Name, Logo, Statistiken, Einstellungen

Design / Grafik

  • Comic-Stil: Cartoon-Flugzeuge (SVG/CSS gezeichnet), bunte Farben
  • Flugzeug-Grafiken: Einfache SVG-Icons pro Flugzeugtyp
  • Weltkarte: Interaktive SVG-Weltkarte mit Flughafen-Markern
  • Schriftart: Humorvolle Comic-Schrift (z.B. Bangers, Russo One via Google Fonts)
  • Farben: Knallige Airline-Farben, Pastell-Töne, dunkle Panels

13. Technische Architektur

Stack

  • Backend: PHP 8.4 + SQLite (für Portabilität) oder MariaDB (bestehend)
  • Frontend: Vanilla JS + CSS Grid/Flexbox (kein Framework nötig)
  • Server: Bestehender Server (Caddy, PHP-FPM)
  • Session: Browser-Cookies + Server-seitige DB-Sessions

Datenbank-Schema (Kerntabellen)

users              — Account-Daten
airlines           — Airline-Profile pro User
sessions           — Spiel-Sessions
session_players    — Spieler in Sessions (Link User <-> Session)
airports           — Flughafen-Referenzdaten
routes             — Gemietete/gekaufte Routen pro Airline
aircraft           — Flugzeuge pro Airline
flights            — Aktive/ geplante Flüge
sabotage_actions   — Aktive Sabotage-Aktionen
news_events        — Presseberichte / Events
game_state         — Aktueller Tick-Stand pro Session

Spiel-Berechnung (Batch)

  • PHP CLI Skript, läuft alle 2,5 Std per Cron
  • Oder: while(true) Loop mit 5-Min-Pausen
  • Berechnet alle aktiven Sessions parallel

Sicherheit

  • Passwort-Hashing (bcrypt)
  • CSRF-Token für alle POSTs
  • Input-Validierung
  • SQL-Injection-Schutz (Prepared Statements)
  • Session-Timeouts

14. Spiel-Balance

Startbedingungen

  • Startkapital: 10.000.000 Credits
  • Startflugzeuge: 2× Prop 1 (Dash 8-100)
  • Freie Route: 1× regionale Route (z.B. Frankfurt → München)

Wirtschaftsparameter

  • Treibstoff: 0,802,50 €/Liter (variiert täglich)
  • Passage-Nachfrage: 100 Pax/Tag pro Route (Basis, modifiziert durch Economy-Faktor)
  • Gebühren: 5.00050.000 € pro Start/Landung je nach Flughafen
  • Crew-Kosten: 2002.000 €/Tick je nach Flugzeugtyp
  • ROI: Typischer Payback ~3060 Spieltage pro Route

Zeitrahmen (geschätzt)

  • Frühe Phase (Tage 110): Flugzeug kennenlernen, erste Routen
  • Expansionsphase (Tage 1050): 25 Flugzeuge, 310 Routen
  • Wettbewerbsphase (Tage 50200): Große Flotten, Sabotage, KI wird aggressiver

15. Implementierungs-Phasen

Phase 1: Grundgerüst ★

  • Datenbank-Schema erstellen
  • User-Registrierung / Login
  • Flughafen-Daten importieren (60 Flughäfen)
  • Grundlegende UI (Dashboard, Flughafen-Karte)
  • Ergebnis: Anmeldung möglich, Weltkarte mit Flughäfen sichtbar

Phase 2: Flugzeuge & Finanzen ★★

  • Flugzeug-Modell (Kauf, Zustand, Wartung)
  • Finanzen-Modell (Einnahmen, Ausgaben, Kredite)
  • Flugzeug-Übersicht
  • Ergebnis: Echte Flugzeuge kaufen und fliegen sehen

Phase 3: Routen & Flugpläne ★★☆

  • Routen-System (mieten/kaufen)
  • Flugplanung (pro Flugzeug)
  • Tägliche Berechnung (Tick)
  • Ergebnis: Eigene Routen betreiben, Einnahmen sehen

Phase 4: NPCs & Matchmaking ★★☆

  • NPC-AI
  • Matchmaking-Logik
  • Session-System
  • Ergebnis: 16 Spieler (KI) in einer Session

Phase 5: Sabotage ★★★

  • Sabotage-Aktionen
  • Sicherheitsstufen
  • Presse/Events
  • Ergebnis: Sabotage möglich + News-System

Phase 6: Leaderboards & Polish ★★☆

  • Alle Leaderboards
  • Presse-Seite
  • Spielende-Bedingungen
  • Comic-Grafiken (Flugzeuge, Flughäfen)
  • Ergebnis: Vollständiges Spiel

16. Nächste Schritte (sofort)

  1. Projekt-Repo auf Gitea anlegen
  2. Datenbank-Schema designen
  3. User-System programmieren
  4. Flughafen-Daten importieren
  5. Comic-Sprite-Grafiken erstellen (oder素材 finden)

Erstellt: 24. April 2026 Geschätzer Aufwand: ~200300 Stunden Entwicklungszeit