Project Description
For the lecture “Game Programming Laboratory” we created a game with the theme “Alfred Escher”. In a group of five master students, we had to create the game from scratch. Within 14 weeks we needed to have a final result which we demonstrated during a public presentation live on the Xbox.
To link the game with the given theme, we decided to let two dumb robbers rob a bank. The plan of course failed and so each of the robbers needs to collect as much money as possible before the police arrive. To be faster with collecting the valuables, each robber has a street-vehicle with some specific properties. We have different modes which are spawning different valuables with different probabilities. Additionally, the game can be played alone, in a “1 vs 1” or “2 vs 2” player mode.
One of the input requirements was to use C# and MonoGame. For more information about the lecture: http://www.gtc.inf.ethz.ch/education/GameProgrammingLaboratory.html
My tasks
- Implementation and integration of physics (based on Jitter).
- Create visual effects as lens flares, wheel traces, police lights, wheel animations, particle effects, post-processing effects.
- Optimization for rendering and memory management (hardware instancing of the models so that a model is loaded once and for each instance only the new transformation matrix is sent to the GPU-Buffers).
- Git-Administrator: responsible for merges and releases.
- Publishing and testing on the Xbox.
![[:en]ETH GPL – Feature 1: Physics[:de]ETH GPL – Feature 1: Physik[:] [:en]Feature 1 - Physics: First prototype[:de]Feature 1 - Physik-Engine: Erster Prototyp[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_1_physics.jpg)
![[:en]ETH GPL – Feature 2: Physics[:de]ETH GPL – Feature 2: Physik[:] [:en]Feature 2 - Physics: A fully 3D physics engine has been integrated and adapted to our needs.[:de]Feature 2 - Physik-Engine: Eine vollständige 3D Physik Engine ist integriert und ist auf unsere Bedürfnisse angepasst[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_2_physics.jpg)
![[:en]ETH GPL – Feature 3: Visual Effects[:de]ETH GPL – Feature 3: Visuelle Effekte[:] [:en]Feature 3 - Visual Effects: Various effects are implemented as the light of the vehicles (sirene of police car is animated), particle effects and other visual enhancements as shadow, tire-tracks when speeding, ...[:de]Feature 3 - Visuelle Effekte: Verschiedene Effekte wie das Licht der Fahrzeuge, die animierten Sirenen der Polizei, verschiedene Partikel-Effekte, Schatten, Reifenspuren bei schnellem fahren und weitere sind implementiert.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_3_visual_effects.jpg)
![[:en]ETH GPL – Feature 4: Visual Effects[:de]ETH GPL – Feature 4: Visuelle Effekte[:] [:en]Feature 4 - Visual Effects: Various effects are implemented as the light of the vehicles (sirene of the police car is animated), particle effects and other visual enhancements as ashadow, tire-tracks when speeding, ...[:de]Feature 4 - Visuelle Effekte: Verschiedene Effekte wie das Licht der Fahrzeuge, die animierten Sirenen der Polizei, verschiedene Partikel-Effekte, Schatten, Reifenspuren bei schnellem fahren und weitere sind implementiert.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_4_visual_effects.jpg)
![[:en]ETH GPL – Feature 5: Visual Effects[:de]ETH GPL – Feature 5: Visuelle Effekte[:] [:en]Feature 5 - Visual Effects: A depth blur is implemented to make the scene more realistic. Further, there are some post-processing effects as for the magnet and the shock-wave for the bomb.[:de]Feature 5 - Visuelle Effekte: Die Tiefenschärfe wurde implementiert um die Scene realistischer zu gestalten. Zusätzlich sind verschiedene Post-Processing-Effekte implementiert, zum Beispliel für die Schallwelle der Bombe, das Magnet und weitere.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_5_visual_effects.jpg)
![[:en]ETH GPL – Feature 6: Visual Effects[:de]ETH GPL – Feature 6: Visuelle Effekte[:] [:en]Feature 6 - Visual Effects: For the menu we rendered a full special map in the background. To not get distracted a Gaussian blur is integrated for the rendering.[:de]Feature 6 - Visuelle Effekte: Für das Menu ist ein spezielles Level im Hintergrund geladen. Damit dieses nicht zu sehr ablenkt wird dies mitem einem Gaussian-Blur verschwommen.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_6_postprocessing.jpg)
![[:en]ETH GPL – Feature 7: Optimization[:de]ETH GPL – Feature 7: Optimierung[:] [:en]Feature 7 - Optimization: To speed up the rendering I implemented the hardware instancing of the models on the GPU. Like this we can still achieve mostly 60 FPS even on the dedicated XBox.[:de]Feature 7 - Optimierung: Um das Rendern zu beschleunigen, damit es auch mit vielen Objekten für den Mehrspieler Modus schnell genug läuft, habe ich das Hardware Instancing für die Modelle integriert.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_7_optimization.jpg)
![ETH GPL – Feature 8: XBox [:en]Feature 8 - XBox: As required I deployed and tested regularly on the XBox and kept the releases and our GIT-repository organized..[:de]Feature 8 - XBox: Das Spiel habe ich regelmässig auf die XBox geladen und getestet. Im gleichen Zug war ich verwantwortlich für die Releases und somit für unser GIT-Repository.[:]](https://breitmuuufrosch.ch/wp-content/uploads/2018/11/eth_gpl_feature_8_xbox.jpg)





