Git Product home page Git Product logo

qor's Introduction

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

qor's People

Contributors

flipcoder avatar gitter-badger avatar mrgirlyman avatar tamamcglinn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qor's Issues

Qor Editor Vision

As I was saying earlier... this is one of the idea I got... from blender being able to create custom script via python aside from the builtin logic bricks...

http://i.stack.imgur.com/riBUY.png

Also like OSL in blender... but instead of using this technique which uses code inside the node editor to create material... which still can be implemented... you can control the game...

https://www.youtube.com/watch?v=9CYDi8h0SuE&list=PL36oS3fOPhIi7ZBjEnkRXZzHKVVFeLqfV

and the second idea will be like this... as reference from your https://github.com/flipcoder/qor/blob/master/bin/mods/scriptdemo/__init__.py

self.gun = qor.Mesh("gun_bullpup.obj")
qor.camera().add(self.gun)

would be illustrated in the visual tree like this(like in blender... the very last one being selected is the active and when you press the parent shortcut... all the previous selected nodes will be the child of the active node or the last one selected... ):

node tree
But ofcouse it needs to look better... for presentation... for the delight of the our artist/designer inclined users...
http://www.sfdm.scad.edu/faculty/mkesson/vsfx502/wip/best/fall11/kevin_george/deep/images/nukesetup1.jpg

The main workflow idea was from Unreal Engine Blueprint (https://www.youtube.com/watch?v=cRhWc2kAhqI&list=PLZlv_N0_O1gbYMYfhhdzfW1tUV4jU0YxH ... watch the introduction... the vision/idea is the same... it's just the implementation that will make us unique...) ... where in a user can create a full game w/o writing a code... but with limitations... also there's the blender game engine node editor addon currently in wip...

Just like BGE or Unreal... a user can do a game using only code... or can use visual scripting... :)

if there's still some confusion ask me (I might still be forgoting some details)... :D

Question?

There's no plan for an editor??? :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.