Skip to content

im-e/engine-architecture-group

Repository files navigation

engine-architecture-group

Game engine using C++ and OpenGL.

Authors:

Jan Kalinowski

Charlie Jenkinson

Reece Carey

Thomas Stillman-Allbones

Alfie Barton

Imogen Burgham

Engine provides debugging functionality, such as logging and timing events. The code's been abstracted and would easily be translated to work with various platforms and graphics libraries.

It is capable of:

-- Loading complex models with ASSIMP

-- Loading resources asynchronously using multithreading

-- Controlling AI with Lua scripts with dynamic pathing

-- Creating levels with editor created in ImGui utilizing GameObject and ECS

-- Saving created levels to json file

-- Loading created levels from json files

-- Editing 2D and 3D layers with level editor

-- Tessellating geometries

-- Applying postprocessing effects

-- Applying gravity to rigidbodies

-- Batch rendering text

-- Playing 2D and 3D sounds with FMOD

Currently available macros:

---LogInfo - logs messages (green text)

---LogWarn - logs warnings (yellow text)

---LogError - logs errors (red text)

---Time_Now - retrieves current time; useful for timing event)

---Time_Point - marks a new timepoint

---ResourceManagerInstance - get instance of resource manager (access all resources of the game engine)

---Bit(i) - shifts bit i number of times to the left

How to profile the engine:

Switch the engine to DEBUG mode. Specify one of the following in a scope you want to profile.

---NG_PROFILER_BEGIN_SESSION - marks beginning of profiling session

---NG_PROFILER_END_SESSION - marks end of profiling session

---NG-PROFILER_SCOPE - indicates that a scope will be profiled

---NG_PROFILER_FUNCTION - indicates that a function (in fact: still a scope) will be profiled

Keycodes are adapted from GLFW. They are the same, apart from changing their prefix to NG.

Doxygen documentation is fully generated - you can find it under doc/index.html

In order to run unit tests, switch startup project to EngineTests & switch configuration to DEBUG.

About

Group built game engine- focused around abstract oriented design.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published