Upvoid Engine

Upvoid Engine is a game engine for open world games with destructible and procedually created terrain.

Features

Here is a list of all planned features and the current state of development.

Core

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.

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.

Development

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...

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

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.

The engine will provide a DNA system to create plants, monsters, characters and other creatures in a procedural manner.

The engine will provide a system to procedurally create cities, dungeons or other non-organic structures.

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.

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.

The engine will provide a tectonic simulation for the high-level world generation to create a more realistic landscape on a continent-scale.

Rendering

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.

Panel content

  Continuous Level of Detail Work in progress

Panel content

Panel content

Panel content

  Dynamic Soft Shadows Work in progress

Panel content

  Realtime Sun and Weather Effects Work in progress

Panel content

  Portals Planned

Panel content

Multiplayer

Panel content

  Lag-Minimizing Networking System Work in progress

Panel content

Panel content

  Physics-Synchronization Work in progress

Panel content

Panel content

Panel content

Other

  Minimized Input Lag Planned

Panel content

Panel content

Panel content

Panel content

Please be aware that all features marked as "planned" show our current plan for the engine. However, plans can change; features may be dropped.