Giter Site home page Giter Site logo

gold's Introduction

gold - Generic Object Linked Development

A high level app framework

License

What is this?

It's a high level abstraction app framework, written in C++. It uses simple objects to carry out various tasks in a simple data driven development. Making fast video games or HTTP web services can be organically and quickly developed, and both sub systems are split accordingly, and they'll both share the same base. You can make a game server that uses the same code base as the game. Or a website that talks to a game, or vice-versa. More additions and ideas coming down the road.

What's in the box?

  • RAII Objects/Lists
  • Object inheritance (prototypes)
  • Type agnosticism with abstracted run-time type information
  • Universal generic RAII value container; "var" <-- type name
  • First class Vector, Quaternion, Matrix3x3, Matrix4x4 var types
  • JSON/BSON/CBOR/MsgPack/UBJSON/URLForm serialization
  • Express.JS "like" HTTP(S)/WebSocket server
  • HTML5 rendering (with form handling/pragmatic templating)
  • MongoDB driver and basic MVC system
  • Server-side image loading (not connected to game).
  • Object & component based game engine
  • Basic window handling
  • 3D matrix transformation hierarchies
  • Texture loading(2D/3D/Cube)
  • Auto shader compilation, with inlining
  • CMake utilities
  • Still experimental threading stuff (workers/promises)
  • 3rdParty dependencies are sub modules to other GitHub projects
  • Hard parts of C++ have been abstracted to JS/Python difficulty
  • Works with GCC and Clang (MSVC is untested).
  • Uses little memory actually, good enough for x64 IOT or Mobile.

Where it falls short?

  • Lacks some in-depth error handling (see genericError)
  • Threading is subsystem limited and experimental (off by default)
  • Has heavy 3rdParty dependencies that have it's own dependencies
  • Needs the latest bleeding edge compiler and STL library
  • Uses the C++17/20 standard

What it's lacking?

  • Documentation
  • Comments
  • Bug/error testing
  • Tests
  • A website

What's planned?

  • Documentation
  • More bug testing
  • In-depth complex examples
  • Expanded game engine
  • Expanded web services
  • Asset handling
  • Game editor
  • GUI handling
  • Audio handling
  • Controller handling
  • Async event handling
  • Asset packing
  • Error reporting
  • Scripting language interface
  • Compile to WebAssembly/ASM.JS?

Getting Started

You can copy everything from the examples directory to get started with a basic web app or game. It's better to make this project a submodule in git instead of cloning/copying the project.

All code not in 3rdParty or explicitly stated otherwise are Apache version 2.

gold's People

Contributors

aurose94 avatar

Watchers

 avatar

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.