<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: There are never enough render engines..</title>
	<atom:link href="http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/</link>
	<description>Game Development as seen through the Blum Filter</description>
	<lastBuildDate>Tue, 31 Aug 2010 01:01:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Rachel</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-122</link>
		<dc:creator>Rachel</dc:creator>
		<pubDate>Tue, 09 Feb 2010 14:19:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-122</guid>
		<description>&lt;p&gt;Hi Pedro!&lt;/p&gt;

&lt;p&gt;I&#039;ve definitely given GO a look - but it seems to have a major shortcoming in that it does not seem to allow manual memory management. (And yes, for many areas of game development that&#039;s unfortunately still crucial).&lt;/p&gt;

&lt;p&gt;I hope I&#039;m proven wrong about that in the long run and GO gets extended in that direction.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Pedro!</p>

<p>I&#8217;ve definitely given GO a look &#8211; but it seems to have a major shortcoming in that it does not seem to allow manual memory management. (And yes, for many areas of game development that&#8217;s unfortunately still crucial).</p>

<p>I hope I&#8217;m proven wrong about that in the long run and GO gets extended in that direction.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Pedro</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-116</link>
		<dc:creator>Pedro</dc:creator>
		<pubDate>Thu, 04 Feb 2010 06:17:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-116</guid>
		<description>&lt;p&gt;GO language.&lt;/p&gt;

&lt;p&gt;C is really too painful to write games, and you have your issues with C++ that are totally reasonable.&lt;/p&gt;

&lt;p&gt;Try the GO language.&lt;/p&gt;

&lt;p&gt;golang[dot]org&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>GO language.</p>

<p>C is really too painful to write games, and you have your issues with C++ that are totally reasonable.</p>

<p>Try the GO language.</p>

<p>golang[dot]org</p>]]></content:encoded>
	</item>
	<item>
		<title>By: groby</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-76</link>
		<dc:creator>groby</dc:creator>
		<pubDate>Thu, 17 Dec 2009 02:51:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-76</guid>
		<description>&lt;p&gt;@Florian: Line breaks fixed.&lt;/p&gt;

&lt;p&gt;As for a template-specialization based architecture: That&#039;s nasty ;) Especially in terms of compile time. Templates are a major pain there.&lt;/p&gt;

&lt;p&gt;And readability and short compile-time are crucial properties for a successful project. The longer it takes to both build the code base and come up to speed with it, the longer it takes to actually build a game - and that&#039;s too expensive already.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Florian: Line breaks fixed.</p>

<p>As for a template-specialization based architecture: That&#8217;s nasty ;) Especially in terms of compile time. Templates are a major pain there.</p>

<p>And readability and short compile-time are crucial properties for a successful project. The longer it takes to both build the code base and come up to speed with it, the longer it takes to actually build a game &#8211; and that&#8217;s too expensive already.</p>]]></content:encoded>
	</item>
	<item>
		<title>By: groby</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-75</link>
		<dc:creator>groby</dc:creator>
		<pubDate>Thu, 17 Dec 2009 02:34:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-75</guid>
		<description>&lt;p&gt;@Mike: The extern consts certainly solve this, if in a rather crufty way. I&#039;m not too worried about lookup costs - after all, most/all graphics objects should be binary blobs to the engine - so I&#039;ll give that a try.&lt;/p&gt;

&lt;p&gt;The pre-processing is an interesting approach, but I&#039;d like to reduce build times - more dependency checks certainly don&#039;t help there.&lt;/p&gt;

&lt;p&gt;Again, in an ideal world, we&#039;d abandon the silly idea of headers. It&#039;s really a crutch that pretty much all languages except C/C++/ObjC have given up on. Well, Erlang still clings to it, which does not make me happy either ;)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>@Mike: The extern consts certainly solve this, if in a rather crufty way. I&#8217;m not too worried about lookup costs &#8211; after all, most/all graphics objects should be binary blobs to the engine &#8211; so I&#8217;ll give that a try.</p>

<p>The pre-processing is an interesting approach, but I&#8217;d like to reduce build times &#8211; more dependency checks certainly don&#8217;t help there.</p>

<p>Again, in an ideal world, we&#8217;d abandon the silly idea of headers. It&#8217;s really a crutch that pretty much all languages except C/C++/ObjC have given up on. Well, Erlang still clings to it, which does not make me happy either ;)</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-68</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Mon, 07 Dec 2009 03:32:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-68</guid>
		<description>&lt;p&gt;&quot;that would allow mapping platform-specific enums to abstracted enums without having to expose the platform-specific header that contains them.&quot;&lt;/p&gt;

&lt;p&gt;Externs consts can solve this, if you don&#039;t mind some declaration cruft and (possibly) lookup overhead. If you do, why not generate an abstracted header in a custom build step?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>&#8220;that would allow mapping platform-specific enums to abstracted enums without having to expose the platform-specific header that contains them.&#8221;</p>

<p>Externs consts can solve this, if you don&#8217;t mind some declaration cruft and (possibly) lookup overhead. If you do, why not generate an abstracted header in a custom build step?</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Florian</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-64</link>
		<dc:creator>Florian</dc:creator>
		<pubDate>Fri, 20 Nov 2009 11:05:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-64</guid>
		<description>&lt;p&gt;Great!&lt;/p&gt;

&lt;p&gt;cat got my line breaks&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great!</p>

<p>cat got my line breaks</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Florian</title>
		<link>http://www.rachelslabnotes.com/2009/11/there-are-never-enough-render-engines/comment-page-1/#comment-63</link>
		<dc:creator>Florian</dc:creator>
		<pubDate>Fri, 20 Nov 2009 11:04:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.rachelslabnotes.com/?p=50#comment-63</guid>
		<description>&lt;p&gt;I was thinking about something similar recently. Basically the idea was to replace class inheritance with template specialization. This would remove the &quot;virtual function table&quot; access during runtime and would resolve everything compile time. Should probably go well with In-Order architectures. This of course has some drawbacks:&lt;/p&gt;

&lt;p&gt;Since templates can&#039;t be implemented in cpp files most code would be written in header files which affects compile time, readability and means that you can&#039;t easily make a precompiled library from it. Also according to wiki some compilers have problems with partial template specialization but the VS and the GNU compiler should work which in my eyes covers all platforms. And lastly you will not be able to dynamically cast alot.&lt;/p&gt;

&lt;p&gt;This is some code im currently playing around with. Dont really have much time with it and it really is just one of the crazy ideas.&lt;/p&gt;

&lt;p&gt;&lt;pre lang=&quot;c++&quot;&gt;
static class MyArch
{
  public:
    static char* Name() { return &quot;MyArch&quot;; }
};

#ifdef MYARCH
typedef MyArch Architecture;
#endif

////////////////////////////////////////////
template class SomeClass
{
public:
  void foo()
  {
    printf(&quot;BaseImplementation&quot;);
  }
};

/////////////////////////////////////////////////////
template&lt;&gt; class SomeClass
{
public:
  void foo()
  {
    printf(&quot;MyArchImplementation&quot;);
  }
};

int __stdcall main()
{
  SomeClass someClass;
  someClass.foo();
  return 0;
}
&lt;/pre&gt;&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I was thinking about something similar recently. Basically the idea was to replace class inheritance with template specialization. This would remove the &#8220;virtual function table&#8221; access during runtime and would resolve everything compile time. Should probably go well with In-Order architectures. This of course has some drawbacks:</p>

<p>Since templates can&#8217;t be implemented in cpp files most code would be written in header files which affects compile time, readability and means that you can&#8217;t easily make a precompiled library from it. Also according to wiki some compilers have problems with partial template specialization but the VS and the GNU compiler should work which in my eyes covers all platforms. And lastly you will not be able to dynamically cast alot.</p>

<p>This is some code im currently playing around with. Dont really have much time with it and it really is just one of the crazy ideas.</p>

<p><pre lang="c++">
static class MyArch
{
  public:
    static char* Name() { return "MyArch"; }
};

#ifdef MYARCH
typedef MyArch Architecture;
#endif

////////////////////////////////////////////
template class SomeClass
{
public:
  void foo()
  {
    printf("BaseImplementation");
  }
};

/////////////////////////////////////////////////////
template<> class SomeClass
{
public:
  void foo()
  {
    printf("MyArchImplementation");
  }
};

int __stdcall main()
{
  SomeClass someClass;
  someClass.foo();
  return 0;
}
</pre></p>]]></content:encoded>
	</item>
</channel>
</rss>
