SpaRcle Engine
SpaRcle Engine is an ongoing game engine developed in C++. It aims to establish a strong base for game creation and is currently in the early stages of development, emphasizing the creation of a versatile and efficient architecture.
Screenshots
![image_2023-05-31_21-40-59](https://private-user-images.githubusercontent.com/47291246/243108964-6bf73c99-81a2-4a3e-ad28-4c788884eb38.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDcyMzQ0MTYsIm5iZiI6MTcwNzIzNDExNiwicGF0aCI6Ii80NzI5MTI0Ni8yNDMxMDg5NjQtNmJmNzNjOTktODFhMi00YTNlLWFkMjgtNGM3ODg4ODRlYjM4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMjA2VDE1NDE1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkNzExMTMwYTJjODg5ZTBmMTMxZmQ0MmVlNWYzNzIyYmZkYWU4NzE2NmI1MGFkY2EwZWI5NGRiNjY0MmU4MTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.a1cgr_Ne1bg4AYgp1jS2vkLLMHkMyJLeqCesQ2pUUb8)
![image_2023-05-31_21-40-59](https://private-user-images.githubusercontent.com/47291246/253776621-32cfdbcb-5a0d-4a74-9501-539da40379e2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MDcyMzQ0MTYsIm5iZiI6MTcwNzIzNDExNiwicGF0aCI6Ii80NzI5MTI0Ni8yNTM3NzY2MjEtMzJjZmRiY2ItNWEwZC00YTc0LTk1MDEtNTM5ZGE0MDM3OWUyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwMjA2VDE1NDE1NlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVlMTA0MWY0ZDg4ZTlmNzgyMmE4NGUwMmE5ZmEzZjNiMzE2MWM3NjY4NTIzMTM5NDM0NTIwOTdkOTNiZTY3OGYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.E8U7JT68wSI8S8lEqhnf-y4-uqJFhcIgLjSQWx__9CQ)
Supported compilers
- MSVC (Stable)
- MinGW
- Cygwin
- Clang
- GCC
Supported platforms
- Windows 10
- Linux X11 (in development)
- Linux Wayland
- Android
Branches
- master - branch for releases
- dev - active development branch
- features/* - branches for new features
- tmp/* - temporary branches for dangerous experiments
Building
Important
Requirements:
- 0.1. Install Clion 2020.1 or newer / Visual Studio 2019 or newer
- 0.2. Install Vulkan SDK/Runtime 1.3.211.0 or newer
- 0.3. Install CMake 3.16.0 or newer
- 0.4. Install MS Build Tools for Visual Studio 16.11.29 or newer (if you are using CLion)
Clone repository via the command "git clone https://github.com/SpaRcle-Studio/SREngine"
Switch to the "dev" (or another one) branch via the command "git checkout branch_name"
Run command "git submodule update --init --recursive" in repository folder
4. Working with CMake (if you're using Visual Studio):
- 4.1 Open CMake GUI
- 4.2 Choose the path to the SREngine folder (where the source code is located).
- 4.3 Choose the path where to build the binaries (SREngine/Build).
- 4.4 Press "Configure" and choose your VS version.
- 4.5 Press "Generate"
- 4.6 Open Visual Studio solution
- 4.7 Set as startap project SREngine
- 4.8 Run build
5. Working with CLion:
- 5.1 Press Ctrl + Alt + S to open Settings window
- 5.2. Select "Build, Execution, Deployment" on the left
- 5.3. Select "Toolchains"
- 5.4. Add (Alt + Insert) Visual Studio compiler
- 5.5. Select amd64 in "Architecture:"
- 5.6. Repeat 5.2
- 5.7. Select "CMake"
- 5.8. Pass "-j*" argument as "Build options", while * is a number of your logical processors minus 2
- 5.9. In Project window right-click SREngine folder and click "Reload CMake Project"
- 5.10. Click "Run 'SREngine'" (Shift + F10)
Used libraries
- ImGUI
- ImGuizmo
- tinyobjloader
- imgui-node-editor
- EvoScript
- EvoVulkan
- Assimp
- Vulkan Memory Allocator
- stb
- glm
- Bullet3
- PhysX
- Box2D
- json
Features
- SpaRcle Shader Language (SRSL)
- SpaRcle Logical Machine (SRLM) aka Blueprints
- Chunk system
- Render passes
- Custom framebuffers
- C++ scripting system
- Animations
- SSAO
- Cascaded shadow mapping
- Ray-marching
- Physics
- Font renderer
- Vulkan pipeline
- Multi-cameras renderer
- Geometry loader
- Texture loader