Candle Engine

Candle Engine


Engine C++ DirectX9 Rendering Game Dev Candle Engine

Status: In development
Role: Full development (C++, rendering systems, architecture)
Tags: Engine, Low-level programming, Tools, C++

Candle Engine is my custom C++ game engine, designed as a deep dive into graphics programming and engine architecture. Itโ€™s modular, performant, and built to explore how rendering pipelines, input systems, and materials come together in a real-time environment.

๐ŸŒŸ Features (So Far)

  • Core Loop & Windowing

    • Custom Win32 message handling and DirectX 9 device creation
    • Main update/render loop with frame timing.
  • Rendering Pipeline

    • World โ†’ View โ†’ Projection matrices
    • Indexed vertex buffers & triangle rendering.
    • Per-object transforms (translation, rotation, scale).
    • Basic lighting via point lights (position, diffuse, attenuation).
  • Game Objects

    • GameObject abstraction with position, rotation, scale, vertex/index data.
    • Configurable materials and textures.
    • Per-object render toggling.
  • Materials & Textures

    • Material system using DirectX effects (.fx) and up to three textures bound per object.
    • Texture sampling & anisotropic filtering.
  • Input System

    • DirectInput-based keyboard handling.
    • Key mapping (WASD, Space, Q/E) with GetKey, GetKeyDown, GetKeyUp.
  • Scripting Layer (FireScript)

    • Simple Start() and Update() hooks for user-defined behavior.
    • Main and secondary scripts attachable to the game loop.

๐Ÿงฉ Example Components

  • Game.cpp โ†’ Bootstraps the engine, sets up DirectX, and runs the loop.
  • GameObject.cpp โ†’ Defines position, rotation, scaling, and rendering state.
  • Input.cpp โ†’ Polls and updates keyboard state each frame.
  • Material.cpp โ†’ Loads and manages textures.
  • FireScript.cpp โ†’ User scripting hooks.

๐Ÿ“– Why Candle Engine?

This project is my next step after Shadow Engine:

  • Shadow Engine gave me a browser-based playground.
  • Candle Engine is where I bring those lessons into C++ and DirectX for performance and low-level control.
  • Itโ€™s my personal โ€œC++ labโ€ for graphics programming, scalable architecture, and future extensions like physics.

๐Ÿ›ฃ๏ธ Next Steps

  • Expand material/shader system with normals & specular.
  • Add camera movement & multiple view modes.
  • Build a mesh loader for external models.
  • Implement a physics/collision layer.
  • Explore porting to modern APIs (DirectX 11/12, Vulkan, or OpenGL).

๐Ÿ”ฅ Candle Engine is all about learning by building.
Itโ€™s not just about making gamesโ€”itโ€™s about mastering the craft of engines themselves.

© 2025 Driconmax