Skip to content
/ qor Public

3D OpenGL Game Engine (C++ w/ Python scripting)

License

Notifications You must be signed in to change notification settings

flipcoder/qor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7a2ebf6 · May 19, 2021
Aug 16, 2019
Aug 19, 2019
Mar 5, 2016
Mar 22, 2019
Aug 11, 2018
Aug 11, 2018
Jan 14, 2018
Jan 22, 2014
Jun 7, 2018
Jun 28, 2016
Jun 28, 2016
May 19, 2021
Jul 3, 2019
Aug 11, 2018
Jul 29, 2017
Jun 13, 2016
Mar 7, 2019
Jan 14, 2016

Repository files navigation

Qor

2D/3D OpenGL Game Engine (C++11 w/ Python scripting)

Featured on the Official GitHub Blog!

Copyright (c) 2007-2018 Grady O'Connell

Open-source under MIT License. See LICENSE file for more information.

See CREDITS.md for a list of contributers.

This is a rewrite of my older game engine, with code dating back to 2007.

Features

  • Cross-platform (Windows, Linux, and Mac(wip))
  • Multi-threaded (more improvements here soon)
  • OpenGL ES-compatible shader-based pipeline
    • Forward rendering w/ multipass lighting
    • Several shaders, including tangent-space bumpmapping
    • Partitioner/culling support
    • Automatic VBO baking of visible areas (10x framerate in many cases)
    • Mesh instance copy-on-write vertex and shader attribute modifications
    • Basic instancing
    • Render-to-Texture
    • Thread-safe OpenGL task handler
  • C++ and (wip) Python support
  • Multi-layer tilemap system for 2D games
    • Compatible with Tiled map editor
  • Python Console
  • Shared resource management
    • Animating Sprites
    • Resource management and multiple path search
    • Resource caching
    • Basic create() function for all types
    • Json config for more complex resources
      • Config-based type-resolution and subresources
    • Composite/nested resource suport
    • User-defined resources
  • 3D Scene graph
    • World matrix transform caching
    • Static mesh baking (collapse to world space and combine)
    • Tracking/following w/ animation support
    • Node factory supporting user classes
    • Node tags
    • Many 3D model formats supported
    • Blender scene exporter
  • Reactive Subsystems
    • Communicate with/between nodes easily by sending/receiving data through named metaobject/json events
    • Each node has a lightweight state machine with signal support
    • User-defined events and states
  • State stack
    • User-defined engine states
    • Async loading screens
  • Input
    • Multiple controllers
    • Bindings specific to player profiles
    • Button/switch-associated events
    • Switch history for timer-based events and multiple fast press events
    • Activation thresholds
  • Animation (code moved to kit)
    • Timer-based keyframes
    • Interpolation/Easing
    • Callback scheduling
  • Music and 3D Sound
    • Powered by OpenAL
    • Wav and Ogg support
    • Thread-safe
  • Cairo 2D primitives w/ Render-To-Texture
  • Pango Font and Text Rendering
  • Headless mode for dedicated servers and unit testing

More features will be listed as I add them...

Screenshots

Micro Army

FRAG.EXE

Lights

Fire