Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/flipcoder/qor

3D OpenGL Game Engine (C++ w/ Python scripting)
https://github.com/flipcoder/qor

3d-engine c-plus-plus cpp cpp11 cross-platform game-development game-engine game-engine-3d linux opengl python python-script qor qorengine raknet sdl

Last synced: 3 months ago
JSON representation

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

Lists

README

        

![Qor](https://raw.githubusercontent.com/flipcoder/qor/master/qor.png)

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

*Featured on the [Official GitHub Blog](https://github.com/blog/2292-game-off-iv-highlights)!*

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](https://github.com/flipcoder/qor-old), with code dating back to 2007.

- [Project Board](https://trello.com/b/0uh8zbxa/qor)
- [Documentation](https://github.com/flipcoder/qor/blob/master/QorBook.md)
- Projects and Examples:
- [FRAG.EXE (First person shooter)](https://github.com/flipcoder/FRAG.EXE)
- [Micro Army (2d platformer)](https://github.com/flipcoder/microarmy)
- [Qorpse (2D shooter)](https://github.com/flipcoder/qorpse)
- [Skyroads-inspired racer](https://github.com/flipcoder/bouncingship)
- [C++ Usage Example](https://github.com/flipcoder/qor/blob/master/src/DemoState.cpp)
- [Python Usage Example](https://github.com/flipcoder/qor/blob/master/bin/mods/scriptdemo/__init__.py)

## 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](http://mapeditor.org) 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](https://github.com/flipcoder/kit))
- Timer-based keyframes
- Interpolation/Easing
- Callback scheduling
- Music and 3D Sound
- Powered by OpenAL
- Wav and Ogg support
- Thread-safe
- [Cairo](http://cairographics.org) 2D primitives w/ Render-To-Texture
- [Pango](http://pango.org) Font and Text Rendering
- Headless mode for dedicated servers and unit testing

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

## Screenshots

[![Micro Army](https://i.imgur.com/cNIOXHal.jpg)](https://i.imgur.com/cNIOXHa.jpg)

[![FRAG.EXE](https://i.imgur.com/P5Pntbsl.jpg)](https://i.imgur.com/P5Pntbs.jpg)

[![Lights](http://i.imgur.com/XNxLRtKl.jpg)](http://i.imgur.com/XNxLRtK.jpg)

[![Fire](http://i.imgur.com/VPH9ZpCl.png)](http://i.imgur.com/VPH9ZpC.jpg)