Version 3.0 Under Development

Jul 18, 2011 at 3:47 PM
Edited Jul 18, 2011 at 4:09 PM

Given the numerous underlying issues with external dependencies in Icarus 2.0, performance issues with the scene graph etc.. considerable cross platform issues with Windows.Forms etc.., version 2.0 will be put into maintenance mode, while the bulk of development effort will move to Icarus Scene Engine 3.0 (ISE 3.0). ISE 3.0 will also move from SVN into GIT.

ISE 3.0 will not be code-backwards compatible with 2.0, and the old IPX format will be replaced with a leaner format. However, once the ISE 3.0 code is completed, Icarus Professional 2.0 will be used in the interim to provide code generation and conversion services for ISE 3.0, until the new Icarus Design Studio replaces the old Icarus Professional.

ISE 3.0 will be first released as a developer API, and conversion options will be made available. Designer applications will be made available at a later date.

Version 2.0, in Alpha release, will remain as-is on SVN, and any requested bugs in it will be maintained. All future work will move into GIT for Icarus 3.0, which is vastly more developer-friendly than Icarus 2.0 was, more object oriented, structured to be more compatible with OpenGL 3.0 & 4.0 XNA and OpenGL|ES, more de-centralised in its design, and easier to integrate with your existing code structures, a proper set of worked examples, complete XML documentation.

Some examples of things that will be different:

  • Entire Scene Graphs can be built easily and quickly in code now, classes represent the old Projects, no more external APIs in C required for runtime use.
  • Removal of the single integrated hierarchy, and introduction of function specific hierarchy. Rendering, Simulation, Layering, Rendering Passes, Physics etc.. are all separated out.
  • Reduction of complexity on objects. No need for Enabled or Visible on all objects except where applicable.
  • Groups, replacing the older Composites, make it easy to create classes of custom shapes.
  • Common texture and asset reference library. Proper instancing of existing assets will occur.
  • Design-time will still need to fall back on external APIs, but strictly for importing only.
  • Code will be cross-platform and cross API compatible. Write scene code in C# on Windows, redeploy to Linux, MacOSX, iPhone, Droid and XNA without changing the rendering or application logic, only the UI needs tweaked to cope with the device interfaces.
  • Common input mechanisms reduce the impact of changing platforms as well.
  • Central rendering system for arbitrary geometry for all objects ensures that all elements render successfully on all platforms, while also maximizing performance of the available graphics cards.
  • Faster Scene object finding and mouse/pointer line detection.
  • Depth and Material-sorted rendering by default. Potentially Visible logic will also be built-in.
  • Strong hierarchical matrix management. Removal of the old OpenGL one-matrix approach. Icarus will still be compatible with OpenGL 2.0, but matrices are managed internally now and only posted to OpenGL 2.0 when needed. Scenes split into layers to facilltate automatic matrix conversions and to facilitate easy coordinate conversions across multiple layers.
  • Adaptable material layers can be set to adjust the visual fidelity of the materials to match the scene requirements.
  • Adaptive lighting makes the most optimal use of lighting available. Lights can also be prioritised, should the number of lights requested not be available/possible on the device.
  • Per-pixel lighting will automatically kick in should the capability be available, however all Scenes remain backwards-viewable in OpenGL 2.0, so older windows users can still run the application.

More information to come when it's ready in September. For an early access preview, the GIT repository on contains the development branch of Icarus Scene Engine 3.0.

Any requests for features should be made to, prefferably before August 31st 2011.