Modern OpenGL port
Game class:
Entry point of the game, responsible for loading up the window, creating
the world, and contains the main game loop with FPS counter and input.
Window class:
Contains functions for creating an SDL window and GL context, setting
window size, initializing GLEW, and closing the window.
World class:
Contains the Scene and Renderer and is responsible for updating game
objects.
Input class:
Contains the array of keys that are pressed or unpressed and static
accessors to that array, allowing the game to access input anywhere.
Scene class:
Contains lists of game objects, these objects are loaded through the
MapLoader class
Renderer class:
Contains the logic to render a Scene of gameobjects properly, using the
shaders loaded in the Resource class.
Camera class:
Contains all properties of a camera, setters for these properties and a
perspective matrix that the Renderer needs.
Entity class:
Base class for all game objects, contains position, rotation and scale,
and a potential mesh.
Mesh class:
Contains a handle to the buffer of a mesh on the GPU and the number of
faces the object consists of, this is used in Renderer.
Light class:
Contains the properties of a light such as position, color and intensity.
Resource class: (Legacy name, needs to be changed)
Contains static functions to load shaders from disk.
MeshLoader class:
Contains static functions to load meshes from disk and stores them in a
cache.
MapLoader class:
Contains static functions to load maps from disk and store them in a Scene
class.
Player class:
Extension of the entity class, for a velocity vector. (This will later be
separated, and the player class must be removed)
Matrix4f class:
Contains functions to do 4x4-float matrix calculations
Vector3f class:
Contains functions to do 3-float vector calculations
Modern OpenGL port
Game class:
Entry point of the game, responsible for loading up the window, creating
the world, and contains the main game loop with FPS counter and input.
Window class:
Contains functions for creating an SDL window and GL context, setting
window size, initializing GLEW, and closing the window.
World class:
Contains the Scene and Renderer and is responsible for updating game
objects.
Input class:
Contains the array of keys that are pressed or unpressed and static
accessors to that array, allowing the game to access input anywhere.
Scene class:
Contains lists of game objects, these objects are loaded through the
MapLoader class
Renderer class:
Contains the logic to render a Scene of gameobjects properly, using the
shaders loaded in the Resource class.
Camera class:
Contains all properties of a camera, setters for these properties and a
perspective matrix that the Renderer needs.
Entity class:
Base class for all game objects, contains position, rotation and scale,
and a potential mesh.
Mesh class:
Contains a handle to the buffer of a mesh on the GPU and the number of
faces the object consists of, this is used in Renderer.
Light class:
Contains the properties of a light such as position, color and intensity.
Resource class: (Legacy name, needs to be changed)
Contains static functions to load shaders from disk.
MeshLoader class:
Contains static functions to load meshes from disk and stores them in a
cache.
MapLoader class:
Contains static functions to load maps from disk and store them in a Scene
class.
Player class:
Extension of the entity class, for a velocity vector. (This will later be
separated, and the player class must be removed)
Matrix4f class:
Contains functions to do 4x4-float matrix calculations
Vector3f class:
Contains functions to do 3-float vector calculations