From delta3d Wiki
Jump to: navigation, search

Road Map

High-level items the Delta3D Development Team is planning to implement

Make more things actors

GameActors, GMComponents, and ActorComponents are all Actors (BaseActorObject). Actor components can be added to actors directly in the editor on the trunk (post 2.8).

Drawable, Messages, and Shaders will all be actors later. This will eventually make GameEvents obsolete since messages will simply be able to created an set on properties.

Code-less application startup

With the all the components of a system in a map from the GMComponents to the message definitions, a main or game entry point is not needed. The idea will be to run a map. This will also allow you to start your application from STAGE.

2.8 has a plugin to run a game entry point directly from the editor. Soon it will be possible to start it without writing one in c++. A startup map is all that will be required.

Replacing the Scene with dtRender

The dtCore Scene is really just wrapper of a root node. The new scene mechanics allow one to describe the scene based on how it will render. This is what dtRender provides.

OSG PPU as a core part of the rendering pipeline

OSG PPU is used as part of dtRender that replaces the scene implementation. You can simply add actors to the map to configure the scene. It adds HDR, shadows, better water rendering, and depth pass for other effects. See the testApp in delta3d. The "magic" happens in a map it loads at startup. No code is required to enable it, but everything needs a shader.

Replace the shader system

Shaders need to be composited, plus writing them needs to be simpler and more tool driven.

Graphical/dtDirector coding plans

Create and define the message handlers on Actors and GMComponents, clean up the scripting to be more actor centric, make the properties on an actor the sources of data, among other things.

Rework dtCore Drawables

There are many DeltaDrawables in dtCore and many simple actors in dtActors with overlap. Drawables will themselves become actors, that is, extend BaseActorObject and have properties. Potentially they can then have actor components. The GetDrawable() on BaseActorObject will eventually be removed, but initially will simply return the same BaseActorObject. It can already return NULL in some cases.

Remove ODE from dtCore

This has already been done. The triggers haven't been ported to dtPhysics yet, and it would be nice to move the old collision motion model into the pal ode plugin. Triggers, however, can be implemented by turning off collision response on a body and turn on notify collisions. There will be a collision event for each item in the volume each frame.

Unify the Messaging System

The dtCore::Base message system will be removed in favor of the GM messages. Using signals and slots directly for communications among closely related actors, if it can be connected in the toolset, is under consideration.

Isolate Dependency on Xerces XML

There are many places in Delta3D where xml files are parsed and written, typically using Xerces API directly. Isolate the direct usage of Xerces by many files by creating a wrapper/interface to the xml parsing. This will make it easier for future XML parsing changes. This is not a high priority, though.