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)
|