Totally Unofficial Gamebryo Roadmap

Did I catch you with my provocative title? There’s good news and bad. The bad news is that this truly isn’t official. It’s just my ideas that I’m presenting to folks internally. It’s also less of a roadmap and more of a cluster of features. The good news is that I’m working very hard on this right now. If you’re a Gamebryo LightSpeed licensee interested in where I think our rendering should go, this is an indication just not the official indication. Regardless, here’s the big picture as snapped from my whiteboard a few weeks back.

Rendering Enhancments Matrix

Rendering Enhancments Matrix

The black circles, excluding the LOD circle on the right, represent seven major areas that I’m hoping to rework in the Gamebryo renderers. Note that while I refer to renderers here, the work will really encompass other bits like scene graph management, animation system, etc. Those areas are:

  • Spatial Management Systems – Support for improved bounding volume hierarchies separate from the scene graph and support for spatial partitioning systems.
  • Parallel Resource Creation – Creation of resources from the non-rendering thread with minimal time on the main, rendering thread. Some of our renderers have this now, but there are areas that need improvement.
  • Occlusion Culling – An integrated occlusion culling system that combines a portalling system with our new tool plus software and hardware occlusion queries.
  • Property System Rework – Rework the Gamebryo property system to support a more modern set of render states and to store that data in a much more friendly manner for performance and parallelization.
  • Effect System Rework – Rework the Gamebryo dynamic effect system to add more effects and remove the need for some of the manual management required by the current system.
  • Parallel Rendering – Simple in premise and complicated in process. We need to get support for submitting draw calls from multiple threads and SPUs.
  • Pretty Pixels – It all adds up to pretty pixels. It’s actually labeled “Improved Rendering Techniques” in my docs, but it’s about getting the latest and greatest rendering techniques running out of the box for clients.

Obviously, that’s a lot of work. Those small numbers are estimates in man-months of effort. Right now, I’m working on breaking up those tasks into a resource plan. It’s pretty exciting because it’s a chance to rework some portions of the codebase that have been in place since I joined the company eight years ago. In addition to that, these features will help enable other important features like streaming content which you can see in the green circle in the middle. The hard part is that those red and blue arrows represent dependencies. Breaking these things down and delivering to market is going to be a challenge. It’s one that I hope to talk about in coming posts.

For now, I’ll leave it at the feature matrix above.

Someone changed Pretty Pixels on my board to Beautiful Pixels after I took this picture. Hrm… dba


7 Responses to “Totally Unofficial Gamebryo Roadmap”

  1. For the parallel rendering part, have a look at the Equalizer parallel rendering framework (

    Equalizer is the standard middleware to create parallel OpenGL-based applications. It enables applications to benefit from multiple graphics cards, processors and computers to scale rendering performance, visual quality and display size.

    • whatmakesyouthinkimnot Says:

      Thanks for the suggestion. I haven’t looked at Equalizer since our PC rendering is DX-based, but it might be a good reference.


      • We want to make Equalizer more flexible, not only wrt DX, but also for other things like CUDA.

        We’ld love to do this, but we need financing or somebody to contribute a patch.

  2. Nice post. Will something like this make it out in incremental steps or would it have to be an all or nothing deal? If there could be steps would the initial step show performance increases or just be framework changes?

    • whatmakesyouthinkimnot Says:

      That’s what I’m working on now, breaking it down to present to management. It will be incremental, and each step will have usable features. The proposed first step is shaping up to have new spatial management systems which should accelerate rendering and picking plus some amount of occlusion culling.


  3. Hey Dan,

    VERY interested in what you’re thinking with your rendering stuff, whilst your post appears mostly about the processing behind the render frame, we’ve got a number of suggestions to make about the shader system itself if you’re open to them.

    • whatmakesyouthinkimnot Says:

      No time like the present. Feel free to post things here, hit me up on Pulse, or email directly. Input is always appreciated.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: