It is a Game engine written in C++
We use premake for project files generation
- Visual Studio 2019 is highly recommended in Windows
- Start by cloning the repository with
git clone --recursive https://github.com/FahimFuad/Spike.git
to clone along with the submodules. If you have already cloned and you want to initialize the submodules, typegit submodule init
and to update the submodules typegit submodule update
in your project directory. - Run the
WindowsGenProjects.bat
file inside the scripts folder and Premake will generate project files for Visual Studio 2019. - If you want to generate for other IDE or versions of Visual Studio then in the project directory run your favourite premake action
- Once premake generate the project files then you can hit the run button and make the engine up and running!
- Start by cloning the repository with
git clone --recursive https://github.com/FahimFuad/Spike.git
to clone along with the submodules. If you have already cloned and you want to initialize the submodules, typegit submodule init
and to update the submodules typegit submodule update
in your project directory. - To genereate the project files for your IDE, select the actions of the premake and run them in the project directory. A list of actions of the premake can be found here
- The engine is now ready to run!
- Fast 2D rendering (UI, particles, sprites, etc.)
- High-fidelity Physically-Based 3D rendering (this will be expanded later, 2D to come first)
- Support for Mac, Android and iOS
- Native rendering API support (DirectX, Vulkan, Metal)
- Fully featured viewer and editor applications
- Fully scripted interaction and behavior
- Integrated 3rd party 2D and 3D physics engine
- Procedural terrain and world generation
- Robust Artificial Intelligence(AI) system
- Audio system
- Console Logging
- Internal Key and Mouse Codes
- Input Polling
- LayerStack and Layers
- Event System and Events
- 2D Renderer
- Fast and easy to use API for 2D Rendering
- Entity Component System(ECS)
- Native C++ Scripting
- GUI Editor (Spike-Editor)
- Deltatime
- Scene system
- Scene Serialization and Deserialization using YAML
- On Screen Gizmos to control the Transform of the object
- Translation, rotation and scale
- Built in editor console
- Editor Camera
- DearImGui for Graphical User Interface
- GLFW for Windowing
- Glad OpenGL loader
- ImGuizmo for Gizmo's
- stb_image for image loading
- glm used as Math Library
- EnTT for Entity component system
- spdlog for fast Logging
- yaml-cpp for scene serialization
- For contributing, fork this repository first.
- Then made a feature branch in your fork and start adding stuff.
- When you're ready with your feature, you can send a Pull Request(PR).
- Then your code will be reviewed and if everything goes well, your commits will be mergerd!
This engine is inspired from TheCherno's Hazel Engine.