Tuesday, September 25, 2012

Rocketman - Best Game Of 2012

One of the funnest courses at École Polytechnique is definitely INF4715. Our goal for the semester was to design and implement our very own game based on a very open specification document. Also, this project was done in collaboration with the music departement of the University of Montreal.
Being with 3 other people who weren't very experienced in game development and had a much heavier course load than myself was quite the challenge. But all in all, I think I was able to lead my team well. We all learnt a lot in the process and ended up winning the grand prize. During said course, we had to implement a 2.5D Platformer (a 3D game that is played on a single plane). At first I was a little bummed out by the topic, but soon realized that with the amount of freedom we had, I could go ahead and give myself interesting challenges. Another constraint was that we had to use a specific, in-house engine (Vicuna) which had bugs and was far from being feature complete. This requirement was to replicate situations found in the industry where one can't necessarily choose or be familiar with the tools available. Due to my prior experience in much larger engines (at Ubisoft), getting familiar with this one wasn't much of a problem. During the first day of class, the teacher gave an example of technical achievements one could try and implement to distinguish our game from the others (as this was a competition). One of these was skinning, which he also said a lot of teams in the past had tried to implement, but none had succeeded. Challenge Accepted! After the first week I had a functional prototype with hardware skinning :) . During said project I implemented the following technical feats:
  • Volumetric Cloud Rendering
  • Hardware Skinning
  • Data-driven entity-component System with Reflection (used for instantiation)
  • Rebuilt the shader pipeline to support data-driven shaders and hot reloading
  • C++0x event system with lambda functions
  • Black-hole deformation shader
  • Parallax space background with infinite blinking stars (using simplex noise)
  • FMOD event-system integration
  • PhysX 3.1 Integration
  • updated Awesomium integration
As you can see, I'm quite passionate about systems engineering. I think I actually appreciated working on the engine more than on the game itself. It was a lot of fun having so much freedom.

0 comments:

Post a Comment