12.01.2014 Aufrufe

Dokumentation zum Massive Multiplayer Online Game - Universität ...

Dokumentation zum Massive Multiplayer Online Game - Universität ...

Dokumentation zum Massive Multiplayer Online Game - Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

4. Schiffe und Missionen<br />

42<br />

Umsetzung<br />

Die Umsetzung dieser Seite gestaltete sich relativ simpel denn es mussten lediglich die Datenfelder der Flotten<br />

geschickt ausgelesen werden, da die kompletten Informationen über den Flug im Model der Flotte abgespeichert<br />

sind.<br />

Es gibt im Endeffekt 3 Abschnitte in denen man stationierte, eigene Flotten auf Mission und ankommende<br />

Flotten sehen kann. Sollten Flotten Fracht geladen haben, wird ein Button angezeigt, welcher einen<br />

AJAX-Request auslöst, der, wenn es intern keine Probleme gegeben hat die Seite neu lädt um die Werte für<br />

den Planeten zu aktualisieren.<br />

Ein weiteres Feature ist der Abbruch einer Mission, wo ebenfalls durch Drücken eines entsprechenden Knopfes<br />

ein AJAX-Request gesendet wird, der für ein Neuladen der Seite sorgt. Die Flotte deren Mission abgebrochen<br />

wurde ist anschließend sowohl im Bildschirm für eigene, als auch für ankommende Flotten.<br />

4.3 Kampfmechanismus<br />

von Isaak Mitschke<br />

Einleitung<br />

Wann immer ein Spieler einen anderen angreift kommt unser Kampfmechanismus <strong>zum</strong> Einsatz. Dieser sorgt<br />

dafür, dass Kämpfe nach einer bestimmten Logik ablaufen. Entscheidend für unsere Berechnungen sind die<br />

Angriff- und Verteidigungskraft einer Flotte. Der Angriff-/Verteidigungswert einer Flotte ist die Summe der<br />

entsprechenden Werte aller Schiffe in einer Flotte. Wir haben uns dafür entschieden, dass ein Schiff sowohl<br />

einen Angriffs- als auch einen Verteidigungswert hat, damit wir Schiffe mit verschiedenen Funktionen erstellen<br />

können. So hat z.B. eine Verteidigungsplattform einen hohen Verteidigungswert aber einen niedrigen Angriffswert,<br />

analog ein Zerstörer einen höheren Angriffswert.<br />

Ablauf und Implementierung<br />

Bei einem Angriff tritt der Angreifer gegen den Verteidiger und seine Verbündeten an (falls Mitglieder seiner<br />

Allianz Flotten bei ihm stationiert haben). Als erstes wird der „Kampfwert“ berechnet. Dieser ist die Differenz<br />

zwischen Angriffswert des Angreifers und Summe der Verteidigungswerte der Verteidigerflotten. Nun wird<br />

entschieden:<br />

• Kampfwert > 0: Angriff erfolgreich.<br />

• Kampfwert < 0: Angriff fehlgeschlagen<br />

• Kampfwert = 0: Unentschieden<br />

Der Verlierer verliert immer alle Schiffe, je nachdem wie stark er aber war, verliert auch der Gewinner Schiffe.<br />

Um dies zu realisieren wird nun vom Gewinner solange ein zufällig gewähltes Schiff gelöscht bis der<br />

Angriff-/Verteidigungswert des Gewinners kleiner oder gleich dem „Kampfwert“ ist. Damit Kämpfe aber nicht<br />

jedes Mal gleich ablaufen wird in der Schleife der Kampfwert mit einem Zufallswert zwischen 0,8 und 1,2<br />

Multipliziert.<br />

Zum berechnen der Verluste haben wir uns anfangs für folgendes Verfahren entschieden: Wähle zufällig eine<br />

der Gewinner Flotten (Falls Verteidiger der Sieger ist), wähle dann Zufällig einen der Schiffstypen. Von diesem<br />

wird dann die Anzahl in der Flotte entsprechend dekrementiert. Dies führt allerdings dazu, dass eine Flotte von<br />

jedem Schiffstyp etwa gleichviel Schiffe verliert, was zur Folge hat das besonders „wertvolle“ Schiffe von denen<br />

man nur wenige in seiner Flotte hat in der Regel alle zerstört werden. Da uns diese Ergebnisse aber zu<br />

vorhersehbar erschienen, haben wir stattdessen alle Schiffe in ein Array getan um dieses Problem zu lösen.<br />

Von diesem Array wird dann immer ein Schiff zufällig gewählt, dass gelöscht wird. Dadurch erhöht sich die<br />

Chance, ein teures, starkes Schiff nicht zu verlieren, wenn man beispielsweise mit 1000 kleinen Schiffen und<br />

einem sehr starken angreift.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!