Skip to content

andresfelipemendez/Engine

Repository files navigation

Engine - A Showcase of Game Engine Development Skills

Introduction

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.

Rendering APIs

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.

Previous Work

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:

Hot Reloading Feature

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.

Installation and Dependencies

To get started with reviewing my code, please follow the installation steps below. The project requires CMake and vcpkg for managing dependencies.

Setup

in a terminal execute set VCPKG_FEATURE_FLAGS=manifests to enable manifest mode then run vcpkg install to download dependencies

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.

Build

run build.bat

Usage and Demonstrations

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.

Todo List

  • 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.

About the Developer

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.

Contact

For inquiries, discussions, or collaboration opportunities, please feel free to reach out to me at [Your Contact Information].