- 1 Road Map
- 1.1 Make more things actors
- 1.2 Code-less application startup
- 1.3 Replacing the Scene with dtRender
- 1.4 OSG PPU as a core part of the rendering pipeline
- 1.5 Replace the shader system
- 1.6 Graphical/dtDirector coding plans
- 1.7 Rework dtCore Drawables
- 1.8 Remove ODE from dtCore
- 1.9 Unify the Messaging System
- 1.10 Isolate Dependency on Xerces XML
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.