
Phase I der VU ARMD
SS 3.0, März - Juni 2011
Peter Rautek, Tutor: Thomas Perl (send mail)
Content:
- 1. Setzen Sie die Entwicklungsumgebung auf (Einzelaufgabe)
- 2. Laden Sie den Source Code von 'Inverse Treasure Hunt' herunter und probieren Sie das Framework aus (Einzelaufgabe)
- 3. Werden Sie Mitglied des Entwicklerteams von 'Inverse Treasure Hunt' (Einzelaufgabe)
- 4. Entwerfen Sie ihr Level und beachten Sie dabei die folgenden Punkte (Gruppenaufgabe)
- 5. Integrieren Sie ihr Level in das Framework (Gruppenaufgabe)
- Registrierung
1. Setzen Sie die Entwicklungsumgebung auf (Einzelaufgabe)
Sie können sowohl auf Linux, Mac, als auch Windows entwickeln.- Machen Sie sich mit Android vertraut: Schauen Sie sich dazu die Informationen auf der Android Developer Seite an.
- Installieren Sie Android: Ein guter Ausgangspunkt dafür ist Google's Installationsseite. Wir empfehlen sehr die Eclipse Entwicklungsumgebung zu verwenden. Bitte achten Sie ganz genau auf die Version von Java, Eclipse und Android, die Sie (laut Google's Installationsanweisung) installieren sollen.
- Installieren Sie die Android Plattform 2.2: Die Uebung verwendet Android Version 2.2. Sie muessen diese Plattform daher im Android SDK und AVD Manager herunterladen.
2. Laden Sie den Source Code von 'Inverse Treasure Hunt' herunter und probieren Sie das Framework aus (Einzelaufgabe)
- Wenn Sie mit Version Control (hier im speziellen SVN) nicht vertraut sind, machen Sie sich damit kurz vertraut. SVN übernimmt alle Aufgaben, um die gemeinsame und gleichzeitige Entwicklung an unserem Spiel für alle Gruppen zu ermöglichen. Sie werden SVN verwenden, um den Source-Code des Frameworks herunterzuladen und dann ihr integriertes Level wieder hochzuladen.
- Installieren Sie einen für ihr System passenden SVN client.
Hier ein paar hilfreiche Links dazu:
- TortoiseSVN Sehr empfehlenswerter Windows client
- Subclipse SVN Integration in Eclipse
- SmartSVN
- RapidSVN Cross-platform (Linux, Win32, Mac OS X)
- ZigVersion Subversion für Mac OS X
- Der Source Code ist auf der Google Code Projektseite verfuegbar. Machen Sie ein SVN checkout von: http://armd2011.googlecode.com/svn/trunk/
- Sollte das Projekt Fehler haben und der Build fehlschlagen kann das mehrere Gruende haben (das Android SDK ist nicht richtig installiert, das JDK ist nicht richtig installiert, die richtige Android Plattfrom ist nicht installiert, etc.). Die Probleme lassen sich im Normalfall schnell loesen. Versuchen sie zuerst das Projekt zu cleanen (in Eclipse 'Project->Clean'). Schauen sie sich dann die Liste der Fehler an und suchen sie im Android Forum oder dem Forum der LVA um Hilfe.
- Starten Sie das Framework im Emulator und machen Sie sich mit dem Source Code vertraut.
3. Werden Sie Mitglied des Entwicklerteams von 'Inverse Treasure Hunt' (Einzelaufgabe)
- Legen Sie einen Google Account an und tragen sie Ihren Namen, Matrikelnummer, Studienkennzahl, Emailaddresse (Gmail) und den Namen ihres Gruppenkollegen im Formular am Ende dieser Seite ein. Optional koennen sie auch eine weitere Emailaddresse angeben, an die Updates (kurzfristige Terminaenderungen, updates der Homepage, etc.) bezueglich der VU gesendet werden. Sie werden anschließend (haendisch von der Uebungsleitung) zu dem Google Code Projekt hinzugefügt (das kann schon mal einen Tag dauern), und können dann den Source Code bearbeiten. Das Ausfuellen des Formulars gilt noch nicht als Anmeldung zur VU! Um sich anzumelden müssen Sie alle Schritte der Phase I durchlaufen!
- Wenn Sie zu der Gruppe der Entwickler hinzugefügt wurden, machen Sie erneut ein SVN checkout; diesmal von:
https://armd2011.googlecode.com/svn/trunk
Beachten Sie bitte, dass Ihr Google Code Passwort nicht Ihr Gmail Passwort ist. Sie finden Ihr Google Code Passwort im "Settings"-Tab Ihrer Profilseite.
4. Entwerfen Sie ihr Level und beachten Sie dabei die folgenden Punkte (Gruppenaufgabe)
- Ihr Level soll auf witzige Art und Weise dem Spieler die Möglichkeit geben Gold zu verlieren. Der Spieler sollte in der Lage sein in ein bis zwei Minuten bei gutem Erfolg 100 Goldstuecke zu verlieren. Der Spieler muss aber auch bei schlechterem Erfolg etwas Gold verlieren können. Ihr Level sollte also nicht nur die Zustände geschafft/versagt kennen, sondern auch einen teilweisen Erfolg kennen.
- Das Level sollte nicht zu komplex sein. Erstens soll der Spieler es in sehr kurzer Zeit verstehen können und zweitens sollten Sie in kurzer Zeit in der Lage sein das Level zu implementieren. Einfaches aber witziges Gameplay ist also gefragt.
- Sie sollten alle Ressourcen besitzen um das Level umzusetzen. Planen Sie nicht ein voll animiertes 3D Model, aufwendigen Sound, komplexe Modelle und Texturen, etc. wenn Sie dafür nicht die Ressourcen haben dieses umzusetzen. Halten Sie alle integralen Bestandteile Ihres Levels einfach!
- Erstellen Sie eine Beschreibung von Ihrem Level. Die Beschreibung soll ausführlich sein, einen Überblick geben worum es in Ihrem Level geht und alle Details (Aufgabe, Gameplay, Interaktion, etc.) des Levels genau beschreiben. Beim Durchlesen der Beschreibung sollte klar werden wie und warum in Ihrem Level Gold verloren werden kann und wie die Bedienung und Interaktion funktioniert.
5. Integrieren Sie ihr Level in das Framework (Gruppenaufgabe)
- Holen Sie sich Ihre Level/Group ID: Um ihr Level im Framework
zu integrieren ohne es mit anderen Gruppen kollidieren zu lassen
brauchen Sie eine Level ID. Sie bekommen Ihre ID, wenn Sie Mitglied des
Entwicklerteams (siehe voriger Punkt) geworden sind. Sollten Sie Ihre
ID noch nicht haben senden Sie bitte eine Email an
rautek#cg.tuwien.ac.at.
Diese ID müssen Sie bei den Namen von Ressourcen (wie z.B., Bilder, Soundfiles, usw.), Layoutfiles, Values, etc. verwenden, in denen es ansonsten zu Konflikten kommen könnte (siehe "Beachten Sie Naming Conventions"). - Legen Sie im Projekt ein neues Package mit dem Namen at.ac.tuwien.cg.armd2011.levelXX an, wobei XX für Ihre ID steht.
- Legen Sie in Ihrem Package eine Activity namens HelpActivity an, die sich von der Activity Klasse ableitet.
- Fügen Sie ein Layoutfile für Ihre HelpActivity hinzu. Beachten Sie dabei die Naming Conventions (siehe unten)! Integrieren Sie die Beschreibung Ihres Levels in die HelpActivity. Fügen Sie dazu nötige Layouts, TextViews, ImageViews, etc. in ihr Layoutfile hinzu.
- Deklarieren Sie Ihre HelpActivity im AndroidManifest.xml file und fuegen sie einen intent-filter
<intent-filter>
<action android:name="at.ac.tuwien.cg.armd2011.levelXX.LAUNCH_HELP" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
hinzu (wobei sie XX mit ihrer Level ID ersetzen). Dadurch kann ihre HelpActivity vom Framework gestartet werden. - Beachten Sie die Naming Conventions: Android organisiert gewisse Files in einer vorgegebenen Ordnerstruktur. Da in der VU alle Gruppen an einem Projekt arbeiten, müssen wir eine Naming Convention einführen. Also wenn Sie zB. ein File icon.png für ihr Level benötigen müssen Sie es vorher umbenennen, da ansonsten jemand anders ebenfalls ein File namens icon.png verwenden könnte und ihr File dadurch überschreiben würde. Die Lösung für dieses Problem ist das Einhalten der folgenden Naming Convention: Sie müssen Ihre Files, Ressources, Ids, etc. mit lID_ ("kleines L" + Ihre Level/Gruppen ID + Unterstrich) prefixen (zB. l99_icon.png für das icon.png File der Gruppe 99). Beachten Sie, dass es nicht nötig ist Ihre Klassen, Methoden, Variablen, etc. umzubenennen (da diese bereits durch ihr Package eindeutig sind), sondern nur Ressourcen, die in gemeinsamen Strukturen existieren.
- Machen Sie ein SVN commit damit alle anderen ihr Level sehen und die Beschreibung lesen können. Durch das commit wird ihr Code auch für die VU Leitung sichtbar und Sie gelten als angemeldet!