VertexForge is a modular game engine framework built in C++ using modern technologies such as Vulkan, GLFW, ImGui, and spdlog. The project is structured to support the development of real-time applications, with components divided into several sub-projects including core engine functionality, a graphical editor, runtime, utilities, and libraries like Jolt Physics.
- Introduction
- Table of Contents
- Installation
- Usage
- Features
- Project Structure
- Dependencies
- Configuration
- Contributors
- License
- Ensure you have installed the Vulkan SDK, GLFW, and CMake.
- Set the
VULKAN_SDKenvironment variable to the Vulkan SDK installation path. - Premake5: You will need Premake5 to generate project files for your build system (e.g., Visual Studio, Makefiles).
- CMake (for dependencies like Assimp and OpenAL).
- Clone the repository:
git clone https://github.com/your-repo/vertexforge.git cd vertexforge - Build the project using your preferred IDE (e.g., Visual Studio) or the command line:
premake5 vs2022
- Open the solution or makefile and build the projects in
DebugorReleasemode. - Ensure all dependencies (Vulkan, GLFW, ImGui, etc.) are available and configured correctly in your build environment.
The primary entry points for development are the Editor and Runtime projects:
- Editor: Launches the graphical editor interface.
- Runtime: Runs the application using the built engine.
To run the engine, simply build and run the Editor or Runtime projects.
To run in Debug or Release configurations:
- Select the desired configuration in your IDE (e.g.,
DebugorRelease). - Build the solution.
- Execute the
EditororRuntimeproject from thebindirectory.
- Modular Engine Architecture: Split into
Core,Graphics,Runtime, andUtilitiesprojects for flexible development. - Vulkan-based Rendering: Uses Vulkan for high-performance graphics rendering.
- ImGui Integration: Provides a graphical interface for development tools and editors.
- Physics Engine: Integrates Jolt Physics for real-time simulation.
- Cross-Platform Compatibility: Supports Windows with future plans for other platforms.
- VFEngine
editor: Graphical editor application.core: Core engine functionality.graphics: Rendering and graphics pipeline.runtime: Main application runtime.utilities: Common utilities shared across projects.dependencies: External libraries (GLFW, ImGui, Jolt, etc.).
- Vulkan SDK: For rendering.
- GLFW: For window management and input.
- ImGui: For GUI rendering.
- spdlog: For logging.
- Jolt Physics: Physics simulation library.
- GLFW
- spdLog
- ImGui
- JoltPhysics
- glm
- stb
- Debug: Includes debug symbols and uses the
DEBUGpreprocessor definition. - Release: Optimized for performance and uses the
NDEBUGpreprocessor definition.
Ensure the following environment variable is set:
VULKAN_SDK: Path to your Vulkan SDK installation.
- Matatn Migdal (Lead Developer)
This project is licensed under the MIT License - see the LICENSE file for details.
