File | Date | Author | Commit |
---|---|---|---|
Docs | 2020-11-07 |
![]() |
[0d7949] update |
Media | 2020-11-05 |
![]() |
[d97e0f] added media |
Project | 2020-11-09 |
![]() |
[3422b9] scripting progress |
.gitignore | 2020-08-13 |
![]() |
[a5d571] Initial commit |
CODE_OF_CONDUCT.md | 2020-11-04 |
![]() |
[2fa4b5] Create CODE_OF_CONDUCT.md |
LICENSE | 2020-11-04 |
![]() |
[e74e7d] Create LICENSE |
README.md | 2020-11-05 |
![]() |
[3d27eb] Update README.md |
Vivid Engine 2. Rewrote from the ground up.
Vivid Engine is a 3D engine, and several tools to facilitate the creation of apps and games for Windows and soon XBox One+.
You can support development of Vivid3D Via patreon -
https://www.patreon.com/vivid3d
Compiled help is here: https://github.com/pysgames/VividEngine2/blob/master/Docs/Help/Engine%20Documents.chm
There is also an IDE called "Vivid3D IDE" which will allow you to create games visually as well as through code(VividScript).
The engine features the following namespace, all of which are 100% operationable.
In alphabetical order.
Animation (This facilitates the key-framed animation of skeletal meshes)
App (This is the application classes, with which you can construct an app, using the state classes)
Archive (A set of classes to enable compressed archies of multiple resources)
Attribs (A class to allow you to tag properties with a data type)
Audio (A set of classes that allow you to play music and 3D sound effects - this is built using IrrKlang open source lib.)
Bitmap (A set of proxy bitmap classes not tied to any other api. Just pure RGBA data and a easy means to edit them)
Cam ( A virtual 2D camera class for the 2D rendering system, which it's self supports a lot of rendering fx.)
Composition (This is a set of classes that allow the composition of post-processing effects. There are several compositors already complete, which include "Bloom", "Outline" , "Depth of Field", "Blur" and "BloomUI"
Content (A set of classes that encapsulate different types of Engine content.)
Data ( A set of classes that contain engine data, such as meshes, triangles and vertices)
Deferred ( A custom deferred renderer. The end result looks exactly the same, but each additional light source, only adds one quad to render(Which encapsulates the full screen) so this renderer can utilize 100's of lights, rather than tens.
Draw (This features a system called "IntelliDraw" which automatically batches and orginizes lots of 2D draws(Textured or colored quads, with or without custom pixel shaders.) - This allows 1000's of draw calls to render at the speed of dozens.
Effect (This is the pixel/vertex shader FX class, that allows you to bind shaders, and edit their paramaters.)
Env ( A class that renders the scene to a cube-map for environmental effects)
Font ( A custom font class that renders bitmap glyps)
Font2 (The preffered font class. This uses TrueType fonts via SharpFont. It will convert any text into a engine Texture2D that can be drawn like any other image.)
MapForms ( A resonance ui form that renders 2d maps onto the UI)
FrameBuffer (This has Color/Depth CubeMap and MRT render buffers. These allow you to render imagary onto buffers than the screen, vital for post-processing etc.)
Game (A set of classes to co-ordinate the overall game)
Gameplay (As above)
Help ( A class to easily allow writing/saving of engine data.)
ImageProcessing - (A set of classes that make it easy to process imagary in several ways, such as blur or bloom)
Import ( A set of importers that import models/textures into the engine, supported are Assimp(40+ formats) and a custom importer that imports models exported from 3DS max which is achieved with a custom C++ exporter for 3Ds max.)
Input ( A set of classes to read user input, keyboard, mouse and joypad)
Jobs ( A system for threaded jobs)
Map ( A complete tile based map system for 2D games, which can be rotated 360 and scaled in and out, all with just a few parameters. Tiles can also cast ray traced 2D shadows, and be lit per pixel with optional normal maps. Lights are a class that let you light the scene easily.)
Material (the material classes, which contain diffuse/normal/specular/environment maps and their colors)
Maths ( A set of helper methods for 2d/3d maths)
ParticleSystem (A particle emitter/simulator for 2D games. These can be added to the maps and the engine does the rest)
Physx (A wrap around nvidia's physx, which easily allows you to add realistic physics to 3D games)
Pick (Classes that let you raycast lines against your 3D scene.)
PostProcess (This is the old deprecated post processing system, replaced by the Composition classes)
Profiler ( a set of classes that make it easy to profile the execution and rate of custom blocks of code.)
Reflect (A very useful set of classes that let you copy and restore the state of any c# class)
Renderer (A set of renderers for various type of 3D rendering. such as depth, multi-pass or color only)
Resonance UI (A custom UI that is built on top of Intellidraw for very quick rendering. The ui has around 35+ forms already. This allows you to built very advanced in game UI'S and Huds. It can even embed real time videos into the ui, with synced audio/video playback(This it's self uses FFmpeg of VLC fame - The ui has a themes system, with 3 themes already "Dark Grey" "Dark Blue" and "Light Blue"
Scene (A set of 2D and 3D Scene Graphs, that allow you create advanced 2D and 3D games easily.)
Script (Deprecated use of C# for scripting. Replaced by Vvid Script)
VividScript ( A custom language with tokenizers, parsers, compilers and execution stack. This allows you to create games within the ide, without compiling the engine or classes again)
Settings (Set various engine quality features, such as Shadowmap sizes)
Speech (Lets you synthesis speech)
State (A state system, that allows you to build program flow more easily)
Terrain (A 3d terrain system, that can built terrains from 2D height maps)
Texture (A texture class for 2D textures, depth textures and Cube map textures)
Transient (A set of thread helpers)
Util (Some utility classes)
VFX (A system for 3D fx, such as particle systems.)
Video (A set of classes to load/play videos with sync'ed video/audio. The audio is passed through openAL, and the frame to renderer is given to you as a Texture2D class, which can be rendered easily using IntelliDraw)
With the above, you can achieve both 2D and 3D games, with advanced rendering techniques with minimal fuss and set up required. All pixel shaders are already coded and a part of the engine. And of course, you can easily extend and add your own fx and features.