A basic game engine (OpenGL 3.x) designed for games with physics for balls.
The general functionality for the engine is arranged in to the following areas:
- Camera
- Level Definition and Management
- Math Library
- Menu/HUD System
- Other Utilities
This is a sample game for the engine. The game is laid out as a series of holes with the par score that the player needs to achieve.
The main application source is in the Game\game.cpp
file. The file contains delegates for OpenGL rendering and input handling.
This is another sample game for the engine, and has a 15-ball pool table layout.
The main application source is in the Game\game.cpp
file. The file contains delegates for OpenGL rendering and input handling.
The solution and projects work with Visual Studio 2017. Simply open the solution and build to generate the binaries, which will show up in the root folder under build
.
MiniGolf and Pool each needs a data file (which contains the level definition) as an argument to run. Hence, to run MiniGolf, execute the following command:
MiniGolf Data/course.db
And to run Pool, execute the following command:
Pool Data/course.db
However, to simply the process, .bat
files are included in the release
versions that would run the games directly (MiniGolf.bat
and Pool.bat
).
The games use a third-person camera to allow the player to look over the ball towards the direction where the arrow is pointing.
- ← & → to rotate the input arrow's direction.
- Space will shoot the ball in the direction the arrow, with the power represented by the power meter in the top-left of the screen.
- F1 toggles Full Screen functionality (by default the app will start in windowed mode).
- Esc to show the main menu.
- t/T will move the ball in the upwards. This is only for debugging if the ball bouncing works.
- m/M will replicate the Space behavior, but also adds vertical impulse to the ball. Again, this is only for debugging if the ball bouncing works.