Modentwicklungspraktikum
Stephan Barth
Ludwig-Maximilians-Universit ¨at M ¨unchen
SS 2018
Organisatorisches
Inhalt
Entwicklung von Erweiterungen, sogeanannte Mods, f ¨ur das Computerspiel Minetest
dies beinhaltet
I Entwicklung der Inhalte
I Programmierung der Mods
I Betreuung eines Minetest-Servers und ist aufgeteilt in
I Große, gemeinsame und vorgegebene Mods, die von allen entwickelt werden
I Kleine Mods, die von weniger, teilweise einzelnen Studenten entwickelt werden
Charakter der Veranstaltung
keine Vorlesung, sondern Praktikum
Aber: Praktikumsbegleitende Vorlesung
I Grundlage zu aktuellen Themen des Praktikums
I Erl ¨auterung der aktuell gegebenen Aufgabenstellung
Gruppenarbeit
Teilnehmer hat Pflicht, sich an Gruppenarbeit in gleichem Maße zu beteiligen
Gruppe hat die Pflicht, niemanden auszuschließen
verschiedene Rollen (Koordinator, Entwickler, Programmierer, Kunde, etc.) im Team m ¨oglich (aber nicht ausschließlich und nicht permanent verteilt!)
Dynamische Gruppen: Verschiedene Projekte in unterschiedlichen Gruppenzusammensetzungen;
Arbeitsaufwand kann in einzelnen Gruppen unterschiedlich auf Teilnehmer aufgeteilt sein, muss vorab vereinbart und
festgehalten werden!
Lernziele dieser Veranstaltung
zu erreichende Qualifikationen:
I An bestehender Codebasis weiterentwickeln
I Software im Team entwickeln
I Kenntnis grundlegender Probleme und Abl ¨aufe in der Software-Entwicklung erlangen
I Anwendung von Algorithmen in einem Spielprojekt;
Auswahl geeigneter Algorithmen f ¨ur ein Problem
I Programmieren in Lua
I Entwicklung von Spielinhalten: Erlernen geeigneter Theorie und Anwendung dieser
I Pr ¨asentation von Ergebnissen
Ablauf
Heute:Einf ¨uhrung in Lua, geschichtliches, Modgrundwissen Minetest; ¨Ubungsblatt zur Bearbeitung bis n ¨achste Woche Insgesamt
I Entwicklung von Spielinhalten Balancing, Content, ¨Asthetik, . . .
I Technische Aspekte Minetest
Lua, gegebenen Datenstrukturen in Minetest, . . .
I Theorie
Noise, Algorithmen, abgeschw ¨achte Korrektheit, KI, . . .
Termine
Teilnahme an den Terminen Pflicht, wird dokumentiert 1. Plenum, Do 16-18, IfI C 003
I Vermittlung von Lernstoff, Theorie
I Ansage von Aufgaben
I Diskussion/Feedback
2. ¨Ubung, w ¨ochentlich fester Termin (und Ort), 90min
I Termin wird jetzt ausgemacht, Ort wird noch bekannt gegeben
I Arbeitsplanung
I Bew ¨altigung von Schwierigkeiten
I Kontrolle der Gruppenarbeit
I Vorstellung von Ergebnissen
3. Abnahmen
Plenum
Vermittlung von Grundlagen, Inhalten
Stellen von Aufgaben; keine Abgaben, diese finden in den Ubungen statt¨
Diskussion von Problemen
Ubung¨
I Noch festzulegender Termin
I Vorstellung dessen, was die Gruppen und die einzelnen Teilnehmer in jeweils letzter Woche erarbeitet haben
I Vorstellung von Ideen f ¨ur Teilprojekte, Umorganisation der Projektgruppen
I Besprechung von ¨Ubungsbl ¨attern
I Planung der Arbeit f ¨ur die jeweils kommende Woche
I Bew ¨altigung von Problemen
Ubungsbl ¨atter¨
Vereinzelte Vorlesungsinhalte werden durch ¨Ubungsbl ¨atter erg ¨anzt
I Typischerweise einige kurze erg ¨anzende Aufgaben
I Bearbeiten aller ¨Ubungsbl ¨atter Pflicht
I Nachreichen von ¨Ubungsbl ¨attern unter Umst ¨anden m ¨oglich (Krankheit, begr ¨undete unerwartete Schwierigkeiten, . . . )
Gruppeneinteilung
Es gibt 3 Arten von Gruppen
I Jeder Teilnehmer ist automatisch Teilnehmer von Großprojekten
I Einrichten des Servers
I Benutzerbetreuung
I Mod: Neuer Kartengenerator
I weitere Mods im Laufe des Semesters
I Jeder Teilnehmer muss sich kleine Einzelprojekte
¨uberlegen
I Dynamische Gruppenprojekte: Dies ist der Hauptteil
I Selbstgew ¨ahlte Gruppen mit einigen Teilnehmern
I Eine Gruppe entwickelt ein Mod mit einem selbstgew ¨ahltem Ziel; dies kann auch selbst ¨uberlegt sein, muss aber mit Veranstalter abgesprochen sein
Gibt Themenvorschl ¨age
Gruppe
I Jede Gruppe hat ein festgelegtes Thema
I Jeder Teilnehmer ist in vielen Gruppen: Gruppen k ¨onnen gegr ¨undet, verlassen, betreten werden
I Aber: Nur in Absprache mit Veranstalter!
I Jede Gruppe deckt Vorlesungsthemen ab; jeder Teilnehmer muss in Gruppen sein, die
zusammengenommen alle Vorlesungsthemen abdecken
Abnahmen
Getrennte Abnahmen f ¨ur alle Teilprojekte: Da jeder Student in verschiedenen Teilprojekten beteiligt ist, auch unterschiedlich zusammengesetzte Pr ¨asentationsteams
Ablauf einer Gruppenpr ¨asentation:
I Vorstellung des Mods
I Pr ¨asentation der Arbeit (an der Tafel, mit Folien, etc.)
I Vorf ¨uhren des Programms
I Inspektion des Source-Codes
I Pr ¨asentation des Eigenanteils (Gesamt ¨uberblick und Beispiel)
Bonusaufgaben
Aufgaben, die nicht zum Anforderungskern geh ¨oren, aber dennoch ber ¨ucksichtigt werden:
I Schreiben von Dokumentation
I Fehlerbehebung im C++-Teil von Minetest
I Erledigen einer Einzelaufgabe in einer anderen Gruppe, an der man sonst nicht weiter beteiligt ist (einen Fehler
beheben, Konzeptideen, Fehler finden, . . . )
I . . .
Diese Aufgaben werden auch f ¨ur die Notenfindung als Bonus ber ¨ucksichtigt.
Alle zwei Wochen ein “ ¨Ubungsblatt” ¨uber UniworX f ¨ur erledigte Bonusaufgaben der zwei Wochen; abzugeben als reine
Textdatei; auch Kleinigkeiten eintragen
Pr ¨ufung
Gruppen bekommen Projektnoten:
I Gruppe legt am Ende funktionst ¨uchtige Software vor, die den Spezifikationen gen ¨ugt
I Qualit ¨at des Mods: Quellcode und Funktionalit ¨at
I Aufteilung der Arbeitsanteile an den Projekten werden festgelegt
Bestehen und Noten der Teilnehmer:
I aktive Teilnahme an ¨Ubungen, Bearbeiten von Ubungsbl ¨attern, Teilnnahme an Gruppen¨
I Zusammengesetze Noten aus den Gruppennoten
I Normaler Beteiligung an Gruppenarbeiten:
Durchschnittsnote aus den Gruppennoten
I Sehr gute Beteiligung an vielen Gruppen:
Durchschnittsnote aus den besseren Gruppen
I Erledigung von Bonusarbeiten
Individualpr ¨ufung (Spezialfall)
Ansetzen einer Individualpr ¨ufung durch Dozenten jederzeit m ¨oglich
Vorbereitungszeit mindestens 3 Tage
wird gemacht bei erkennbarer Verfehlung der Ziele, z.B.
ungen ¨ugende Teilnahme an der Gruppenarbeit, kein erkennbarer Lernerfolg bzgl. vermittelter Grundlagen Ablauf ¨ahnlich einer m ¨undlichen Pr ¨ufung, Pr ¨ufungsstoff ist Projekt der Gruppen sowie Stoff der Plena
Ergebnis:
I Erfolg: Weiterf ¨uhren des Praktikums, Note nach Regelfall ermittelt
I Misserfolg: Ende des Praktikums
Hilfe
I Gruppen
I Plenum
I Internet
I . . .
Beginn des Praktikums
Bis n ¨achste Woche:
Ubungsblatt 1 selbst ¨andig bearbeiten.¨
I Arbeitsumgebung einrichten
I Minetest installieren
I Zugang zum Server ¨uberpr ¨ufen (Zugangsdaten nicht auf Folien, werden im Plenum gegeben)
I GIT einrichten: In Gitlab (https://gitlab.cip.ifi.lmu.de) anmelden, Benutzernamen an Veranstalter schicken; es gibt ein zentrales GIT f ¨ur das Praktikum