Skip to content

cubeman99/CMGEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CMGEngine

CMGEngine is a C++ game engine developed by David Jordan (created in 2015). Uses OpenGL for graphics. Uses CMake to build. Currently being tested on Windows 10.

Libraries

  • CMGCore: Core engine functionality and framework
  • CMGMath: Math types such as Vector2f and Matrix4f
  • CMGGraphics: Graphics library for drawing and rendering 2D and 3D using OpenGL
  • CMGApplication: High level application level code including resource management.
  • CMGInput: Keyboard, mouse, and joystick input system using DirectInput8.
  • CMGPhysics: 3D physics engine.

Dependencies

  • FreeType: Vectorized fonts
  • OpenGL & Glew: Graphics library
  • SOIL: Image loading and saving
  • lodepng: Image saving for PNG
  • DirectInput8: user input
  • WinSDK
  • Catch: unit tests
  • Googletest: unit tests

Trello Page

Use for issue and change tracking. https://trello.com/b/wGRJTuHn/cmg-engine

TODO

  • General
    • Create an audio engine
    • Start using cmg namespace everywhere
    • Create CMake example project
    • Stop using struct/enum pairings, use enum class
      • decide on standard for enum names, k_enum or enum_value, and apply to code
    • Start using smart pointers where necessary, like Graphics2D
      • remove sptr where not necessary like in SetShaderUniform
    • Add event-based code
      • window
      • input: key, mouse, joystick, plug-in, unplug
        • Keyboard events/mouse events (might need to use Win32 instead of directinput)
      • physics
  • Core
    • Mutex and Thread wrapper
    • Better 'Error' handling, that show proper traceback
  • Graphics
    • delete Renderer class
    • Make FreeType/SOIL compiled into cmgGraphics lib
    • 3D Model importing
      • OBJ & Materials
    • ECS systems for rendering
    • fix attribute location mismatches (use constant index or varying per mesh?)
    • let shader uniforms be referenced as 'array' and 'array[0]'
    • Rework DecodedImageData interface (at least for memory management)
    • generic vs specific material class

FIXME

ECS plannig: parent/child of entities transform built-in to entity 1 component type per entity components inheriting other components? Update() in component systems?

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors