+-- Asteroids (Solution File)
|
+-- Readme.md (this file)
|
+-- Documentation (mlshort.Asteroids.pptx (project presentation))
|
+-- Bin (Asteroids[_x64][D].exe)
| |
| +-- Assets
| |
| +-- Audio (wav files)
|
+-- Code (Source Code Root Directory)
| |
| +-- Game (Game Source Code) (Project file)
| | |
| | +-- Resources (RC files)
| | |
| | +-- Audio (wav files)
| |
| +-- Engine (Engine Source Code) (Project file)
| |
| +-- Core (Actor2, IRenderable)
| |
| +-- Math (Vector2, Random, MathUtils)
| |
| +-- Renderer (AABB, Renderer, Texture)
| |
| +-- Utility (DebugUtils, TimeUtils)
|
|-- Lib (Game Engine Static Library : Engine[_x64][D].lib)
|
+-- Obj (compile time intermediaries objects)
|
+-- Third Party
|
+-- stbi (Solution File) (Project File) (stbi Source Code)
-
Source Code Repository (Visual Studio Team Services)
-
Windows Unicode Compliant
-
Compiles/Deploys in:
- Win32 Release Mode
- Win32 Debug Mode
- x64 Release Mode (not fully tested)
- x64 Debug Mode (not fully tested)
-
Intergrated use of XBox Controller (via XInput API)
-
Development and use of seperate Game Engine library
- Primitive Physics Engine
- Math
- Vector2 (2D vector class template)
- Random (STL Mersiene Twister random number abstraction)
- Renderer (OpenGL abstraction)
- Texture (OpenGL/stbi abstraction)
- AABB (optimized collision detection)
- Utility
- TimeUtils (Windows performance counter abastraction)
-
Component Compile-Time product versioning
- Asteroids\ProductVer.h
- Asteroids\Code\Game\Resources\Asteroids.rc2
- Asteroids\Code\Game\AsteroidsVersion.h
- Asteroids\Code\Engine\EngineVersion.h
-
Use of various C++11/14 features
'A' || 'Left' || 'DPad Right' || 'LThumb' direction - Rotates ship counter-clockwise
'D' || 'Right' || 'DPad Left' || 'LThumb' direction - Rotates ship clockwise
'W' || 'Forward' || 'DPad UP' || 'LThumb' magnitude - Causes ship to thrust forward
'O' - Random Asteroid Destroyed
'L' - Creates New Large Asteroid
'P' || 'Start' - Re-spawns Ship
'T' - Direction Overlay (for diagnostics)