Novaleaf Technical Diary
incremental redesign of Novaleaf Engine

we are about 2/3 through our post e3 “fix up” month, and thought i’d share a tiny bit on what we are doing:

What was wrong with our E3 demo:

The e3 demo was pretty, but had some technical issues:

  1. world objects were atomic only:
    this means buildings were a single, opaque object.  not because we only support atomic objects, but I didn’t want to spend time finishing the implemenation of composite objects until we were sure about the entire workflow, which leads to: 
  2. the game object system was not extensible:
    our “Element” system (atomic and composite) was high performance, but extending it was not easy: a single manager class that needed to be extended as a monolithic singleton.   not good for supporting various game object categories.
  3. the visualization system was a nightmare:
    well not a nightmare really,  the system worked, but was overly complex architecture, plus difficult to extend.  We have a deferred rendering pipeline, and the rendering system was designed with only that in mind.   So extending rendering for use with particles, etc was difficult. 
  4. rendering suffered performance issues:
    CPU stalls waiting for the GPU,  plus mysterious cpu spikes of up to 30ms shows significant risk in the current rendering architecture
  5. misc system design issues:
    the particle system and physics system were fairly poorly designed (lacked required features) and need some architecture changes 

Tomorrow, I’ll start talking about the steps we are taking to resolve these issues.

-JasonS

blog comments powered by Disqus