Aufkommen in AirlineSim

Written by martin published on 21. September 2019 in Dev-Log

In AirlineSim mögen Slots selten sein und es gibt gelegentlich einen Wettbewerb um einige gebrauchte Flugzeuge, aber am Ende des Tages ist es das Hauptziel des Spiels, einen Teil der globalen Passagier- und Frachtnachfrage zu gewinnen. Folglich ist die Modellierung des Aufkommens, um das die Spieler konkurrieren, ein Schlüsselfaktor für ein unterhaltsames, ansprechendes und realistisches Spielerlebnis.

Die Verbesserung dieses Modells ist eines unserer ältesten, aber auch schwierigsten Entwicklungsziele. In ständiger Arbeit versuchen wir, dieses Thema Stück für Stück anzugehen, und in diesem Artikel möchte ich die wichtigsten Aspekte und ihre inhärenten Herausforderungen hervorheben.

Absolutes Aufkommen

Dies ist die Grundlage für alles, was im Folgenden beschrieben wird: Es muss ein absolutes Aufkommen an Passagieren oder Fracht bestehen. In AirlineSim wird dieser absolute Bedarf pro Flughafen definiert und wir versuchen, die tatsächlichen Verkehrszahlen aus der realen Welt zu ermitteln. Wir ermitteln also, wie viele Passagiere einen Flughafen in einem bestimmten Zeitraum genutzt haben, basierend auf Daten, die von den Behörden oder den Betreibern der Flughäfen veröffentlicht wurden.

Das hat zwei große Probleme: Erstens veröffentlicht jeder Flughafen leicht unterschiedliche Statistiken, so dass einige davon Transferpassagiere beinhalten, andere nicht. Einige veröffentlichen tatsächliche Verkehrszahlen, andere nur angebotene Kapazitäten. Und wahrscheinlich erfinden einige Flughäfen einfach Werte. Zweitens ist die Erforschung dieser Daten für 4000+ Flughäfen viel Arbeit, zumal sich die Zahlen ständig verschieben. Sobald man also alle Flughäfen durchsucht hat, kann man wieder von vorne anfangen.

Im Idealfall sollte die absolute Nachfrage eine Funktion von breiteren Eigenschaften wie Bevölkerungsdichte, Wirtschaftsindikatoren usw. sein. Ziel ist es, nicht die realen Verkehrszahlen 1:1 zu reproduzieren, sondern plausible Nachfragewerte für die Simulation zu generieren. Beispiel: Im Durchschnitt wird die Nachfrage nach Flugverkehr in einem hoch entwickelten Land wie Deutschland höher sein als in einem Land wie beispielsweise Somalia.

Relatives Aufkommen

Wie der Name schon sagt, drückt das relative Aufkommen aus, welcher Prozentsatz von Passagieren und Fracht wohin reisen will. In der Vergangenheit basierten wir dies ausschließlich auf realen Flugplandaten: Man addiert einfach die Kapazitäten der Fluggesellschaften auf allen Linienverbindungen der Welt und man erhält eine Basis für die relative Nachfrage, richtig? Nicht ganz. Es gibt mehrere Probleme mit diesem Ansatz:

  1. Flugplandaten sind Kapazitätsdaten. Sie sagen nicht aus, wie viele Leute tatsächlich diese Flüge gebucht haben und es ist unmöglich, aktuelle Buchungsstatistiken zu erhalten.
  2. Die Flugplandaten sind Punkt-zu-Punkt. Große Hubs erscheinen als riesige Destinationen in den Daten, während Langstreckennachfrage wie von Europa nach Australien überhaupt nicht auftaucht (weil es keine Direktverbindungen gibt).
  3. Die Beschaffung von Flugplandaten ist teuer, so dass regelmäßige Updates nicht in Frage kommen.

Erst kürzlich haben wir ein Experiment auf Quimby gestartet, in dem wir versuchen, einige dieser Probleme anzugehen. Aus Mangel an aktuellen Alternativen verwenden wir weiterhin teure Flugplandaten, aber in einem vorgelagerten Schritt versuchen wir die Anzahl der Passagiere zu "schätzen", die über Hubs zu den Flughäfen im Netz einer Fluggesellschaft weiterfliegen. Vorrangiges Ziel ist es, das Problem der Hubs zu reduzieren, die als große Ziele erscheinen (Paradebeispiel: Hubs im Mittleren Osten, wie Dubai), obwohl die tatsächliche lokale Nachfrage relativ gering ist. Natürlich können wir nicht zaubern, so dass wir keine Informationen aus den Flugplandaten extrahieren könnnen, die nicht vorhanden sind. Daher sehen wir immer noch einige Probleme mit unseren generierten Daten und es werden mehrere zusätzliche Iterationen erforderlich sein, bevor sie für eine Veröffentlichung in allen Spielwelten bereit sind.

Dynamisches Aufkommen

Auf Idlewild will ein Passagier von Stuttgart in Süddeutschland nach Amarillo in Texas reisen. Jeden Tag. Obwohl nicht ganz unwahrscheinlich, ist es definitiv weder realistisch noch plausibel. Aber die Nachfrage in AirlineSim ist im Moment völlig statisch. Sofern wir die absoluten oder relativen Nachfragezahlen nicht anpassen, werden sie lediglich durch den AGEX verändert. Und der AGEX beeinflusst nur einen globalen Nachfragefaktor. Relativ gesehen bleiben sowohl die absolute als auch die relative Nachfrage gleich.

In der realen Welt gibt es eine Vielzahl von Faktoren, die eine Veränderung der Nachfrage im Laufe der Zeit verursachen. Auf hoher Ebene gibt es Saisonverkehr (z.B. Winter vs. Sommerurlaubsziele) und wirtschaftliche Veränderungen. Auf niedrigerer Ebene gibt es große Ereignisse und die allgemeine alltägliche Schwankung der Reisewünsche.

Sowohl Saisonverkehr als auch Veranstaltungen funktionieren in AS nicht gut: Wir können von unseren Spielern kaum verlangen, dass sie ihre gesamte Flotte zweimal im Jahr komplett umplanen, und die Auswirkungen von Ereignissen sind zu kurzfristig, um es den Spielern zu ermöglichen, tatsächlich auf sie zu reagieren.

Allerdings ist eine gewisse Fluktuation nach statistischen Wahrscheinlichkeiten etwas, das wir in Zukunft hinzufügen möchten, um Probleme wie das des oben erwähnten einzelnen STR-AMA-Pax zu lösen. Und gerade in Kombination mit dem räumlichen und qualitativen Bedarf (siehe unten) wären hier interessante Dinge möglich, um etwas mehr Variation zu erreichen.

Qualitatives Aufkommen

Der akademisch klingende Begriff "qualitatives Aufkommen" beschreibt einfach unsere drei Passagierklassen (plus Fracht): Economy, Business und First Class Passagiere wünschen unterschiedliche Qualitäten von Service. In ihrer jetzigen Form ist die qualitative Nachfrage einer der größten Kritikpunkte am Aufkommensmodell von AirlineSim. Zum einen sind die drei Passagiertypen statisch verteilt. Jeder einzelne wird als fester Prozentsatz der absoluten Nachfrage ausgedrückt. Zweitens sind die drei Arten die breitest möglichen Kategorien innerhalb derer es keine weiteren Unterschiede mehr gibt. Vereinfacht ausgedrückt wenden alle Economy-Passagiere in der Welt von AirlineSim genau die gleichen Kriterien an, um einen Flug zu bewerten, was bedeutet, dass jede Fluggesellschaft, die Economy Class anbietet, um genau die gleichen Passagiere konkurriert, ohne jegliche Differenzierungsmöglichkeit.

Wir haben in der Vergangenheit versucht, dieses Problem anzugehen, und die Behebung dieses Problems in der Zukunft nimmt immer noch einen hohen Stellenwert auf unserer Prioritätenliste ein. Die Herausforderung besteht darin, dass jede Lösung für dieses Problem auf einer Skala von "grober Übervereinfachung" (wie unser aktuelles Modell) bis "technologisch schwierig" (wie die Simulation einzelner Fluggäste mit individuellen Bedürfnissen) existiert. Unsere bisherigen Versuche (die bisher noch nicht das Licht der Welt erblickt haben) hätten etwa ein Dutzend (statt drei) Passagiertypen eingeführt, was das Problem zwar teilweise gelindert, aber nicht gelöst hätte. Wir haben auch den Fehler gemacht, die Änderung mit dem geplanten Buchungsklassen-Feature zu kombinieren, was die Komplexität in die Höhe getrieben und ein Release in bestehenden Spielwelten erschwert hätte.

Wir werden dieses Thema irgendwann noch einmal aufgreifen und es wird hier zu lesen sein, sobald wir es tun!

Räumliches Aufkommen

Schlussendlich gibt es etwas, das ich "räumliches Aufkommen" nennen würde. Wie bereits erwähnt, ist die absolute Nachfrage derzeit an die Flughäfen gebunden. Dies hat, wie viele andere Dinge rund um AirlineSim, historische Gründe, vor allem weil es die Recherche nach den Bedarfsdaten relativ einfach macht. Aber offensichtlich funktioniert es in der Realität nicht so: Je nachdem wie man zählt, hat London zwischen 5 und 7 Flughäfen. All diese Flughäfen bedienen und konkurrieren um den gleichen Markt - die Stadt und die Peripherie Londons - generieren aber nicht wirklich ein eigenes, lokales Aufkommen.

Ein weitaus besseres Modell wäre es also, eine Destination namens London im Spiel zu haben, die als Ursprung des Verkehrs fungiert, und für die die Flughäfen in der Nähe lediglich als Gateways dienen. Ähnlich wie bei der qualitativen Nachfrage liegt die Herausforderung darin, wie man das Modell erstellt. Man könnte sich vorstellen, jede Stadt auf dem Planeten, jedes Dorf oder abstrakte Dichtefelder zu modellieren, die im Wesentlichen dazu dienen würden, wieder einzelne Passagiere zu generieren. Je gröber das Modell, desto auffälliger werden die Artefakte durch ungenaue Daten. Je feiner das Modell, desto schwieriger wird es, Daten dafür zu finden und desto größer wird das Problem mathematisch, was zu fast unvermeidlichen Performanceproblemen führt.

Es gibt auch eine interessante Überschneidung zwischen räumlicher und qualitativer Nachfrage: Einige Regionen sind in erster Linie Freizeitziele, während andere hauptsächlich geschäftlichen oder ethnischen Verkehr anziehen. Diese Informationen im räumlichen Nachfragemodell zu haben, wäre großartig, aber aus Sicht der Datenermittlung wieder einmal eine Herausforderung.

Aufkommensverteilung

Obwohl nicht unbedingt Teil des Aufkommensmodells, habe ich das Gefühl, dass ich auch hier die Aufkommensverteilung erwähnen muss: Wenn wir ein Aufkommensmodell hätten, das tatsächlich einzelne Passagiere erzeugt, wäre die Frage der Aufkommensverteilung unwichtig. Ein simulierter Passagier würde so nach Verbindungen suchen, wie jemand in der realen Welt dies tun würde, und dann die beste Verbindung nach seinen persönlichen Vorlieben buchen. Da wir die Nachfrage jedoch in "Chargen" (alle Bedarfe in einer bestimmten Klasse zwischen Flughafen und Flughafen) verteilen, ist der Algorithmus, der die Passagiere in einer solchen Charge auf die Verbindungen verteilt, entscheidend. Die beiden Extreme dabei sind entweder das "Auffüllen" von der besten zur schlechtesten Verbindung, bis kein Passagier mehr in der "Charge" ist, oder die Verteilung der gesamten Charge auf alle zugelassenen Verbindungen entsprechend ihrer gewichteten Bewertung. Ersteres verursacht extreme Schwankungen im Buchungsverhalten durch winzige Ratingänderungen, letzteres bevorzugt hohe Frequenzen mit vielen Kleinflugzeugen. Alles dazwischen erfordert komplizierte Regelsätze, die auf beliebigen Kriterien basieren. Ich hoffe, dass dieses Problem bis zu einem gewissen Grad verschwinden wird, sobald wir mehr verschiedene Passagiertypen haben. Wenn nicht, wird uns das noch lange Zeit den Kopf zum rauchen bringen.

Schlusswort

Ich hoffe, dass dieser Überblick über das komplexe Thema "Aufkommen in AirlineSim" einen Einblick in das vermitteln könnte, womit wir uns beschäftigen. Wir planen, unser Nachfragemodell mittel- und langfristig kontinuierlich zu verbessern und dabei möglichst viele der oben genannten Aspekte zu berücksichtigen.