====== Projekt Adventure Framework 2023 ====== Schüler: Laurin, Dimitri, Jona **Projektleiter:** * Laurin * Zuständig für Koordination, Verantwortung Gruppe * erste Ansprechperson für Lehrpersonen ==== Vorgaben Projekt ==== * Eigenes **Framework** entwickeln für **Point n' Click Adventure** * 2D oder 3D Bilder (selber entscheiden) * **Hotspots:** * Von Raum zu Raum navigieren, z.B. wenn man auf Türe klickt (muss also Eckkoordinaten von Türe festlegen können) * könnte machen: erster Klick: Türe öffnen (neues Bild), zweiter Klick: Bewegen in neuen Raum * Gegenstände einsammeln * mit **Schnittstelle für Mini Games**: * die reguläre EFIFs sollen so Mini Games beisteuern können * Programmiersprache C# * reicht, wenn statisch: verschiedene Bilder übereinander anzeigen, entfernen, auf Knöpfe drücken, Textfelder für Input und Output, ... * Beispiel: Muss richtige Zahlenkombination eingeben. Dazu wird Bild von Türschloss mit Zahlen angezeigt. Muss in richtiger Reihenfolge auf Tasten drücken, letzte gedrückte Zahl wird eingefärbt. Pop-Up: "Zugang gewährt" (falls richtig), "Zugang verweigert" (falls falsch) * Falls im Web: Server von Schulinformatik (sps) * Falls nicht Web: Cross-Plattform (Win & Mac) * **Weitere Features:** (optional im HS) * Musik (permanent) * Soundeffekte (auf Klick) ==== Auftrag 1: Recherche & Präsentation ==== * Ziel: optimale Programmierschnittstelle für Projekt ermitteln * Vorgehen: * Kriterienkatalog erstellen (Was muss, was kann erfüllen?), Kriterien gewichten (welche wie wichtig?) * mehrere verschiedene Programmierschnittstellen (z.B.: OpenGL, WebGL, ...) recherchieren, Vorauswahl treffen * ausgewählte Programmierschnittstellen vergleichen, ausprobieren und katalogisieren (mit eigenem Kriterienkatalog) * Präsentation erstellen * **Benotete Präsentation:** * Resultate der Recherche präsentieren * Details zur Benotung unten * Datum: 05.09.2023 (direkt zu Beginn) ==== Auftrag 2: Entwicklung Framework ==== * Framework entwickeln * regelmässige Commits & Pushes von allen (mehrere pro Woche) * **Problem-Handling:** * Falls Arbeit in Gruppe schwierig ist, *rechtzeitig* mit LP sprechen * Falls sich herausstellt, dass das Projekt aus guten Gründen nicht pünktlich fertiggestellt werden kann: *rechtzeitig* mit LP sprechen (nicht 2 Wochen vor Deadline) ==== Benotung ==== Projekt für ganzes Semester gibt **eine Note**, die **doppelt zählt**. Die genaue Zusammensetzung der Note ist unten ersichtlich. ^ ^ **Präsentation Inhalt** ^ **Präsentation Auftreten** ^ **Prozess in Gruppe** ^ **Prozess individuell** ^ **Produkt** ^ | **Notenpunkte** | 10% | 5% | 20% | 20% | 45% | | **Art der Note** | gemeinsame Note ($*$) | individuelle Note | gemeinsame Note ($*$) | individuelle Note | gemeinsame Note ($*$) | | **Beschreibung** | Breite & Qualität der Recherche\\ Kriterienkatalog für Programmierschnittstellen\\ bereits viel eigenen Testcode geschrieben\\ Qualität der Präsentation (z.B. Slides)\\ gutes Fazit gezogen | gleichmässige & sinnvolle Redezeit\\ sicheres Auftreten\\ Sprache | gute Zusammenarbeit\\ Organisation in Gruppe\\ Arbeitsteilung | gute & kontinuierliche Mitarbeit (mit Git-Commits belegt) | Produkt erfüllt Anforderungen\\ Qualität\\ Programmierstil\\ Benutzerfreundlichkeit | ($*$) individuelle Note, falls offensichtlich, dass jemand wenig(er) beigesteuert hat