3D Game Project 2020
Allgemeines
Dozent: | Jonas Kießler (Seminarleitung) |
Betreuende Lehrperson: | Prof. Holger Theisel |
Veranstaltungsart: | Softwarepraktikum |
CP: | 6 |
Anrechenbar: | Bachelorstudenten (INF, CV, ING-INF, WIF) |
Zeit und Raum: | Mi. 15 - 17 Uhr, G29-335 |
Anmeldung: |
Name, Studienfach, Selbsteinschätzung, evtl. Teammitglieder (falls vorhanden) Eine Selbsteinschätzung eurer Programmierkenntnisse auf einer Skala von 1 bis 10 (5 wäre das Level, wo EinfInf- und AuD-Aufgaben kein Problem darstellen) Die Programmiersprache, die ihr gerne für das Projekt verwenden würdet (Im Seminar wird hauptsächlich C# verwendet, aber ihr könnt eine beliebige verwenden) Eure Teammitglieder, falls ihr schon ein Team habt Anmeldeschluss ist der Teilnehmerzahl ist auf 24 beschränkt. Wer am ersten Termin unentschuldigt nicht erscheint, gibt seinen Platz an Nachrücker ab. Für Fragen und die Anmeldung, sendet eine Mail an 3dproject\[at]acagamics.de |
LSF-Seite: | Link |
News
Checkt bitte regelmäßig eure Mails!
Alle, die sich angemeldet haben, sollten eine Email mit den Daten für die Zoom Konferenz erhalten haben. Falls dem nicht so ist, meldet euch bitte bei uns.
Leider haben wir dieses Jahr so viele Anmeldungen, dass wir mit unseren Kapazitäten nicht alle Anmeldungen als Teilnehmer aufnehmen können. Weitere Anmeldungen müssen daher auf eine Warteliste gesetzt werden.
Beachtet auch die Infos zur Vorbereitung auf das Online-Semester weiter unten.
Letztes Update: 22.04.2020
Inhalt
Das Softwarepraktikum 3D Game Project befasst sich mit der Entwicklung eines Computerspiels. Dieses kann zum Beispiel mit Hilfe von Monogame umgesetzt werden, was jedoch nicht zwingend erforderlich ist. Im Rahmen der Veranstaltung werden neben der Entwicklung des Spiels theoretische Grundlagen des vorangegangenen Studiums aufgegriffen und praktisch angewendet. Dazu zählen Veranstaltungen wie Software Engineering, Algorithmen und Datenstrukturen und IT-Projektmanagement. Dabei habt ihr freie Hand. Innerhalb eines Teams trefft ihr Entscheidungen, setzt zusätzliche Meilensteine und präsentiert Ergebnisse. Der Veranstaltungsleiter wird unterschiedliche Themen im Laufe der Veranstaltung auswählen und behandeln. Ihr könnt auch eigene Vorschläge anbringen. Bitte beachtet die Voraussetzungen für eine erfolgreiche Teilnahme!
Euer Projekt werdet ihr in 3er oder 4er Teams durchführen. Falls ihr noch kein Team habt, kommt zur ersten Veranstaltung, dort werden wir versuchen, weitere Teampartner zu finden.
Weitere Informationen erhaltet ihr zum ersten Termin.
Voraussetzungen
Mindestens ein Teammitglied sollte die Lehrveranstaltung Computergrafik gehört haben, oder die weiterführende Bereitschaft haben sich dort einzuarbeiten. Andere spielbezogene Veranstaltungen belegt zu haben, ist von Vorteil.
Ihr solltet Kenntnisse in objektorientierter Programmierung mitbringen, idealerweise in C#, Java oder C++.
Vorbereitung auf das Online Semester
Da das Semester dieses Jahr 2 Wochen später als gewöhnlich startet, bitten wir euch, vor dem ersten Termin schon mal selbstständig ein paar Themen zu recherchieren, die wir nicht nochmal im Seminar ansprechen werden.
Versionskontrolle
In diesem Projekt werdet ihr eine Art Versionskontrolle benutzen müssen, um euren Fortschritt zu sichern und euch im Team zu koordinieren. Wir empfehlen euch Git, aber ihr könnt auch ein anderes System benutzen (z.B. Subversion, Mercurial, Perforce).
Warum git? Wir können euch mit git am ehesten helfen oder Hilfe vermitteln. Außerdem wird euch git am ehesten noch in anderen Veranstaltungen begegnen.
Resourcen zum Lernen von git:
- The Git Parable Ein Gleichnis, um die Funktionsweise von Git zu verstehen. (Englisch)
- Git Workflows Einführung in Git (Englisch)
- Git-it "Git-it is a desktop app that teaches you how to use Git and GitHub on the command line." (Englisch)
- git-Der einfache Einstieg "eine einfache Anleitung, um git zu lernen. Kein Schnick-Schnack ;)" (Deutsch)
- Das git-Buch (Deutsch)
- Git Subreddit, Git auf Stackoverflow
Ob und welche grafische Oberfläche ihr für git verwendet, ist euch überlassen. In eurem Team müsst ihr euch noch einigen, wo ihr euer remote repository hostet. Nehmt hierfür am besten kein öffentliches Repository. Z.B. GitHub stellt aber für Studenten auch private Repositories zur Verfügung.
Auch die OVGU stellt über das URZ einen Gitlab Server bereit. Dafür müsst ihr euch allerdings anmelden. Was genau ihr dort eintragen müsst, klären wir in dem ersten Treffen.
Frameworks
In dem 3D Game Project ist das Ziel, dass ihr Teamarbeit und Softwareentwicklung lernt, sowie eure Codingerfahrung erweitert. Um auch ein bisschen mehr Einblick in die Arbeitsweise eines Computerspiels zu bekommen, limitieren wir die Basis, die ihr für euer Spiel verwenden könnt. Das bedeutet Framework, keine volle Engine.
Engines wie Unity, Unreal Engine, Godot, ... bieten oft eine visuelle Oberfläche, um eine Szene zusammenzubauen und Funktionalitäten direkt Objekten zuzuweisen. Dabei verstecken sie aber einige Grundfunktionalitäten in ihrem Code. Es ist schwierig abzugrenzen, was eine "Engine" ist und was ein "Framework". Für unsere Zwecke heißt das hauptsächlich keine visuelle Oberfläche und grundlegende Funktionalitäten.
Wir haben Erfahrung mit Monogame (C#) und dies wird erfahrungsgemäß auch gerne verwendet. Ihr könnt gerne selbst recherchieren. Wenn die Funktionsweise ähnlich ist zu Monogame, könnt ihr es vermutlich verwenden. Ansonsten könnt ihr uns eine Email schreiben, falls ihr unsicher seid.
Für dieses Semester haben wir uns unter Absprache mit Prof. Theisel entschieden, auch 2D Projekte zuzulassen. Diese müssen allerdings am Ende ausgereifter werden als 3D Projekte, da sie vor allem grafisch einfacher umzusetzen sind. Wir empfehlen ein 3D Projekt zu machen.
Recherchiert Frameworks und deren Funktionen. Ihr müsst euch noch nicht entscheiden, welches ihr nehmt.
Termine
Erste Veranstaltung ist am 08.04.2020 22.04.20
Die Veranstaltung findet wöchentlich statt. Dabei haben aber nicht alle Termine eine Anwesenheitspflicht, auch wenn es generell empfehlenswert ist, mindestend ein Teammitglied anwesend zu haben.
Falls ihr gerne teilnehmen wollt, aber Überschneidungen habt, können wir über eine Verschiebung des Termins nachdenken. Wegen eigenen Terminen und Raumkapazitäten ist das allerdings nicht immer möglich.
Material zur Veranstaltung
Findet ihr im Elearning! Angemeldete Teilnehmer haben den Einschreibeschlüssel per Email erhalten.