A hobby game engine project. Still in early stages and not very usable.
- Windows
At the moment there is no clear distinction between engine/client code. Everything is just clumped into the Engine
project.
Typically Application.cpp
will contain test code that tests the features I'm currently working on. I plan to make a separate testbed/example application that showcases all the features of the engine some time in the future. All engine code is in the Bat
namespace.
- ThidParty - Contains all the dependencies of the engine:
- Assimp Mesh/scene loading.
- DirectXTK Texture loading & font drawing.
- ENet Used for networking.
- ImGui Quick debug menus. Should use the engine UI system for actual menus.
- PhysX For physics system.
- Ultralight HTML rendering library. Used for UI system.
- irrKlang Used for playing/recording audio.
- spdlog Logging library used to print logs to console in debug builds.
- Assets - This contains all the media used in the engine. Most of these are used for testing only.
- Util - Contains general utility files that don't depend on any other parts of the engine. Used frequently by all parts of the engine.
- Core - Contains core engine systems that tie together all other engine systems.
- Platform - Platform specific code. ATM only contains Windows code, other platforms are unsupported.
- Events - Contains event dispatcher/listener classes implementation as well as all the event types used by the engine systems.
- Graphics - All graphics/rendering related code. Relies on D3D11. See
Graphics
class inGraphics.h
for an overview of whats available. - Networking - All networking related code. Relies on ENet. See
Networking
class inNetworking.h
for an overview of whats available. - Audio - All audio related code. Relies on irrKlang. See
Audio
class inAudio.h
for an overview of whats available. - Physics - All physics related code. Relies on PhysX. See
Physics
class inPhysics.h
for an overview of whats available.
Windows is the only supported platform. Use Visual Studio 2017 (or higher) to open Engine.sln and build the solution. Output will be in the Build
directory.
Requires all .exe/.dll files in the Build directory as well as the assets in /Assets and shaders in /Graphics/Shaders