Giter Site home page Giter Site logo

acidrainstudios / truereality Goto Github PK

View Code? Open in Web Editor NEW
12.0 12.0 7.0 6.05 MB

True Reality (TR) is an open source LGPL Game and Simulation Engine written entirely in Standard C++ and OpenGL. It runs on all Windows platforms and GNU/Linux. OpenSceneGraph is used as its graphics engine, along with many other open source projects for support of various features.

License: GNU Lesser General Public License v3.0

CMake 6.52% C++ 93.01% C 0.46% Shell 0.01%
3d-game-engine augmented-reality game-development game-engine graphics-engine opengl openscenegraph rendering simulation simulation-engine virtual-reality

truereality's People

Contributors

acidrainstudios avatar dieslower avatar exoticdft avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

truereality's Issues

GUI System

Create GUI system to use for in-game menus, mini-maps, etc.

Level Editor

Create a level editor, like Delta3D's STAGE, to edit maps for the simulation.

Camera Centered World

The camera should be placed at (0,0,0) at all times to avoid positional miscalculation (rounding/machine error) from very far away objects placed near the camera.

Create TR Environmental Variables

Create TR Environmental variables and utilities to use them.

TR_ROOT = c:\blah_blah\TrueReality
TR_LIB = %TR_ROOT%\Lib;%TR_ROOT%\Ext\Lib
TR_BIN = %TR_ROOT%\Bin;%TR_ROOT%\Ext\Bin
TR_INC = %TR_ROOT%\Include;%TR_ROOT%\Ext\Include
TR_DATA = %TR_ROOT%\DataFolder --This is an optional Variable
TR_PATH = %TR_ROOT%;%TR_LIB%;%TR_BIN%;%TR_INC%

Make a CMake Version Script

We will have a version utility that should be used to generate versions automatically.

While we dont have a build server, CMAKE should make sure that this utility is executed on each successful build of a solution, in Linux and Windows.

Visual Property Editor

Create a visual property editor for in-simulation use, similar to the limit theory system.

TR Scene Graph

Recreate a similar to D3D scene graph nodes and tree setup in TR

OpenSceneGraph should be wrapped in a trSG library, and from that scene graph classes should be created in trCore

Flat World Terrain System

Simulation should include the ability to use flat world projections system with a hull down effect.

Sound/Audio System

Create an audio/sound system for the simulation. Will use OpenAL and allow for surround sound.

Localized Fog Effects

Should be able to handle localized fog effects as well as "exponential" fog effects using pre-volumetric (noise generated density) or volumetric based models.

Shader Manager

Create a shader manager for the simulation. Shader manager should handle geometry, tessellation, pixel, vertex, and fragment. We should also support multi-texture ability in the shaders.

Networking System

Networking system that could handle AMQP, XMPP, HLA, native, DIS, zeroMQ and potentially other protocols.

Skeletal Animation

Create ability to have GPU skinned skeletal animation. Could use cal3d, or other open-source animation library.

Centralized Computing Capability

Create a system for the simulation to handle a majority of computations on a single machine and use other machines to render the scenes.

Volumetric Rendering

Create system that can render three dimensional objects using volumetric techniques, i.e. voxels.

Model Viewer

Create model viewer to perform spot testing on models. Should include the ability to add plugins, i.e. libraries, from our system into the model viewer.

Dead Reckoning Algorithm for networked entities.

CMake System

General CMake setup and project structure maintenance. Compilation should work on both Linux and Windows. Has not been tested or designed for other operating systems.

Update Wiki

Need to update the Wiki with a Setup section and a contribution section.
Wiki needs to include a Coding Style guide.

Plugin System

Ability to load libraries on the fly, using a configuration file or similar system.

Networked Splash Screen

Adds functionality to the splash screen to monitor progress of other network clients from any client.

Multithreaded Resource Loading

Simulation engine should use osgDB to load the models into scenes. This will reduce load hiccups and smooth rendering when loading new models.

Physics System

Create a physics system to handle all the physics calculations in the simulation. Will likely use bullet, PhysX, FleX, and other physics systems, plus handle calculations on both the CPU and off-loading onto GPU architecture.

Main physics Actor Module should use GPU enabled Bullet with additional Actor Modules for PhysX and FleX.

Lighting Effects System

Shader Editor

Create a shader editor that utilizes the visual scripter system.

Splash Screen/Progress Bar

Create a splash screen that will indicate the progress of loading a map. Screen should be modular to include future enhancements.

Import VR-Sim

Import the VR-Sim project and restructure it into the new True Reality engine base.

VR-Sim is an engine @DieSlower built many years ago. Some modules of it were built for Stevens Institute of Technology and are partially owned by it.
The core VR-Sim engine is developed and owned by DieSlower and with his permission is going to be converted into an LGPL project and continue its development under a new name.

Parallel/Threaded Tasking

Create a thread pool manager to easily let TR use multiple cores to the max of the machine's ability. Delta3D already has thread pool manager which could be used as an example.

Create base motion model

Create a basic motion model for moving the player in the map. Will control the translation and rotation of the player.

Visual Script Editor

Create a visual script editor like Unreals Kismet to program visually. Will be used for the shader editor and AI system.

Planetary-sized Terrain

Make the terrain system able to create and use planetary-sized terrains.
The system should have an ability to display a geocentric terrain system with gravity type clamping effects.
Should be an actor.

Ocean System with Wakes

Simulation should have an ocean system that also includes wakes from models on the ocean.
-Transparent Ocean
-Lee Wakes

Logger System

TR needs a logging system for Log file creation, console output and exception catching. Similar to what D3D has.

Improve Repo ignore files

Update the .hgignore or .gitignore file to ignore certain files when checking the repository.

Issue has been opened for a while and will continue to be used for reference when committing updates related to the ignore file.

Create a version Info file, and Utilities to read it in.

Version Info file should be stored in the Data folder,
Utilities should be internal functions that can read the file, and a program trVersion that will print the version of the TR and any additional info that the user might want to see.

The format of the version number should be:

Maj.Min.YYMM.Commit# or Maj.Min.YYMM.Build# or

YY = Year MM = Month

Additional information could include the webpage where to get TR, and Author list.

Atlas Texture Editor

Create a tool that will take one or more models and unify their textures into a texture atlas. This atlas could have not only the diffuse texture, but bump, normal, specular maps and others in the same file.

Imposters

Simulation should use imposters when models are significantly far away from our cameras.
We need to have an Imposter node

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.