Skip to content
Firefly is a cross-platform game engine built in C++ and OpenGL.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Firefly Game Engine

Currently in development
Experimental beta

Firefly is a cross-platform game engine built with C++ using GLFW.

Development Roadmap


  • Setup C++ project
  • Create custom bin/ path for intermediate files
  • Create dynamic linking with GLFW library
  • Integrate static GLEW library for future support for GLFW
  • Add .gitignore to remove OS-specific binaries


  • Add window.h class definitions
  • Add window.cpp implementation
  • Add firefly::graphics::Window test in main.cpp
  • Add key press and mouse press events
  • Add dynamic mouse and key location fetching
  • Link key, mouse, and cursor position callbacks to GLFW superwindow
  • Add debugging mechanism to detect OpenGL errors
  • Create unit testing for firefly::graphics::Window


  • Init glew inside header.cpp to allow future library utils


  • Create vec2, vec3 and vec4 objects with basic operations
  • Create math.h header for math library
  • Develop mat4.h for 4x4 matrices and define common operations
  • Add union data management to extract matrix column easily
  • Add common math functions in math_func.h
  • Add unit testing for math library
  • Add epsilon floating point comparison for equality or inequality operations


  • Add shader.h class definition and implementation
  • Create basic test frags and verts for gradient
  • Test visual matrix rotation and transformation
  • Create unit testing environment for firefly::graphics::Shader


  • Create buffer.h, arraybuffer.h and vertexarray.h for rendering engine
  • Test with gradient implementation


  • Create Renderable.h superclass for future renderable type prototype
  • Create simple 2D renderer class
  • Develop faster, batch renderer in BatchRenderer2D
  • Benchmark BatchRenderer2D and Simple2DRenderer with 57000 untextured sprites


  • Create timer class to determine FPS


  • Create base class layer.h
  • Create tile layer tilelayer.h and test in main.cpp
You can’t perform that action at this time.