Skip to content

ShehryarX/firefly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published