Vincent Chu Tinkerer | Leader | Innovator

Product & Engineering leader in SaaS.
Passionate with technology. Worked at Electronic Arts and Apple before venturing into the startup world.

What's is 3D Tetris?

In CMPT 365 (Multimedia System), we need to do a final project which worths 30% of the grade. We can choose any topic we want, and so Steven, my teamate, and I decided to create a game called "3D Tetris".

I am sure everyone has seen Tetris at some point in life, and our game is basically
an extension to the 2D version. What is special is we included replay and help facilities. You can save the game into a script file and play it back at a later time. You can also place a block according to the computer's suggestion.

Obviously, because this is a multimedia project, we also provide the player with the ability to change the camera angle, view, lighting, etc. When the player presses a key, there will also be a computer-synthesized voice.

The game is coded using
C++ and OpenGL - from scratch, mind you.

Flash Introduction

For the project, we also created a flashy introduction (using Flash, no doubt). Extract the files in Tetris+Intro and enjoy the introduction (introduction.exe)! Please note that the tetris.exe must be located in the fscommand folder. Just extract the zip file and keep the pre-stored directory structure.

Game Control

Use the arrow keys to control the block. Use 's' to change the form of the block, and use spacebar to accelerate the drop of the block. Press 'p' to restart, and each number from 0 to 9 is associated with a function (mostly camera-related functions). You can use 'h' to ask for a on-screen suggestion for the placement of the block in the current form. For a list of available functions, press 'F1'.

There is actually a more powerful hidden cheat, which asks the computer to automatically place the block to the appropriate place with an appropriate form. But of course, I am not going to tell you what that key is :) - E-mail me if you really want to know.

Enjoy the game~! Your feedbacks are welcomed.

Known Issues

When the game is run, it produces two harmless text files in the directory that it is running it. The input.txt originally serves as the input file for replaying a game, and output.txt serves as the output file when a replay is saved. However, if those two files do not already exist in the directory, it will be created - which has no apparent purpose to the user. The mechanism for loading and saving replays are not user-friendly as well, and this is an area that the program needs to be improved in.

Also, I forgot to change the start symbol from console to windows. A stupid little console window pops up when the game is first started. I will fix this sometime when I have time to recompile it.


This project was exhibited in SFU Hi Tech Employer's Open House 2005 and SFU 40th anniversary Open House in 2006.

Download FileDownload 3D Tetris