Category Archives: WS1112

Software Engineering I, WS1112

Hier nochmal ein paar Informationen, wie man einen temporären User erstellt. Dies ist insbesondere für die KI wichtig. Dazu ein paar Zeilen vom Server:

SE1 ColdIron-Server 2.1.9, Timeout set to 600000ms
help
Available commands after greeting: LOGIN, LOGOUT
User commands: ID, LIST USERS
Game management: LIST MAPS, CREATE GAME, LIST GAMES, JOIN GAME
Team management: LIST TEAMS
Other commands: CREATE TESTPLAYER, MSG, CHANGELOG, NOOP, HELP
send 'HELP <command>' for details
a successfull command will be acknowledged with an 'OK' line
an unsuccessfull command will be acknowledged with an 'ERROR' line
OK
help create testplayer
Creates a temporary user e.g. for testing purposes. This user exists at least for 24h hours or until the next server restart
Usage: "CREATE TESTPLAYER"
OK
login zenobios ***
USER NICK=zenobios EMAIL=andreas.scharf@cs.uni-kassel.de ROLE=SE
TEAM NAME=SE ID=19eef79
OK
create testplayer
TEMPORARY USER NICK=tempUser0 PASSWORD=oohmju
OK

Ihr müsst euch also einloggen und dann den “CREATE TESTPLAYER” Befehl absetzen. Der Rest sollte selbsterklärend sein.

Gruß,
Andreas

Software Engineering I, WS1112

Mit Version 2.1.7 des Servers kann nun auch die Userfarbe geändert werden.

Action Keys Beispiel Bemerkung
CHANGE_USER_COLOR color {"@action":"CHANGE_USER_COLOR","properties":{"entry":{"key":"color","value":"FFFF00"}}} Ändert die Userfarbe.

Betritt ein Spieler ein Spiel wird ihm vom Server automatisch eine in diesem Spiel nicht genutzte Farbe zugewiesen falls der Spieler in der aktuellen Session noch keine Farbe gewählt hat. Danach kann – analog zu den Allianzen – eine beliebige Farbe gewählt werden.

Software Engineering I, WS1112

Zwei kurze Beispiele welche Syntax unserer Server versteht:

1.) In dieser Syntax sind alle unsere Beispiele in der Erklärung unserer Befehle aufgeführt.

{ “@action”: “CREATE_ALLIANCE”,
“properties”: {
“entry”: {
“key”: “name”,
“value”: “MyAlliance”
}, {
“entry”: {
“key”: “color”,
“value”: “FFFF00”
}}}

2.) Diese Syntax versteht der Server ebenfalls korrekt.

{“@action”: “CREATE_ALLIANCE”,
“properties”: {
“entry”: [
{
“value”: “test”,
“key”: “name”
},
{
“value”: “ffffff”,
“key”: “color”
}]}}

 

Beide Beispiele führen den gleichen Befehl aus und resultieren im gleichen Ergebnis. Zumindest die zweite Syntax sollte mit den üblichen JSON-Bibliotheken erzeugbar sein.

 

Wichtig:

Erfolgreiche JSON-Befehle resultieren nicht in einem OK oder einer vergleichbaren Bestätigung. Nur wenn dieser Befehl Veränderungen im Modell bewirkt, werden diese Änderungsevents an euch gesendet.

Software Engineering I, WS1112

In diesem Artikel sollen noch ein paar Informationen zur Cold Iron Spielmechanik gegeben werden. Falls etwas unklar sein sollte, bitte einen Post in der Cold Iron Google Gruppe erstellen!

Allgemein

  • Für jeden Spieler gilt zur Zeit ein Einheitemlimit von 70 Einheiten.
  • Das Ziel für einen MOVE_UNITS Befehl kann beliebig (natürlich konform zur Befehlsübersicht) gewählt werden. Der Server berechnet automatisch den “kürzesten” Weg. Sollen die Einheiten allerdings einen bestimmten Weg gehen, so müssen die Einheiten “manuell” bewegt werden.
  • Ein Spiel ist zu Ende, falls:
    • Alle bis auf einen Spieler keine Gebäude und Einheiten mehr besitzen (OHNE Allianzen)
    • Ausschließlich Spieler der gleichen Allianz noch Gebäude/Einheiten besitzen (MIT Allianzen)

Allianzen

Spieler können sich zu Spielbeginn zu Allianzen zusammenschließen (genauer: Nach “JOIN GAME” und bevor “START_GAME”). Dort können Allianzen über die folgenden Befehle konfiguriert werden:

  • CREATE_ALLIANCE
  • DELETE_ALLIANCE
  • JOIN_ALLIANCE
  • LEAVE_ALLIANCE
  • CHANGE_ALLIANCE_COLOR

Eine genaue Beschreibung der Befehle, ist in der Befehlsübersicht zu finden. Der Server verbietet zwei Allianzen mit gleichem Namen. Zudem muss sich der Spieler nicht zwingend darum kümmern, “leere” Allianzen vor Spielbeginn zu entfernen. Sobald ein Spieler einer Allianz beigetreten ist, müssen alle anderen dem Spiel beigetretenen Spieler auch einer Allianz beitreten.

Alle Spieler die zu derselben Allianz gehören, bekommen auch die Events ihrer Allianzmitglieder. Jeder Spieler darf allerdings nach wie vor nur seine eigenen Einheiten befehligen und NICHT die anderer Allianzmitglieder. Ressourcen werden NICHT geteilt, d.h. jeder sammelt seine eigenen Ressourcen.

Kampf

Eine Übersicht über alle Einheiten und Gebäude gibt es in der Spielbeschreibung. Hier noch einige Besonderheiten:

  • Spieler müssen den Kampf NICHT selbst initiieren. Feindliche Einheiten bekämpfen sich automatisch, wenn sie sich auf dem gleichen Sektor befinden.
  • Befinden sich Einheiten zweier Spieler auf einem Sektor die sich in der gleichen Allianz befinden, findet kein Kampf statt.
  • Greift ein Spieler einen anderen Spieler an, der sowohl Gebäude, als auch Einheiten auf diesem Sektor hat, werden zuerst die Einheiten angegriffen und danach die Gebäude. Sprich: Erst wenn keine Einheiten mehr vorhanden sind, bekommen Gebäude Schaden. Eine Ausnahme bilden hier Peons: Peons welche gerade Ressourcen abbauen, nehmen regulär am Kampfgeschehen teil. Reparieren Peons allerdings gerade ein Gebäude oder bauen es auf, werden sie NICHT mitberechnet (sie befinden sich im Gebäude ;)).
  • Archer welche sich in Towern befinden, können auch NUR von Archern angegriffen werden (schließlich können Swordsmen keine Archer in Towern erreichen ;)).
  • Wird ein Gebäude zerstört in dem sich gerade Einheiten (z.B. Peons oder Archer) befunden haben, werden diese Einheiten automatisch auf den Sektor gesetzt.
Software Engineering I, WS1112

Wir haben euch ein kleines Dokument zusammengestellt, dass euch Tipps an die Hand geben soll, wie ihr eure Präsentation aufbauen und halten könnt. Das Ergebnis findet ihr unter folgendem Link:

Leitfaden zum Präsentieren

PS: Dieses Dokument soll euch eine Hilfe sein und kein Regelwerk darstellen auf Grund dessen wir die Präsentation bewerten. Die Erfahrung hat nur gezeigt, dass die meisten Studenten wenig erfahren sind, wie man Präsentationen richtig erstellt und v.a. sich darstellt. (Anmerkungen gerne an smu{@}cs.uni-kassel.de)