Sonntag, 4. November 2012

Fertig!!!!


Es ist geschafft! Nach drei - fast vier - Monaten voller Höhen und Tiefen, Rückschlägen, Aha-Momenten, Kaffee- und Tee-Pausen und Urlaub zwischendrin, haben wir unser Projekt fertig gestellt.

Im Folgenden haben wir unser Pflichtenheft (Stand Mitte Juli) hervorgeholt und unsere damaligen Wünsche / Spielanforderungen mit dem Ergebnis verglichen. Die grün markierten Spiegelstriche stellen die erfüllten, die rot markierten die nicht erfüllten Projektpunkte dar. Die ursprünglich geplanten Hindernisse - die zufällig auf dem Spielfeld erscheinen sollten - haben wir zur Spielfeldbegrenzung (um-)deklariert. Die blau markierten Spiegelstriche sind Funktionen, die wir bei der Projektplanung nicht bedacht hatten, aber zusätzlich eingefügt haben, um das "Spielerlebnis" noch besser zu gestalten.

Die Schlange 

  • soll über das Spielfeld gesteuert werden,
  • bewegt sich automatisch fort,
  • wird über Pfeiltasten gesteuert,
  • sammelt Objekte ein und je mehr Objekte einsammelt werden, desto länger wird diese und
  • desto mehr Punkte erhält der Spieler.
  • berührt ein Hindernis oder sich selbst, dann endet das Spiel mit „Game Over“ und
  • nach dem Spielende wird der Spielstand in die Highscore-Liste eingetragen
  • kann mit der Leertaste gestoppt und mit der Eingabe-Taste weitergeführt werden.
  • startet erst, wenn die Spielerin / der Spieler im Menü "Neues Spiel" auswählt.
  • besitzt eine Farbe. Auch das Futter wird farblich dargestellt.

Auf dem Spielfeld 

  • befinden sich Hindernisse, die von der Schlange nicht berührt werden dürfen
  • erscheinen zufällig Objekte, die von der Schlange eingesammelt werden müssen
  • erscheinende Objekte bringen Punkte ein und sollen in einer bestimmten Farbe/Form erscheinen
  • erscheinende Objekte enthalten enthalten Fragen, die sich auf die Programmierung mit Java beziehen

Der Spielerin / Dem Spieler
  • soll zu Beginn des Spiels oder bei Auswahl „Neues Spiel“ die Möglichkeit gegeben werden, ein Pseudonym oder Namen anzugeben.  
  • soll der Schwierigkeitsgrad angezeigt,
  • die Spielzeit sowie Punktestand und
  • der (Nick-)Name angezeigt werden.

Das Spiel-Menü stellt folgende Operationen zur Verfügung:
  • Neues Spiel 
  • Spiel beenden 
  • Schwierigkeitsgrad „Einfach“, „Mittel“ und „Schwer“ – die Schlange bewegt sich je nach gewähltem Schwierigkeitsgrad langsamer oder schneller 
  • Hilfe und About 
  • Highscore 

Neben dem Spielfeld wird
  • der Schwierigkeitsgrad angezeigt.
  • die Spielzeit sowie Punktestand angezeigt.
  • der Name der Spielerin / des Spielers angezeigt.
  • ein Informationsbereich mit Angaben zu Steuerung und Spielregeln angezeigt.

Wünschenswerte Funktionen und Erweiterungen:
  • Bei Auswahl  “Neues Spiel“ werden Hindernisse neu auf dem Spielfeld angeordnet 
  • Musik im Hintergrund 
  • Frage-Objekte bewegen sich auf dem Spielfeld 
  • Option: Schlange wird während des Spiels schneller

Geplanter Aufbau der Gui (Juli 2012) vs. tatsächliche Gui (Oktober 2012):

Resümee:
Zusammenfassend können wir also feststellen, dass wir ausgehend von der Projektplanung viele Ideen umsetzen konnten und einige auch verwerfen mussten (wie beispielsweise das Einblenden von Frage-Objekten statt "Futter" sowie Hindernisse auf dem Spielfeld). Wenn wir unsere ersten bildlichen Entwürfe zur Javakonda betrachten, können wir feststellen: Viel schön geworden, als zunächst gedacht!!! Das Einfügen eines Bildes als Informationsbereich (anstelle von Angaben zu Name, Highscore etc.) hat uns einiges an Arbeit abgenommen, denn während unserer Arbeit am Projekt haben wir festgestellt, dass unsere anfänglichen Ideen ein wenig zu ambitioniert gewesen sind. So hat uns allein das Einfügen einer Schlange, die sich allein fortbewegt und durch Futterelemente an Größe gewinnt, fast zweieinhalb Monate Arbeit gekostet. Auch das Menü sowie die Aufteilung des JFrames in Panels sowie die grafische Arbeit waren zeitaufwändig. Zusätzliche Funktionen wie Fragen, Musik und Eingabe-Fenster (für Name etc.) wurden deshalb relativ früh im Arbeitsprozess verworfen.

Unsere Javakonda basiert auf Swing. Was uns anfänglich als leichte Projektgrundlage erschien, wurde durch eine Mail seitens des Dozenten etwas gedämpft. Darin hatten wir erfahren, dass JavaFX als Design-Grundlage gewünscht wurde - was wir leider nicht wussten und deshalb froh und munter in Swing programmiert haben. Nach langem Überlegen hatten wir dann doch die Entscheidung getroffen, unserem alten Konzept treu zu bleiben und weiterhin in Swing zu programmieren. Zum einen war diese Entscheidung dem Umstand geschuldet, dass wir schon sehr weit im Arbeitsprozess fortgeschritten waren, und zum anderen hatten wir uns stark mit Swing auseinandergesetzt, sodass ein Wechsel beziehungsweise die Umprogrammierung eines erheblichen Teils unserer Gui viel zu zeitaufwändig geworden wäre.

Alles in allem können wir nun ein fertiges Projekt vorweisen, auf das wir sehr stolz sind!

Keine Kommentare:

Kommentar veröffentlichen