Back to Main


phase4
3D Game Engine
Description
  • This project has been my main interest applying technical knowledge.  Phase4 has been in development for 11 months (under the name of Phase3 from Jan 6th 2005 to April 10th, and Phase4 until December 4th 2005, due to major architectural restructuring.)
  • About 5KLOCs spread in roughly 112 source files
  • Implemented in Unmanaged C++ using Direct Input and OpenGL libraries
  • Built in Microsoft Visual Studio .NET 2003 
  • Design schematics in Microsoft Office Visio 2003 (UML)
  • 3D flight simulation controls
  • Collision Detection
  • Particle Dynamics
  • Targa image files 
  • MD2 models (Airwolf model by Brad "Technomage" Herman : techno@slip.net)
Requirements
  • Default OpenGL libraries installed with WinXP
  • Default Direct Input installed with WinXP
  • Hardware Acceleration card required
  • .NET Framework NOT required, (release build in unmanaged C++)
  • Microsoft Office Visio 2003 (for UML files)
Known Bugs/Issues

  • Error Feedback: The application should start correctly.  However, if a problems occurs it will shut itself down instantly without informing the user about the cause.  This issue applies whether the problem revolves around incompatible hardware or missing model files.
  • Rendering Loop: The objects in the environment are rendered in order, however, alpha tests were not established with proper flags, resulting in inappropriate rendering behaviour from certain point of views. (ex: building are not rendered as they should, when camera is under transparent water)
  • Collision Detection:  Works well, but the O(n^2) object comparison comes expensive when more than 50 entities are created...
Controls

Console Commands:

  • Escape: exits the application
  • Toggle console with the ~ key, like most modern 3D games.
  • exit: exits application
  • quit: exits application
  • clear: clears the console data
  • math3d: toggles the object vectors to be drawn (necessary to visualize collision detection) 
  • models3d: toggles the object models to be drawn

Navigation Controls:

  • Arrows: lateral movement & directional movement
  • Shift: Vertical (up) movement
  • Right Ctrl:Vertical (down) movement
  • Mouse: changes relative control object orientation (like most modern 3D games)
  • Insert/Delete:Cycle input control through entity set
  • Page Up/Down: Cycle view point through entity set
  • Home/End: Shift through Hyperbelt (See honours thesis for details)
  • KP_insert: Fire rocket from control point
Files

binaries (compiled executable with resources folder)
designs (7-page UML document in Visio format)
screenies (9 screenshots)


mgoulet{at}coldfrontlabs.ca 2008