All Projects → ShehryarX → firefly

ShehryarX / firefly

Licence: other
Firefly is a cross-platform game engine built in C++ and GLFW.

Programming Languages

C++
36643 projects - #6 most used programming language
GLSL
2045 projects
c
50402 projects - #5 most used programming language

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].