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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Dependencies
Firefly-core
.gitignore
Firefly.sln
README.md

README.md

Firefly Game Engine

Currently in development
Experimental beta

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

Development Roadmap

Setup

  • 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

Window

  • 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

GLEW

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

Math

  • 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

Shaders

  • 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

Buffers

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

Renderers

  • 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

Benchmarking

  • Create timer class to determine FPS

Layers

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