<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:#1F497D;}
span.EmailStyle18
{mso-style-type:personal;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoPlainText">There’s a couple of major reasons OSG isn’t used in games much.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Probably the most important one is that it isn’t a complete game engine. Unreal, Cryengine, Unity (and also the likes of Gamemaker and Marmalade) all have favourable licensing conditions, and they can be used to start knocking out gameplay
straight out of the gate. Potentially a lot of extra work would be needed to add the level of functionality needed for a 3D world action game which is available out of the box from the major engine manufacturers.
<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Secondly, it doesn’t come with game-specific tools, like an editor framework. And perhaps more importantly, core osg focuses on runtime importers rather than an offline asset conditioning pipeline from content creation packages, which
is the favoured method of game asset production.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thirdly, there has been some debate about the notion of using general-purpose scene graphs in game engines at all. Games tend to have controlled numbers of set types of object to render. You would need to set up a graph to reflect that,
but if you’ve got the structure, why not apply your logic and render from that directly? Also, games will tend to use separate physics representations of geometry within a physics simulation that is used for raycasting and collition testing, rather than doing
it with the graphics data, as osg provides. There was a high-profile article I read once entreating game developers to forsake unnecessary scene graphs, but I can’t seem to find it now for a citation.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">And lastly, it is OpenGL-specific, and pluggable low-level rendering is common in major game engines. But in these days of OpenGL-ES ubiquity on mobile and tablets (and in Sony’s console ecosystem?), and Microsoft actively helping the
ANGLE project and encouraging UWP developers to use it (<a href="https://github.com/MSOpenTech/angle/wiki">https://github.com/MSOpenTech/angle/wiki</a> ), that’s far less of a problem than it was 5 or 10 years ago.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">But OSG is free, open source, portable and performant if you take the time to organise your graph efficiently.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
</div>
</body>
</html>