EndGame is a C++ Game Engine that compiles as a static library focused at enabling third party users (such as developers and designers) to easily create and render 2D applications/games.
The aim for this engine is to eventually be cross-platform and cross-rendering API, however due to time and resource restrictions it currently only supports MacOS (utilising OpenGl rendering).
Currently Implemented SubSystems - Window, Debug, Event, Input, Layer, Logging, Batch Rendering, Camera
This project also contains an example Sandbox application that has been built utilising the EndGame Engine. This example application runs a PacMan Game available to play on any MacOs device. Running the Sandbox application should launch the PacMan game.
Terminology:
EndGame - Static library that is called by the application
SandBox - An example application that utilises EndGame
Requirements:
1.MacOS device(that supports OpenGL 4.1 version - https://support.apple.com/en-ca/HT202823)
2.Xcode(can be easily downloaded through AppStore - https://developer.apple.com/xcode/)
3.Xcode Terminal Tools(run xcode-select --install in terminal to ensure you have this downloaded)
There are two ways of running the SandBox Application(that utilises EndGame):
-
run
vendor/premake/premake5 xcode4 --file="vendor/premake/premake5.lua"from withinEndGame/EndGamefolder to build the xcode project and workspace -
open the workspace file(EndGame.xcworkspace), run the Sandbox Application(it will automatically build EndGame library) and give it permission to launch the application
-
In order to automate this process, I have created a file called GenerateProjects.sh that can be run using
./GenerateProjects.sh. It will ask whether you want to build the project, compile the project and finally run the application.The above shell file can also be run with two flags:
a.
./GenerateProjects.sh -quick-buildwill automatically clear old projects, workspace, build them again, compile the project and run the Sandbox Application.b.
./GenerateProjects.sh -compile-runas the name suggests will simply compile existing projects and workspace and run the Sandbox Application.
-
GLFW - Window handling/creation
-
OpenGL - Rendering
-
ImGui - Debugging
-
GLM - Math Library
-
SPDLog - Logging
-
Entity Component System
-
Scripting
-
Enabling Cross-platform functionality

