Using\Choosing a Game Engine for a non-game application

4954fd0e1991caa3c8457ff1f5cb454c
0
Rob95 101 Feb 05, 2013 at 14:50

Hello,

We are currently developing a Windows (and eventually MacOS) application and are considering using a gaming engine or graphics rendering engine to display the app’s content. We will be focusing on charts, fonts, text, etc. What we end up with will hopefully look similar to ComponentArt . We were originally planning to use ComponentArt itself but ran into some limitations.

Searching for rendering engines led us to the gaming dev world and this website. We’ve seen such products as Ogre and Unity which look like they may fit the bill, but we are concerned with warning of slow font rendering in the Ogre documentation and the seemingly strict Game Development focus of Unity.

My question is, is this a “done thing”? Can these engines be repurposed for non-game apps, and if so, does anyone have any recommedations considering the following?

  • Needs to have very good, very fast text rendering from TTF and OTF fonts
  • Needs to be as cross-platform as possible, at least WIndows and Mac and hopefully iOS as well
  • Are there any that cater for, or can be adapted to desktop app development languages such as C# and .Net
  • Open source or proprietary - We have no real preference, but are there any considerations other than cost?

Thank you all for taking the time to read this and thanks so much for any advice you can give us.

Rob

6 Replies

Please log in or register to post a reply.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Feb 05, 2013 at 16:30

It’s not clear to me that a 3D game engine is the best choice for you, as opposed to using something like Cairo, which is focused specifically on 2D vector graphics. In particular, the high-quality text rendering is something more suited to a 2D vector graphics library than a game engine - most game engines have enough support to print some menus and HUDs and suchlike, but often not supporting things like kerning pairs, characters outside the low ASCII set, justification and suchlike.

4954fd0e1991caa3c8457ff1f5cb454c
0
Rob95 101 Feb 05, 2013 at 17:39

@Reedbeta

It’s not clear to me that a 3D game engine is the best choice for you, as opposed to using something like Cairo, which is focused specifically on 2D vector graphics. In particular, the high-quality text rendering is something more suited to a 2D vector graphics library than a game engine - most game engines have enough support to print some menus and HUDs and suchlike, but often not supporting things like kerning pairs, characters outside the low ASCII set, justification and suchlike.

Thank you for the suggestion. We will eventually want to do 3D charts like Component Art, and also tinting and shading effects as seen in Microsoft Office 2D and 3D charts. Interesing abou the text support, thanks. I wonder if we may be able to add better text features to an open source engine.

A638aa42130293f319eda7fa4ba121f4
0
fireside 141 Feb 05, 2013 at 18:44

Unity uses C# or Javascript. I think the 2d text is fairly fast, but probably would have the limitations Reedbeta mentioned. Games vary so much that an engine has to be pretty versatile. It’s just that you would have to write all the graph code, whereas something more specialized would have that automatically set up, and the engine would probably be a little heavier than necessary, although it makes apps for phones and things, so it probably wouldn’t be that bad.

A8433b04cb41dd57113740b779f61acb
0
Reedbeta 167 Feb 05, 2013 at 19:42

@Rob95

We will eventually want to do 3D charts like Component Art, and also tinting and shading effects as seen in Microsoft Office 2D and 3D charts.

I’m not familiar with the specific effects you mention, but you can often get a lot of mileage out of doing pseudo-3D effects in a 2D environment, using gradients and suchlike. It depends on your needs. If you need perspective projection, accurate shadow casting and suchlike then a 3D engine would likely be easier to work with.

Another possibility is a hybrid approach - you could render text with a high-quality 2D font renderer and use the resulting image as a texture for the 3D engine.

6837d514b487de395be51432d9cdd078
0
TheNut 179 Feb 06, 2013 at 00:29

I would recommend WPF as this would be perfect for you. It’s a vector graphics engine for .NET that can do text rendering and charts very easily. There’s even a free toolkit out there with a bunch of free chart samples (pies, bars, 3d bars, etc.). It’s a fairly easy API to learn and create user interfaces with it. You can add 3D stuff if you want, but for some visual effects you can use pixel shaders on your controls. For example, WPF comes with drop shadow and blur pixel shaders out of the box. This can help you create a 3D look and feel. Being a Microsoft product, it’s not very portable. Silverlight is a lightweight version that does work on Mac, but that’s something you have to weigh in on. No iOS support.

An alternative would be HTML5. Have a look at RGraph. I often use it when I need to make some quick charts for presentations and stuff. With a bit of know-how you could write your own set of graphics to accomplish what you want and HTML is highly portable. With this you get vector graphics quality and you can run the app on a plethora of platforms easily.

I would not consider using a 3D engine for what you want on a number of reasons. 2D renderers are efficient because they use what is called “dirty rendering”. That is, only changes that need to be made on the screen are made. 3D engines operate on the principle of rendering everything to the screen every frame. Rendering font can pose a performance problem because each glyph is re-rendered every time. Some frameworks use a render-to-texture approach to avoid this problem (like taking a screenshot and showing that screenshot instead), however it can create quality issues when things need to scale. Another serious problem is that game engine UIs are quite lacking. They’re not fully featured like on dedicated frameworks such as WPF and to a lesser degree HTML. CEGUI is probably the closest, but it still requires a bit of work to get somewhere with it.

4954fd0e1991caa3c8457ff1f5cb454c
0
Rob95 101 Feb 13, 2013 at 22:08

Just wanted to say thanks to TheNut and all that weighed in. Looks like WPF is the best option for us, well leave the game engines to you fine folks. Best of luck to everyone.