Code Monkey home page Code Monkey logo

dream's Introduction

Dream

( Data Rules Everything Around Me )

What?

Dream is a Demo and Game Engine.

Key Features

  • Platform Independant
  • Written in C++
  • OpenGL Graphics
  • OpenAL Audio
  • Freetype Font Engine
  • Bullet Physics & Collision
  • Lua Scripting
  • Project Editor Written with ImGui

Architecture

This section will describe the key concepts used when working with Dream.

Project

Projects are the highest level of object in Dream. A Project consists of a json file and an assets directory structure. The Project holds definitions of Scenes, Entities and AssetDefinitions.

Assets

A Project will contain several 'Asset' objects. An Asset describes something that can be added into a Scene, such as a 3D model, Audio Clip, Spline Path, etc. (full list below).

AssetDefinitions

Asset Definitions are used to define an Asset's properties at start-up. They are defined once at the Project level and can be reused multiple times within your Screen to create implement Entities. Asset Definitions are defined at the Project level so that they can be shared by many Scenes and Entities. There are several types of Asset available in Dream.

  • Animation
  • Audio
  • Font
  • Light
  • Material
  • Model
  • Path
  • Physics Object
  • Script
  • Shader
  • Sprite
  • Texture

Scenes

A Project contains one or more Scenes that are to be displayed. A Scene is composed of one or more Entities. A Scene may for example represent a level, environment or stage within your application.

Entities

Entities are used to construct a 'Scenegraph' that describes the relationship of objects within the Scene. A Scene has a single 'Root' Entity with 0-N children. Entities are arranged within a parent-child relationship tree, through which they can inherit their initial transformation, visibility, etc. Each Entity is assigned zero or more 'AssetsDefinitions' to use at startup.

DreamTool

DreamTool is the Project editor for Dream. It is cross-platrofm, written with Dear ImGui. It allows you to build and test Scenes that can later be run using a standalone Dream engine frontend (DreamGLFW/DreamAndroid). Both DreamTool and Frontend applications use the same engine codebase 'DreamCore' so runtime results will be identical.

Build Dependencies

Dream uses the following libraries.

dream's People

Contributors

octronic-uk avatar

Stargazers

Alexei Kireev avatar Future Infinity avatar Robert Campbell avatar  avatar Mutalisk avatar  avatar testOne avatar

Watchers

James Cloos avatar  avatar Alexei Kireev avatar

Forkers

vb6hobbyst7

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.