\input{../template/template_header.tex}

%\title{Subversion}
%\author{Benjamin Grauer, Patrick B\"onzli}

\begin{document}



\normalsize

\section{Orxonox Semesterarbeit}


\subsection{Ziel}
Wir w\"urden das Orxonox PPS gerne als Semesterarbeit durchf\"uhren. Die folgende \"Ubersicht 
soll das Arbeitsumfeld von Orxonox etwas genauer beschreiben, damit f\"ur die Semesterarbeit 
auch geeignete Ziele und Aufgaben definiert werden k\"onnen.


\subsection{Arbeitsumfeld Orxonox}

\subsubsection{Open Source Umgebung}
\begin{itemize}
    \item Programmierung einer Projektwebseite f\"ur Orxonox in HTML/PHP
    \item Einf\"uhrung und Benutzung eines WIKIs mit Dokumentation f\"ur alle Entwickler
    \item Verwendung des Projektmanagement tools: SVN
    \item Konsequente Dokumentation des source codes mittels Doxygen 
\end{itemize}


\subsubsection{Programmiertechnische Umgebung}
\begin{itemize}
    \item Erlernen von Libraries: SDL, OpenGL, OpenGL Extensions, Graphics Shader Language, STL, OpenAL, FFmpeg
    \item Objektorientiertes Programmieren mit Modellierung durch UML class/sequence Graphs
    \item Advanced C++ Programmierung (inkl. Templates und Makros) 
\end{itemize}

\subsubsection{Projektmanagement}
\begin{itemize}
    \item Leitung eines Open Source Projektes \"uber 2 Jahre
    \item Organisation von Informationsevents zu Orxonox (Conventions)
    \item Motivation von Mitprogrammierern
    \item Projektplanug und Codedesign 
    \item Einf\"uhrung des Projektes in die Open Source Community
\end{itemize}


\subsubsection{PPS Kursleitung}
\begin{itemize}
    \item Erstellung eines Orxonox Kurses fuer Studenten des D-ITET
    \item Erstellung von Kursunterlagen
    \item F\"uhrung und Unterst\"utzung der Studenten 
\end{itemize}

\subsubsection{Programmatisch adressierte Probleme}
\begin{itemize}
    \item Object-Object Collision Detection Algorithm: OBB (Object aligned Bounding Boxes)
    \item Spatial Terrain Separation Algorithm: Quadtree von beliebigen Vertex soups
    \item Loading Framework: Objekte k\"onnen mittels XML files erstellt/geladen werden: laden von Spielwelten
    \item Dynamisches Laden: Objekte mittels shared library und Factory erzeugen und verwenden
    \item Dynamische Resource Allocation von Models, Texturen, Sounds und anderen Resourcen \"uber einen Resource Manager
    \item Grafisches: Laden von verschiedenen Modelarten (MD2, OBJ), Particle Systems mit Billboarding, 
          Fog Effects, Billboards
    \item Sound: Implementierung einer 3D-SoundEngine zur Verwaltung von Channels, Buffers und Sourcen
\end{itemize}

\subsubsection{Entwicklungsziele des n\"achsten Jahres}
\begin{itemize}
    \item Artificial Intelligence von Nonplayer Characters
    \item Object-ConcaveBody Collision Detection
    \item Design und Implementierung einer Qt und OpenGL Graphical User Interface Library f\"ur Orxonox (GUI)
    \item Design und Implementierung eines Scripting Interfaces (evt. Suche nach einem identischen Open Source Projekt)
    \item Erweiterung des Network Moduls von Orxonox: HTTP/Telnet status Interface 
    \item Entwicklung eines Singleplayer Modus
\end{itemize}

\subsection{Kontakt}
Benjamin Grauer (\verb"grauerb@ee.ethz.ch"), Patrick B\"onzli (\verb"boenzlip@ee.ethz.ch")


\end{document}
\input{../template/template_footer.tex}
