It is a Game engine written in C++
- 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!
-
You need to have CMake in your machine! Go here to download the latest CMake and be sure to add CMake to your environment variable in your OS. We recommend downloading the installer and checking the option
Add to Path
-
With CMake, CLion is the recommended IDE but Visual Studio 2019 will also work fine!
-
CLion
- In CLion you can add this repository as a project. And hit the play button!
-
Visual Studio 2019
- Run the
WindowsGenProjectsCMake.bat
file inside the scripts folder to generate project files for Visual Studio 2019 inside the build folder in the root directory.Open theSpike.sln
and hit the play button to get the engine running!
- Run the
-
Others
- If you want to generate for other IDE or versions of Visual Studio then in the project directory then run the following code ⬇️
# makes a directory named build in the root directory mkdir build # Enters the build directory cd build # You CMake action cmake <Your-CMake-action>
- Once CMake generates 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!
-
You need to have CMake in your machine! Go here to download the latest CMake and be sure to add CMake to your environment variable in your OS. We recommend downloading the installer and checking the option
Add to Path
-
With CMake, CLion is the recommended IDE in Mac & Linux
-
CLion
- In CLion you can add this repository as a project. And hit the play button!
-
Others
-
If you want to generate for other IDE then you should make a directory in the project root directory called
build
and generate CMake files with other CMake actions -
Once CMake generates the project files then you can hit the run button and make the engine up and running!
-
- 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.