Overview
Recreation of the classic Portal video game using C++ for USC’s ITP 380 Video Game Programming class.
Recreation of the classic Portal video game using C++ for USC’s ITP 380 Video Game Programming class.
My Roll
Engineer
Engineer
Programmed rendering, input, sound, and physics using C++ object oriented programming to recreate classic 2D and 3D games, including Pong, Asteroids, Frogger, Mario, Pac-Man, Zelda, Star Fox Tunnel and Mario Kart.
The class culminated in the recreation of the Portal video game, where I used linear algebra/vector math to calculate the 3D physics and collisions aspects of the game.
Studio
USC Games
USC Games
Team size
Solo project
Solo project
Engine and tools
Object Oriented C++
Object Oriented C++
Here is the progression of classic 2D and 3D games I created for USC's ITP 380 Video Game Programming course:
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.