Siegel und Leitseite der Universität zu KölnSiegel und Leitseite der Mathematisch-Naturwissenschaftlichen Fakultät
Valid HTML 4.01!

Programmierpraktikum 2007

Allgemeine Informationen zum Programmierpraktikum

Im Programmierpraktikum wird in Gruppen ein Softwareentwicklungsprojekt bearbeitet. Einige allgemeine Informationen über Ablauf und Organisation des Programmierpraktikums erhalten sie an dieser Stelle. Folien, FAQs, etc. werden ebenfalls hier bereit gestellt.

Insbesondere für Teilnehmer, die den Schein nicht bekommen haben, bieten wir eine Nachholmöglichkeit an. Informationen erhalten Sie bei Oliver Ullrich.

Aktuelles

Datum Thema Link
3 Juli 7 Erste Spiel-Clients online s.u.
18 Juni 7 Vortragsthemen für den vierten Meilenstein PDF
21 Mai 7 Vortragsthemen für den dritten Meilenstein PDF
25 Apr 7 Vortragsthemen für den zweiten Meilenstein PDF
20 Apr 7 Aufteilung der Features auf die Meilensteine PDF
17 Apr 7 Hinweise zu den Protokollklassen PDF
17 Apr 7 Protokollklassen für Client/Servern ZIP
17 Apr 7 Vortragsthemen für den ersten Meilenstein PDF
16 Apr 7 RPG-Eigenschaften PDF
14 Apr 7 Multithreading in Java PDF
12 Apr 7 Client/Server-Programmierung in Java PDF
12 Apr 7 Folien vom 11 Apr 7 online PDF
11 Apr 7 Ende des Abmeldezeitraums
10 Apr 7 Häufig gestellte Fragen und Antworten - FAQs FAQ
4 Apr 7 Folien vom 4 Apr 7 online PDF
3 Apr 7 Mailingliste aktiviert hier
2 Apr 7 Folien vom 2 Apr 7 online PDF
2 Apr 7 Beginn des Abmeldezeitraums s. u.
2 Apr 7 SQL Beispieldatei ZIP
2 Apr 7 Einführung in MySQL mit Java PDF
26 März 7 Ende des Anmeldezeitraums
21 März 7 Literatur: Game Developer Magazine s. u.
21 März 7 Hinweis: Veranstaltung der JUGC am 2 Apr 7 PDF
19 März 7 Literatur zum A*-Algorithmus hier
14 März 7 Strategien zur Dungeon-Erzeugung PDF
12 März 7 Einführung in Graphikausgabe und Maussteuerung PDF
6 März 7 Allgemeine Literatur zu Java s. u.
5 März 7 Termine für Einführungsveranstaltung sind bekannt s. u.
5 März 7 Beginn des Anmeldezeitraums
2 März 7 Tutorium zur Versionsverwaltung online hier

Projektergebnisse

Einige Gruppen haben ihre Spielclients zum Download zur Verfügung gestellt. Dies soll ausschließlich den teilnehmenden Studierenden die Möglichkeit geben, sich die vorgestellten Ergebnisse der anderen Gruppen anzuschauen und so weitere lehrreiche Erkenntnisse vermitteln. Die Verwendung wird nur zum Zwecke der Forschung und Lehre gestattet, insbesondere (aber nicht ausschließlich) ist die kommerzielle Vermarktung der Programme als Ganzes oder irgend welcher Teile untersagt. Der Lehrstuhl übernimmt keinerlei Garantie für die Funktion der Software, ebenso keinerlei Verantwortung für eventuelle physische oder psychische Schäden an anderer Software, Rechnern oder Benutzern, beteiligten oder unbeteiligten Dritten. Mit anderen Worten: Das Risiko liegt vollständig bei Ihnen.

Warnung: In den zur Verfügung gestellten Spielen können unschuldige Monster zu Schaden kommen und/oder Spielfiguren von Gewalt durchsetzte Schicksale erleiden. Es handelt sich daher möglicherweise um Programme der Kategorie "Killerspiele". Falls Sie Zweifel ob der Rechtmäßigkeit oder Sittsamkeit der hier vorhandenen Download-Möglichkeit haben, dann informieren Sie doch einfach Wolfgang.

Gruppe Software
Abyssus Für Win32: Abyssus.exe Java-Klassen: Abyssus.zip

Anmeldung

Die Anmeldung zum Programmierpraktikum war vom 5. bis zum 25. März 2007 möglich.

Abmeldung

Eine Abmeldung vom Praktikum war vom 2. bis zum 10. April 2007 möglich.

Das Projekt

Wir werden im Rahmen des Praktikums ein Multi User Dungeon (MUD) in der Tradition von Rogue und NetHack erstellen. Hierbei erkunden mehrere Spieler allein oder gemeinsam zufällig erzeugte Labyrinthe und Raumfluchten, kommunizieren miteinander, handeln gefundene Güter, bekämpfen Monster und erfüllen vom System generierte Aufträge. Ein Spiel dieses Genres, das Ihnen vielleicht bekannt ist, ist Diablo. Während wir - insbesondere auch graphisch - deutlich hinter Diablo zurück bleiben werden, wünschen wir uns schon ein etwas moderneres Aussehen als bei den erst genannten Spielen. Eine grobe Client-Server-Architektur werden wir vorgeben, um a. Vergleichbarkeit zwischen den Implementierungen der einzelnen Gruppen zu gewährleisten und b. zu verhindern, dass Sie sich völlig in die Wüste programmieren.

Das Projekt wird während der Kick-off-Phase zu Semesterbeginn detailliert vorgestellt, noch offene Fragen werden dann beantwortet.

Sie haben jetzt schon Vorschläge zum Projekt? - Kontaktmöglichkeit siehe unten.

Die Gruppen

Die Gruppen werden jeweils sechs Mitglieder haben. Die Zusammensetzung der Gruppen wird von uns nicht vorgegeben, wir erwarten lediglich an einem bestimmten Termin ein definitives Commitment von Ihnen. Wie sich Ihre Gruppe organisiert und wie Sie die Aufgaben untereinander verteilen, wird von Ihnen selbst entschieden (wobei es allerdings sicher einige nahe liegende Konstrukte geben wird). Wir warnen Sie: das Projekt ist so dimensioniert, dass eine Gruppe aus sechs engagierten Mitgliedern durchaus ausgelastet ist. Holen Sie sich also Leute ins Boot, auf die Sie sich verlassen können.

Eine Ausnahme bei der Selbstorganisation gibt es: Aus gegebenem Anlass möchten wir Ihnen nahe legen, Ihren Sourcecode zentral auf dem Institutsserver zu sichern. Alle Gruppenmitglieder haben so Zugriff auf den jeweils letzten Stand der Module und es ist gewährleistet, das kein Code verloren geht (äußerst ärgerlich!) SVN-Server setzen wir für Sie auf, eine Anleitung zur Benutzung der Clients finden Sie hier.

Voraussetzungen

Formale Voraussetzung zur Teilnahme bestehen nicht mehr, insbesondere wird es keine Zulassungsbeschränkung durch eine Klausur mehr geben. Inhaltliche Voraussetzungen sind Programmieren in Java, Projektentwicklung mit Eclipse und die Inhalte der Vorlesungen Informatik I und II.

Die Software

Um beim Programmierpraktikum mitarbeiten zu können, benötigen Sie einige (freie) Softwarepakete. Dies sind

Für die Teilnehmer, die nicht jedes Monster selbst zeichnen möchten, haben wir eine Quelle frei verfügbarer Graphiken gefunden. Bedienen Sie sich nach Gutdünken, aber beachten Sie die Nutzungsbestimmungen.

Das FAQ

Wir sind dabei, für Sie die Antworten auf die meist gestellten Fragen zusammen zu fassen und zu veröffentlichen. Unser FAQ finden Sie hier. Schauen Sie bitte vorher nach, ob Ihre Fragen vielleicht bereits beantwortet sind.

Die Termine

Zu Semesterbeginn wird es zweimal wöchentlich eine Reihe von Kick-off-Veranstaltungen geben, im Laufe des Semesters einige Plenumssitzungen, in denen die einzelnen Gruppen ihre Zwischenergebnisse vorstellen. Gegen Semesterende erfolgt dann die Endabnahme der Software.

Eine wöchentliche Sprechstunde findet ab dem 9 Apr 7 jeden Montag von 1200-1400 in R609 oder (für Gruppen) in R616 statt. Um Wartezeiten zu vermeiden, bitten wir um eine Terminabsprache per EMail.

Termine für die Einführungsveranstaltung:

Zeit Ort
Montag, 2. April, 1600-1730 Hörsaal XXIII, WiSo-Schlauch
Mittwoch, 4. April, 1600-1730 Hörsaal H 80, Philosophikum
Mittwoch, 11. April, 1600-1730 Hörsaal H 80, Philosophikum
Montag, 16. April, 1600-1730 - cancelled -
Mittwoch, 18. April, 1600-1730 - cancelled -

Die Meilensteinsitzungen werden in den folgenden Wochen statt finden. Möglicherweise werden wir - je nach Teilnehmerzahl - mehrzügig vorgehen.

Meilenstein Woche
Konzept, Klassendesign und GUI-Design 23 April 7 - 27 April 7
Prototyp (Ausbaustufe 0) 14 Mai 7 - 18 Mai 7
Ausbaustufe 1 4 Juni 7 - 8 Juni 7
Ausbaustufe 2 25 Juni 7 - 28 Juni 7

Die Literatur

Zu verschiedenen Themen stellen wir Literatur für Sie zur Verfügung. Nicht jeder muss zu jedem Thema alles lesen, sollte in seinem eigenen Aufgabenbereich aber natürlich Bescheid wissen. Zudem gibt es einige Literatur von allgemeinen Interesse.

Bücher zu Java (auch im Buchhandel erhältlich)

Titel Link
Java ist auch eine Insel, 6. Aufl. hier
Handbuch der Java-Programmierung, 4. Aufl. hier

Folien

Veranstaltung Link
Folien vom 2 Apr 4 - Orga-Kram und Projektvorstellung PDF
Folien vom 4 Apr 4 - Features: Allg. und Client PDF
Folien vom 11 Apr 4 - Features: Server und Gruppenbildung PDF

Hintergrundartikel

Titel Link
GDM: Game Object Interaction PDF
GDM: Data Driven Subsystems for MMP-Designers PDF
GDM: Post Mortem - Dark Ages of Camelot PDF
GDM: Post Mortem - Dungeon Siege PDF

Technische Einführungen

Titel Link
Einführung in SVN und Subclipse hier
Einführung in Graphikausgabe und Maussteuerung in Java PDF
Strategien zur Dungeon-Erzeugung PDF
Literatur zum A*-Algorithmus hier
Einführung in MySQL mit Java PDF
Client/Server-Programmierung in Java PDF
RPG-Eigenschaften PDF

Klassen und Beispielcode

Titel Link
Beispiel zu Graphikausgabe und Maussteuerung in Java ZIP
Klasse "Random" Java
SQL Beispieldatei ZIP

Noch Fragen?

Für Spezialfragen zum Thema SVN, mySQL, etc. wenden Sie sich bitte an die jeweiligen Fachbetreuer. Allgemeine Fragen beantwortet Ihnen Oliver Ullrich.