Aufgabenstellung

Software Engineering I, WS0910

Wie bereits in der Vorlesung erwähnt und in der Vorlesungsbeschreibung angemerkt erwarten wir das jede Gruppe 2 Produkte abliefert:

1. Einen GUI Client für L&S

2. Einen KI Client für L&S

Der GUI Client soll einem menschlichen Spieler ermöglichen die Rolle eines Gottes bei L&S wahrzunehmen. Dazu gehören insbesondere die Anzeige der Spielwelt (Grafiken werden geliefert, können aber geändert werden), Visualisierung von beliebigen Statusinformationen auf der Karte und die Möglichkeit Wunder zu wirken. Der Server verbietet GUI Clients übrigens das direkte Steuern von Arbeitern.

Der KI Client soll das kollektive Bewusstsein der Anhänger einer Religion / Programmiersprache sein. Er steuert jeden einzelnen Arbeiter, koordiniert den Ausbau von Siedlungen und entsendet Prediger in andere Dörfer um sie zu übernehmen. Da niemand weiß welche Widrigkeiten auf die Gläubigen zukommen können sollte die KI möglichst flexibel sein und durch die Kommunikation mit dem GUI Client den Wechsel unterschiedlicher Spielstrategien ermöglichen.

Für beide Clients gilt die beschriebene Spielmechanik.

Auserdem gibt es verschiedene technische Anforderungen:

  • Jede Gruppe nutzt die IDE Eclipse und Programmiert in Java (nur falls das jemand mit der Gleichsetzung von Religionen und Programmiersprachen in L&S verwechselt hat)
  • Für die Kommunikation mit dem Server empfehlen wir Apache MINA
  • Mehrere GUI Clients sollen sich gleichzeitig einloggen können. Der Server ist dahingehend bereits getestet.
  • Die GUI Technologie steht euch frei. Das ist Segen und Fluch zugleich – ein paar Vorschläge: Swing, JavaFX, Java2D, jME, GWT …  hat  jemand Lust für Android zu entwickeln?
  • Der KI Client muss headless laufen, da er auf einem Server 24/7 deployed wird (ihr erhaltet ssh Zugriff auf eine Linux VM oder hostet die KI selber)
  • es kann nur ein KI Client gleichzeitig laufen
  • die GUI Clients sollen die KI Clients beeinflussen können

Natürlich erwarten wir nur sorgfältig getestete und dokumentierte Releases mit einer Präsentation zu jedem Sprint.

Die Gruppenkommunikation erfolgt über die Mailinglisten des GForge, damit alle die Diskussion mitbekommen.