Skip to content

Grad school Adv Game Development project. Implemented primitive physics engine with collision detection and thrust vectoring. Further integrated use of XBOX input game controller.

Notifications You must be signed in to change notification settings

mlshort/Asteroids

Repository files navigation

Asteroids: Final Project

Directory Structure

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

Project Enhancements

  1. Source Code Repository (Visual Studio Team Services)

  2. Windows Unicode Compliant

  3. Compiles/Deploys in:

    • Win32 Release Mode
    • Win32 Debug Mode
    • x64 Release Mode (not fully tested)
    • x64 Debug Mode (not fully tested)
  4. Intergrated use of XBox Controller (via XInput API)

  5. 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)
  6. Component Compile-Time product versioning

    • Asteroids\ProductVer.h
    • Asteroids\Code\Game\Resources\Asteroids.rc2
    • Asteroids\Code\Game\AsteroidsVersion.h
    • Asteroids\Code\Engine\EngineVersion.h
  7. Use of various C++11/14 features

HOW TO USE:

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

About

Grad school Adv Game Development project. Implemented primitive physics engine with collision detection and thrust vectoring. Further integrated use of XBOX input game controller.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages