Sign in to follow this  
Simon_Roth

Graphics engines and middleware.

Recommended Posts

Simon_Roth    149
Hi

I'm currently studying the state of graphics engines and middleware to decide on the direction for a major indie title I will be working on. The current engine of the studio is a well known, stable, commercial engine, but has been left behind in the DirectX 8-9 era and would need to be significantly rewritten to hit the requirements of our new project. We are looking at things like many dynamic moving light sources (so probably differed lighting), soft shadowed point lights, large amounts of reflections and a heavy emphasis on costly post effects such as motion vector driven blur.

Currently I am thinking of just writing my own renderer from scratch. This doesn't phase me, and due to the very specific brief of the project, I can literally build what I need.

That said, it would be foolish not to consider every other option. What rendering engines do people recommend?

I've looked at Ogre and it seems promising, however I havnt seen it proven commercially. I'd worry that integration would also be a pain in the ass, since we'd need to mash it in with the current engine.

Any pointers would be great. I'm considering anything from small open source solutions (preferably MIT license or similar since releasing source can raise problems) to larger commercial systems, such as Englighten(standalone). Platforms are PC, Ipad and perhaps consoles depending on platform holder whims.

Cheers

-Simon

Share this post


Link to post
Share on other sites
PolyVox    712
I would also be interested in knowing about any lightweight open-source graphics engines. I'm not so interested in full game engines as there are lots of those, and I'd rather handle integration myself. Some ones that I've found include:

[url="http://www.horde3d.org/"]Horde3D[/url]
[url="http://www.visualizationlibrary.org/"]Visualization Library[/url] (Ignore 'visualisation' in the name - it actually appears quite [url="http://www.visualizationlibrary.org/documentation/pag_key_features.html"]low level[/url])
[url="http://www.linderdaum.com"]Linderdaum[/url] (more restrictive license)

Share this post


Link to post
Share on other sites
Simon_Roth    149
[quote name='PolyVox' timestamp='1320794678' post='4881918']
I would also be interested in knowing about any lightweight open-source graphics engines. I'm not so interested in full game engines as there are lots of those, and I'd rather handle integration myself. Some ones that I've found include:

[url="http://www.horde3d.org/"]Horde3D[/url]
[url="http://www.visualizationlibrary.org/"]Visualization Library[/url] (Ignore 'visualisation' in the name - it actually appears quite [url="http://www.visualizationlibrary.org/documentation/pag_key_features.html"]low level[/url])
[url="http://www.linderdaum.com"]Linderdaum[/url] (more restrictive license)
[/quote]

Cool those are useful thanks.

I've found out today that Torchlight is using Ogre and Hand circus used it on their indie titles. Whilst they are hardly huge developers, its useful to see it in production and working well.

Heres what I've jotted down this evening on the pros and cons of Ogre I've seen at a quick glance.

[quote]
[color=#000000][font=Arial][size=2]Ogre:[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]Positives features[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]Multiplatform abstraction. The code base would be platform agnostic, and allow DirectX and OpenGl builds. This will be of specific help for more difficult platforms such as the Ipad.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The code base is mature.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The source is free and documented.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The licensing is an MIT license, which is flexible and does not require source code redistribution.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]There are some third party tools that integrate with the engine, to allow asset loading etc. These could replace the need for using <redacted engine> formats and remove the need for conversion in engine. These tools are unofficial however so may not be entirely useful.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]Negative features[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]By specification, features must be implemented on both DirectX and OpenGl, this leads to a situation where specific technologies fail to overlap and gaps are left in the API.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The multiplatform abstraction is large and consists of two major classes. These are almost impenetrable so would leave us in a difficult position were we to need lower level functionality or hacks for the Ipad. It also create a lot of redundant function calls, eating CPU cycles unnecessarily changing state.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The animation system is robust, however does not include physics based animation. This would lead to issues of integration when a 3rd party solution is found, potentially requiring much work.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]The scene management would be largely obsolete as the game and <redacted engine> will provide that and is matured in the in-house development pipeline.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]As a personal observation and its maintainers. Few of the developers involved work in rendering technology in the games industry. This means that the engine may make assumptions on its use that are incorrect in real time development. Eg proper object abstraction vs performance.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]If we modify the engine we may have to spend time committing our code back to the main project or risk creating a fork that is incompatible with the trunk patches and updates.[/size][/font][/color]
[color=#000000][font=Arial][size=2][/size][/font][/color]
[color=#000000][font=Arial][size=2]Although many small independent projects have been released using the engine, few AAA quality projects have employed it. Torchlight is one such game. The graphical style does not use dynamic lighting and is heavily dependant on high quality art assets. Indeed early developer posts indicated that a fix function pipeline was used. [/size][/font][/color]
[/quote]

Share this post


Link to post
Share on other sites
L. Spiro    25615
I would roll my own.
And this is not just due to my biased desire to write game engines, but because you said yourself that it is possible to do exactly what you want on your own, and that eliminates the risks, hassles, and limitations of other renderers.
Plus the fact that you mentioned iPad. It isn't like you are going to be writing a Frostbite 2 renderer.

This is something small enough to manage in-house and directly meet your needs, and furthermore give you a foundation on which you can improve as you see fit in the future.


L. Spiro

Share this post


Link to post
Share on other sites
[quote name='YogurtEmperor' timestamp='1320886887' post='4882346']
I would roll my own.
And this is not just due to my biased desire to write game engines, but because you said yourself that it is possible to do exactly what you want on your own, and that eliminates the risks, hassles, and limitations of other renderers.
Plus the fact that you mentioned iPad. It isn't like you are going to be writing a Frostbite 2 renderer.

This is something small enough to manage in-house and directly meet your needs, and furthermore give you a foundation on which you can improve as you see fit in the future.


L. Spiro
[/quote]

I agree. I'd rather code from scratch rather than use so much middleware help. As difficult as it sounds, it's more convenient for you.

Share this post


Link to post
Share on other sites
AgentC    2352
At least in the field of permissively licensed open source, graphics-only engines, and particularly if it would need to support advanced features like you listed, I honestly am not aware of anything good or flexible enough to recommend.

Ogre3D, in my opinion, would need a major cleanup for its legacy of fixed-function support, outdated shadow techniques, and plain inefficiency when it comes to issuing rendering API commands (debug an Ogre scene with PIX and you'll see). Getting it to render deferred does not come naturally. Plus it really, really likes to throw exceptions for easy problems (like querying for a nonexistent bone or animation) while for anything more devious, such as trying to parent nodes cyclically, or losing track if you already attached/detached an object from a scene node, it will crash.

I admit, doing those kinds of things are severe API usage errors, but when for example exposing Ogre to script, catching them in the engine code itself would be preferable than having to catch them in a script wrapper to prevent a script from crashing the whole program.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this