In USC's ITP 380 Video Game Programming course, I learned how to program and create several different classic games in C++, starting with 2D games and moving on to 3D games. By the end of the semester, I gained an understanding of core game systems such as rendering, input, sound, and collision/physics. I also developed a strong understanding of essential mathematics for games.
Pong
Pong
Asteroids
Asteroids
Frogger
Frogger
Mario
Mario
Pac-Man
Pac-Man
Zelda
Zelda
Star Fox
Star Fox
Mario Kart
Mario Kart
For the final project, I used everything I had learned so far over the semester to build a larger game, a version of 2007’s puzzle-platform game Portal.
Please watch the below video for a full playthrough:
Over the course of four weeks, I built upon my Portal game, adding many of the core mechanics that you would need to make the actual game:
Level Loading, Player Movement, Mouse Rotation, 3D Collisions, Gravity, Door Trigger, Level Changing
Audio Triggers, Sequential Audio, Subtitles, Volume Falloff
Portal Gun Pickup, Dynamic Crosshair, Portal Creation
Death, Level Reload, Portal Teleportation
Complex Portal Views, Maintaining Velocity through Portal
Projectile Shooting, Projectile Catching, Projectile Portal Interaction
Dynamic Projectile Properties
Sentry Turret, Laser, Depth Sorting of Alpha Objects, Turret Target Acquisition, Laser Damage, Player Health, Directional Damage Indicator
The sentry turret's AI can be broken up into five different states. It will dynamically change between these states based on player interaction.
Turret Health, Turret Death, Turret Gravity, Turret and Laser Portal Interaction
By the end of the semester, the game was comprised of over 80 scripts, an equal amount header and source files. Starting with Pong, which had only three scripts, I steadily built upon each game over 12 weeks until I had finally created Portal.

You may also like

Back to Top