Xenode is a cross platform game engine that works primarily works in Windows and Linux.
Xenode has a lot of dependencies that needs to cloned properly for a successful build. Follow the instructions below to build Xenode. Xenode is officially tested for MSVC in Windows and GCC in Linux
- x64 based processor
- GPU with OpenGL 4.5 support
32 bit builds are officially not supported
Visual Studio 2022 recommended
- Clone the repository recursively:
git clone --recursive https://github.com/shreyaspranav/Xenode.git
- Go to the cloned directory and run
premake-windows vs2022
- All the .sln and .vcxproj files will the generated, open Visual Studio and compile them or open Developer Command Prompt for VS2022 and run
msbuild Xenode.sln
- Clone the repository recursively:
git clone --recursive https://github.com/shreyaspranav/Xenode.git
- Go to the cloned directory and run
premake-linux vs2022
- All Makefiles will be generated, run
make
to build the project
As of time of writing, Xenode has a fast 2D Batch Renderer which supports rendering quads and circles. It can render thousands of colored quads in a single draw call. It also has a level editor made in ImGui and is dockable. It also has a demo FlappyBird game made with this engine in SandboxApp project.
The 2D renderer API in Xenode provides API for rendering colored quads, textured quads, hard and soft circles, donuts and more. The 2D renderer works by batching the geometry and drawing in less number of draw calls.
GLFW is used for the windowing and input. The API supports fullscreen windows and semi transperent windows. The API also allows fullscreen window to be targeted to a specific monitor. All inputs are hooked to the event system API.
- GLFW for windows and input
- glad for OpenGL Function loading
- spdlog for logging
- glm for math
- ImGui for debug windows and Level Editor
- stb_image for texture loading
- entt for ECS(Entity Component System)
- yaml-cpp for serialisation
- taskflow for parallel execution
- freetype for font loading
To make a cross platform 3D and 2D game engine and ship a production level game in the near future.
- Text rendering
- 2D Particle system
- 2D Shadows
- Scripting system
- Asset manager and content manager
- UI Library
- Support for joysticks
- Mac support