Welcome to "Engine" - my personal journey and portfolio in game engine development. Inspired by "Real Time Rendering," this project is a playground where I implement and explore various rendering APIs, showcasing my technical skills and learning experiences in the realm of game engine development.
This project aims to demonstrate my proficiency across different rendering technologies. Each API choice reflects a unique aspect of my skillset:
- OpenGL (Work in Progress): Demonstrating foundational rendering techniques and optimizations.
- Vulkan (Planned): To explore and showcase low-level, high-efficiency graphics programming.
- Direct3D (Planned): Focused on leveraging Microsoft's widely-used API for high-performance games.
- Metal (Planned): Diving into Apple's Metal for iOS/macOS specific optimizations.
My experience with Vulkan and Direct3D in separate projects has been pivotal in my growth as a game engine developer. These projects provide insight into my approach and depth in engine programming:
- Vulkan Testing: A deep dive into Vulkan's capabilities.
- DODE - Direct3D: Exploring the nuances of Direct3D.
I am integrating hot reloading into this engine. This feature exemplifies my commitment to efficient development practices, enabling real-time updates and testing within the engine.
To get started with reviewing my code, please follow the installation steps below. The project requires CMake and vcpkg for managing dependencies.
in a terminal execute set VCPKG_FEATURE_FLAGS=manifests
to enable manifest mode then
run vcpkg install
to download dependencies
The project utilizes several libraries and frameworks, including:
entt
: Entity-component system.glfw3
: Window management.glm
: Mathematics for graphics.imgui
: Immediate Mode GUI.nlohmann-json
: JSON handling.sqlite-orm
: Lightweight SQLite ORM.tinygltf
: glTF loading. ... and others as listed in the vcpkg manifest.
run build.bat
Here, I provide examples and demonstrations showcasing various features and capabilities of the engine. This includes code snippets, screenshots, or video links that highlight the engine's performance and my implementation techniques.
- Load models: Demonstrating model integration capabilities.
- Support multiple materials/shaders: To enhance visual versatility.
- Integrate IMGUI with Vulkan: For a robust GUI in Vulkan.
- Implement Animation: Showcasing dynamic and fluid object movements.
I am a seasoned software developer with a decade of experience in game development, specializing in game engine architecture and data-oriented design. My passion lies in pushing the boundaries of what's possible in real-time rendering and efficient software architecture.
For inquiries, discussions, or collaboration opportunities, please feel free to reach out to me at [Your Contact Information].