14 KiB
14 KiB
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: 16–18 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.000–500.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,05–2,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: 0–5 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
- Prüfe Finanzen
- Prüfe Routen-Einnahmen
- Entscheide: Neues Flugzeug kaufen / Route mieten / Sabotage / Wartung
- Aktualisiere Ticketpreise basierend auf Nachfrage
- 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, 3–20 Zeichen)
- Passwort (hashed)
- Airline-Name (einzigartig, 3–30 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
-
- Mensch kommt → Session bleibt bei 16 Menschen (KI wird entfernt wenn ≥16 Menschen)
-
- 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:
- Alle Flugzeuge bewegen sich (Distanz → Tick-Dauer)
- Einnahmen/Ausgaben kalkulieren
- Sabotage-Effekte prüfen
- NPC-Entscheidungen ausführen
- Nachrichten/Events generieren
- Leaderboards aktualisieren
Spieltag-Ende:
- Tagesbilanz zusammenfassen
- Zinsberechnung für Kredite
- Wartungsintervalle prüfen
- Sabotage-Timer aktualisieren
- Presse/News-Report generieren
- 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
- Dashboard — Übersicht: Kontostand, Flotte, nächste Flüge, aktive Routen, Leaderboard-Vorschau
- Flughäfen — Weltkarte mit allen Flughäfen, eigene Routen markiert, Nachfrage anzeigen
- Flugzeuge — Eigene Flotte, Zustand, nächste Wartung, Flugzeug kaufen
- Routen — Eigene Routen, Ticketpreise, Passagier-Zahlen, Routen mieten/kündigen
- Sabotage — Aktive Aktionen, Sabotage-Report, Sicherheitsstufe
- Finanzen — Bilanz, Kontobewegungen, Kredite, Tagesbericht
- Markt — Flugzeug-Markt (Gebrauchtflugzeuge), Treibstoff-Preise
- Presse — Nachrichten, Gerüchte, Industrie-News
- Ranglisten — Alle Leaderboards
- 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,80–2,50 €/Liter (variiert täglich)
- Passage-Nachfrage: 100 Pax/Tag pro Route (Basis, modifiziert durch Economy-Faktor)
- Gebühren: 5.000–50.000 € pro Start/Landung je nach Flughafen
- Crew-Kosten: 200–2.000 €/Tick je nach Flugzeugtyp
- ROI: Typischer Payback ~30–60 Spieltage pro Route
Zeitrahmen (geschätzt)
- Frühe Phase (Tage 1–10): Flugzeug kennenlernen, erste Routen
- Expansionsphase (Tage 10–50): 2–5 Flugzeuge, 3–10 Routen
- Wettbewerbsphase (Tage 50–200): 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)
- ✅ Projekt-Repo auf Gitea anlegen
- Datenbank-Schema designen
- User-System programmieren
- Flughafen-Daten importieren
- Comic-Sprite-Grafiken erstellen (oder素材 finden)
Erstellt: 24. April 2026 Geschätzer Aufwand: ~200–300 Stunden Entwicklungszeit