Upvoid Engine is a game engine for open world games with destructible and procedually created terrain.
Here is a list of all planned features and the current state of development.
Today's CPUs have multiple cores, and the engine is designed to make optimal use of them all. Physics, Input, Scripts, Rendering, World generation and other tasks all run in seperate threads and are coordinated by our custom scheduler. This keeps the game responsive even at heavy CPU load.
The engine is fully integrated into Windows.
The engine runs on all major Linux flavors.
Mac Support Planned
Mac support is not yet implemented, but planned.
Headless Mode for dedicated Servers Work in progress
The engine can start in a headless mode, requiring no graphics card and not performing any rendering. This allows hosting on dedicated servers without any modifications to your game.
All important engine features are accessible via a simple scripting API.
The engine is designed to make modding as simple as possible. You can easily write mods or new games based on other games. Mods can be loaded at runtime, without requiring an engine restart.
Games and mods are organized into modules. A module can contain a game, mod, debug interface or anything providing resources or logic for your game. You can build on and modify existing modules to make development and modding extra easy. For example, you could write a module that introduces a new item into an existing game, or a module that contains a set of trees that can be used by other game developers.
When editing a texture, mesh, shader or any other resource, it is automatically reloaded by the engine. Just save the file, and your changes will be in the running game. No restarting required.
The scripting system is CLI-based, which means that you can use any programming language with an existing CLI backend. That includes: C# Python Lua Boo C++ Java * And many others...
Builtin Diagnostics and Debugging Tools Work in progress
Don't take hours to find stupid bugs with console output. The engine gives you a fully-featured debugger and various logging and diagnostics tools to find problems or help you identifying bottlenecks.
Native Code Plugins Planned
There will be a C-API to allow writing of native plugins in case the CLI code is not fast enough for you.
Worlds can be infinitely big and generated on-the-fly. The engine creates the world according to your rules as the player walks around.
The engine supports smooth destructible voxel terrain. Think of it as Minecraft without blocks. You can use it to give the player the ability to dig or construct stuff, or use it for yourself to rapidly create levels for your game.
You can define terrain shapes and use them to cut from or add to existing terrain.
The engine supports an arbitrary number of parallel worlds running in one game. No need to create hidden areas in your level.
The engine uses the Bullet physics system, enabling fully-featured physics interaction.
DNA-Based Creature Generation Planned
The engine will provide a DNA system to create plants, monsters, characters and other creatures in a procedural manner.
Procedural Generation of Cities Planned
The engine will provide a system to procedurally create cities, dungeons or other non-organic structures.
Procedural Story Generation Planned
The engine will provide a system to procedurally create a consistent and interesting story.
Entities can easily interact with each other trough the builtin trigger system. For example, an axe can send a "hit" trigger to any entity it hits, without needing to know how the hit entity should react to it. This makes modding and maintaining your game easy, because it removes dependencies in your game logic.
Dynamic Fluids Planned
The engine will support fluids on a large scale, enabling water, lava, seas or rivers.
Procedural Terrain Generation
To define the shape of your world, you can provide a density function that determines what parts are earth and which are air.
Design your terrain in a node-based editor.
Design your terrain by providing a network of mathematical expressions defining the density function.
Evaluating the density function works rapidly fast thanks to our own JIT compiler.
Instead of numerically computing the normals of the terrain shape, the engine can analytically derive the density function, leading to more precise normals and faster computation.
For a given region of the world, the engine can predict if it only contains air or earth, improving the terrain generation by orders of magnitudes.
High-Level World Generation Planned
The engine will provide a system to procedurally generate the world on a high level to create features like eroded mountains, valleys, cliffs, rivers and other things that can't be created easily using noise functions.
Tectonic Simulations Planned
The engine will provide a tectonic simulation for the high-level world generation to create a more realistic landscape on a continent-scale.
The engine can render snapshots of the world while physics or game logic is still changing it, all in separate threads. The rendering system is customizable enough to visualize anything you can think of.
Postprocesses can be switched on or off at runtime, and the shader pipeline is optimized automatically to improve rendering performance and reduce memory consumption.
The voxel terrain can have both, smooth and sharp features, making virtually any shape possible.
Rendering is not restricted to a single camera and monitor. You can set up as many cameras as you like, and let them all render to different viewports or textures.
The material system allows quick creation of a wide range of materials. Arbitrary amount of texture layers, normalmapping and tesselation are supported.
Write your own shaders for postprocesses or materials using our improved, GLSL-compatible shading language.
Continuous Level of Detail Work in progress
Stereoscopic Rendering (e.g. Oculus Rift) Work in progress
Dynamic Soft Shadows Work in progress
Realtime Sun and Weather Effects Work in progress
Lag-Minimizing Networking System Work in progress
Synchronization of Terrain Changes Work in progress
Physics-Synchronization Work in progress
Distributed Game Logic Planned
Minimized Input Lag Planned
Ingame 3D GUI elements Planned
Dynamic, Environment-Aware Sound Engine Work in progress
Native Support for VR Devices (e.g. Oculus Rift) Work in progress