
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()
andUpdate()
hooks for user-defined behavior. - Main and secondary scripts attachable to the game loop.
- Simple
๐งฉ 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.