My first assignment for CMPT 361 (introduction to graphics) was tetris. It was meant to introduce us to openGL and teach us about concepts such as projections and transforms. The learning curve for OpenGL 3 was quite a bit steeper than OpenGL 2 since most of the methods in OpenGL 2 had been deprecated. Even with the difficulty learning OpenGL, the more frustrating part of the project was dealing with all the game logic. The assignment had less of a focus on graphics and more of a focus on making the game function properly. I spent most of my time dealing with collision detection.
Right before our tetris programs were due, our professor revealed the next project. It was to be 3D tetris. I was really happy about this because I had made my program very modular. Converting my 2D tetris into 3D was almost as simple as adding one extra coordinate to my objects. I also had to add extra rotations and translations which were also quite easy.
We didn’t have lots of time for implementation, so my final project is still quite buggy. This was the first game I’ve ever programmed, so I’m happy with the end result.