Xenode
Xenode copied to clipboard
A Cross Platform 2D and 3D Game Engine
Xenode
Xenode is a cross platform game engine that works primarily works in Windows and Linux.
Building Xenode
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
Requirements
- x64 based processor
- GPU with OpenGL 4.5 support
32 bit builds are officially not supported
For Windows
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
For Linux
- 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
maketo build the project
What's Present in Xenode?
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.
2D Renderer
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.
Windowing and input
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.
Dependencies
- 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
Plan
To make a cross platform 3D and 2D game engine and ship a production level game in the near future.
Things to implement in the game engine 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