Skip to content

cyn1x/iconoclast-cpp

Repository files navigation

Overview

Iconoclast is a game engine currently being written in C++.

Installation

Build support is available for Microsoft Visual Studio 2026. There is also build support for text editors using tools\build.bat to bind to a build command.

Iconoclast is currently only supported on Windows.

IDE

Opening the Project Solution (*.slnx) file in Visual Studio will automatically configure the IDE. For use with text editors, follow the instructions below to be able to make use of the build.bat build script.

  • Microsoft Visual Studio 2026
    • Workloads
      • Desktop Development for C++
      • Game Development with C++

Text Editor

The project requires the following dependencies for text editors.

  • Microsoft Visual Studio BuildTools 2026
    • Workloads
      • Desktop Development for C++
      • Game Development with C++
    • Individual components
      • MSBuild support for LLVM (clang-cl) toolset
      • C++ Clang Compiler for Windows (20.1.8)

Clang acts as the Language Server Protocal (LSP), and MSBuild is required to compile the project source files.

Configurations

  • Add devenv to the PATH to debug via the command-line interface.
    • C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE
  • Add clang++ to the PATH
    • C:\Program Files\Microsoft Visual Studio\18\Community\VC\Tools\Llvm\x64\bin

Debugging

Run the command below to open the executable in Visual Studio 2026.

devenv bin\windows\Debug_x86_64\sandbox.exe

Press F11 to Step Into the program entry point, which shows the code being executed for debugging purposes.

Roadmap

The following serves as a rough outline of the key milestones to indicate the trajectory of the project.

Legend:

✅ public  |  🔒 private  |  🔄 in progress  |  ⏳ planned

Current features:

  • 🔒 Software renderer
  • 🔒 Keyboard and mouse input
  • 🔒 XInput gamepad controls
  • ✅ Event system
  • ✅ Multi-Graphics API abstraction layer
  • 🔒 Hot reloading
  • 🔒 Memory allocator

Future plans:

  • 🔄 DirectX 11 renderer
  • 🔄 OpenGL renderer
  • XAudio2 audio layer
  • ⏳ SIMD Mathematics library
  • ⏳ Memory management system
  • ⏳ Performance profiling

Notes

This project changed from C to C++ at SHA 62338d2, and a fork was created at SHA 41f06e7 to continue development in C. There are currently no plans to port locked features from the forked C project to C++ except for input controls.

The forked C project uses DirectSound in place of XAudio2, as XAudio2 has no C implementation.

Mentions

Resources that have helped me, and have continued to help me work on this project.

TheCherno
HandmadeHero
Learn OpenGL
RasterTek

About

A foundational C++ game engine, focusing on abstracted DirectX 11 and OpenGL rendering with future plans for multi-API runtime support.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors