joystickPlatform

Auto-detect Graphics Settings

Planned
We have Low/Med/High graphics settings but default to High, we should automatically select one based on the user's hardware.

Controller UI

Planned
Make it easier to make UIs that can be used with controller.

Linux Native Client

Planned
It's our intention for s&box to be cross-platform, a native Linux client is a good start.

Linux Dedicated Server

Complete
Nobody wants to run servers on Windows. The engine builds for Linux, there are some runtime bugs to resolve still.
buildEditor

Project Templates

In Progress
Provide a set of starter project templates - FPS, third person, sandbox, blank - so creators can hit the ground running with a working foundation instead of starting from scratch every time. 

Mapping IO Components

In Progress
We don't have an easy way to add buttons or doors to maps...

Material Editor 2.0

On Hold
We want to remove the native material editor, simplify it all and put it in the inspector.

Avalonia UI

Planned
We want to replace Qt with Avalonia UI for the editor UI, a native C# solution that should be easier to work with and faster.

Mapping Mesh Merging

Planned
A small unnoticable compile step for scene map meshes that merges them together into one.

glTF Support

Planned
Support importing glTF models into the editor.

Auto LODs

Complete
Automatically generate levels of detail for meshes on import, so creators don't have to manually author LOD chains. The system should produce good quality reduced meshes with minimal effort. 

Standalone License

Complete
Allow developers to publish games directly to Steam.
auto_awesomeRendering

Skinned Instancing

In Progress
Skinned meshes currently can't be instanced, meaning every animated character is a separate draw call. We want to support GPU skinning with instancing so crowds and large numbers of animated entities are significantly cheaper to render. 

Slang

Planned
Replace our current shader compiler DXC with Slang, a modern shader language with features like interfaces, generics, and modules. This gives us a more expressive and maintainable shader codebase with better tooling support. 

Shadow Cache

Planned
Decrease the cost of rendering shadows by caching the static geometry and only rendering dynamic geometry over it.

Static Meshlet Rendering

Planned
We can break static meshes into meshlets / fragments and render them very efficiently, combining draw calls into indirect multi draw calls as well as using GPU occlusion culling. A static map or level can be entirely composed of these for huge benefit.

GPU Resource Viewer

Planned
We don't have a good way of inspecting all resources currently resident on the GPU. We want to be able to quickly glance and filter down what our GPU memory is being used for.

Terrain: Smaller Geometry Clipmaps

Planned
Terrain is currently rendered with one big geometry clipmap mesh. We want to split it up into a level of instanced clipmaps for a simple level of CPU culling, reducing GPU overhead especially in auxiliary views.

Auto DDGI

Planned
Instead of having to place volumes and configure them, we should be able to voxelize the entire scene (within reason) to figure out where to place probes.

Bindless Material Pipeline

Planned
Material changes are expensive to our frame time, we can avoid rebinding textures between materials, which in turn lets us instance more stuff together.

VR Multiview

Planned
Reintroduce multiview instancing for VR rendering, but using VK_KHR_multiview to make it transparent to the rendering pipeline.

UI Batching

Complete
We want to batch render as many UI elements together as possible, significantly reducing our draw call overhead and improving frame times in UI heavy scenes.

Ambient Occlusion Optimizations

Complete
Our SSAO post processing is very expensive right now and scales poorly with larger screen resolutions.

SSR Optimizations

Complete
Our SSR solution is still too expensive.
emoji_emotions2D

Tileset Resource

Planned
A resource that goes hand-in-hand with Sprite, allowing you to define Tiles from a Tileset image so they can be painted into a scene. You will also be able to apply metadata like tags to tiles for things like custom footstep sounds on different materials.

Tileset Painting Tool

Planned
This tool will let you paint Tiles into your scene by creating TilesetRenderers for each layer and giving you options for collision, depth, ect.

Autotiling

Planned
This will let you define the way that certain Tiles connect to one-another so you can paint with an Autotile brush and it will automatically place the correct tiles given the surrounding tiles.

Sprite Attachments

Planned
Similar to Models, this will let you define attachment points on your sprite, adjusting it's position for each frame in an animation. This can be used to attach hats to a Head attachment, or having projectiles fire from a Muzzle attachment.

Animation Loop Points

Planned
For animations that have a lead-in and hold on a pose/loop. Instead of splitting them up and using code to trigger them in time, you can use Loop Points to have a single animation with the lead-in and loop and when that animation is played the lead-in will only be played a single time.

Spritesheet Importer

Complete
An easy way to import a spritesheet and have it split up automatically into animations without the need for individual images that you would need to import one-by-one in each animation manually
animationAnimation

Animgraph 2

In Progress
A better performing animgraph system, where in our current system pose evaluation is expensive and fragile.
boltPhysics