Games » CoopTris (full game, 2010 - 2011)
Since I wanted to gather some experience on implementing a game engine from scratch (with basic versions of the most common features), I decided to write my next game using C++ and the Qt framework for basic convinience features. This time it would be a cooperative game based on the lessons I learned while working on VSTris
The most important decision was to wrap the playing field around a cylinder, making it "infinite" and preventing players from pushing others into a corner. The game can be played by two local players on splitscreen and up to four players online. It is even possible to mix these modes, i.e. join an online server with a local two player team. After a game, the score is submitted to an online highscore if desired - which resulted in an intense competition between some teams. At the end, their ambitions required them to use voice chat in order to keep up with the fast-paced games. They also had some interesting discussions regarding their strategies, for example on whether to have the players move all around the cylinder or dividing it into sections for which a single player is responsible.
On the technical side the game uses a simple 3D graphics engine using OpenGL (supporting Vertex Buffer Objects and Display Lists), fast and robust network code enabling games over the internet and a dedicated server infrastructure including a masterserver. Besides from that I added home-made sound effects, text chat, a short intro animation and an options menu which controlles things like display resolution, three graphics quality presets and VSync. After gathering player feedback I included a function to invert controls horizontally as well, which made them more intuitive for a notable number of players. This fact can be attributed to the players having different points of references for their movement (turning the cylinder right means rotationg the camera left).
Three players, online
Four players, online and local