<?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 for Scientific Ninja</title>
	<atom:link href="http://scientificninja.com/comments/feed" rel="self" type="application/rss+xml" />
	<link>http://scientificninja.com</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 05:14:22 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>Comment on Dotfiles and Dropbox by Josh Petrie</title>
		<link>http://scientificninja.com/blog/dotfiles-and-dropbox/comment-page-1#comment-1822</link>
		<dc:creator>Josh Petrie</dc:creator>
		<pubDate>Wed, 21 Jul 2010 05:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://scientificninja.com/?p=964#comment-1822</guid>
		<description>&lt;p&gt;As an addendum, I should note that simply creating a symbolic link via the mklink shell command on Windows will not work properly -- if you try to edit and write your vimrc that way, vim will overwrite the link. Creating a hardlink with the /H option seems to fix this without (so far) introducing any other issues.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>As an addendum, I should note that simply creating a symbolic link via the mklink shell command on Windows will not work properly &#8212; if you try to edit and write your vimrc that way, vim will overwrite the link. Creating a hardlink with the /H option seems to fix this without (so far) introducing any other issues.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Morimoto by David</title>
		<link>http://scientificninja.com/blog/morimoto/comment-page-1#comment-1820</link>
		<dc:creator>David</dc:creator>
		<pubDate>Wed, 21 Jul 2010 04:33:03 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=12#comment-1820</guid>
		<description>&lt;p&gt;Thanks. I&#039;m near Philly near and I would love to try this place before I go back to WA State.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Thanks. I&#8217;m near Philly near and I would love to try this place before I go back to WA State.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Adam Dudas</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1766</link>
		<dc:creator>Adam Dudas</dc:creator>
		<pubDate>Sat, 17 Jul 2010 09:43:30 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1766</guid>
		<description>&lt;p&gt;I agree with you for the most part.&lt;/p&gt;

&lt;p&gt;A small group of my friends and I are making a game, and I&#039;m the game&#039;s engine&#039;s developer.&lt;/p&gt;

&lt;p&gt;At this point some would ask &quot;Why even develop an engine separated from game code? Shouldn&#039;t you just simply make your code part of the game&#039;s code and specific to it&#039;s needs?&quot;. The answer is very simple: the &quot;game&#039;s needs&quot; are always changing, especially with the creative, not-so-much technical people as the game&#039;s designers.&lt;/p&gt;

&lt;p&gt;The most important thing, when you&#039;re developing an engine, is to have a close interaction with the game&#039;s developers because their needs should drive your development, just like you said!&lt;/p&gt;

&lt;p&gt;BUT: Because of the always changing needs of the game, the core functionality a.k.a. the engine should be designed and implemented with special care for the ability to accommodate these changes easily.&lt;/p&gt;

&lt;p&gt;Just my two cents. Great article btw!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I agree with you for the most part.</p>

<p>A small group of my friends and I are making a game, and I&#8217;m the game&#8217;s engine&#8217;s developer.</p>

<p>At this point some would ask &#8220;Why even develop an engine separated from game code? Shouldn&#8217;t you just simply make your code part of the game&#8217;s code and specific to it&#8217;s needs?&#8221;. The answer is very simple: the &#8220;game&#8217;s needs&#8221; are always changing, especially with the creative, not-so-much technical people as the game&#8217;s designers.</p>

<p>The most important thing, when you&#8217;re developing an engine, is to have a close interaction with the game&#8217;s developers because their needs should drive your development, just like you said!</p>

<p>BUT: Because of the always changing needs of the game, the core functionality a.k.a. the engine should be designed and implemented with special care for the ability to accommodate these changes easily.</p>

<p>Just my two cents. Great article btw!</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Josh Petrie</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1660</link>
		<dc:creator>Josh Petrie</dc:creator>
		<pubDate>Sun, 11 Jul 2010 21:38:54 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1660</guid>
		<description>&lt;p&gt;Don&#039;t get too hung up on the use of particular terms (&#039;game&#039; and &#039;engine&#039; specifically). What you&#039;re saying isn&#039;t really in disagreement with the point of view I&#039;m espousing: you built a game first, and the experience you acquired during the process tempered your understanding of what you needed from your code. It helped refine your goals. That&#039;s the important part.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Don&#8217;t get too hung up on the use of particular terms (&#8216;game&#8217; and &#8216;engine&#8217; specifically). What you&#8217;re saying isn&#8217;t really in disagreement with the point of view I&#8217;m espousing: you built a game first, and the experience you acquired during the process tempered your understanding of what you needed from your code. It helped refine your goals. That&#8217;s the important part.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Josh Petrie</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1659</link>
		<dc:creator>Josh Petrie</dc:creator>
		<pubDate>Sun, 11 Jul 2010 21:27:53 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1659</guid>
		<description>&lt;p&gt;If you note, I am not advocating that one should never write an engine; rather I am advocating that one should not write an engine in isolation. I am saying that one should use games as a means of driving the requirements for &#039;engine-level&#039; code (such as state management systems and the others that you mention). While it is certainly true that all games will require some kind of rendering code, not all games require the same kind of rendering code, the same feature set, or the same interface. Developing and understanding requirements is a critical aspect of any software development project, games included.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>If you note, I am not advocating that one should never write an engine; rather I am advocating that one should not write an engine in isolation. I am saying that one should use games as a means of driving the requirements for &#8216;engine-level&#8217; code (such as state management systems and the others that you mention). While it is certainly true that all games will require some kind of rendering code, not all games require the same kind of rendering code, the same feature set, or the same interface. Developing and understanding requirements is a critical aspect of any software development project, games included.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Martin Brentnall</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1605</link>
		<dc:creator>Martin Brentnall</dc:creator>
		<pubDate>Fri, 09 Jul 2010 14:25:48 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1605</guid>
		<description>&lt;p&gt;Great article and very good advice!&lt;/p&gt;

&lt;p&gt;However, I do feel that engine development can be an important part of the development process for certain people.  I&#039;d like to share my experience on why I found engine development to be a crucial part of my game development process.&lt;/p&gt;

&lt;p&gt;I&#039;m a hobby games developer.  I haven&#039;t yet completed any games but I am nearing the completion of my first project - a relatively simple open source game written in C++ and OpenGL - which I started in 2005.  The project started life with the approach that you suggest in this article; the pure intention to create a game.  I didn&#039;t pay much regard to writing reusable or generic code and I certainly didn&#039;t think about writing an engine.  I just wanted to create a game that people could enjoy.  I thought it would be pretty easy to do.&lt;/p&gt;

&lt;p&gt;So I wrote a lot of code.  Things got moving pretty fast, and it wasn&#039;t long before I had some significant functionality and a whole game world set up, built using a custom editing tool.  However, as the project moved forward, progress began to wane.  My motivation and enthusiasm slowly dropped and breaks from the project increased in duration and frequency, occasionally resulting in months of inactivity.  I still really wanted to finish the project.  Nothing was more exciting to me than the idea of people actually playing my game, but even as the game neared completion, I was unable to push myself to finish it.&lt;/p&gt;

&lt;p&gt;The biggest drain on my motivation was when I realised that the game concept had great potential for expansion and customisation, and thought about how I could have developed it this way.  The problem was, almost every class in the game had so much game-specific code and knowledge that it would be impossible to exploit this potential to any degree in the project&#039;s current form.  Sure, I could have spent a couple of months kludging the last part of the required functionality into the game and working out the remaining bugs, but deep down I knew there were better ways of doing things, and that knowledge was playing heavily on my mind.  Any code I might write to finish the project would only end up being rewritten later in generic form, and knowing that was greatly depressing and demotivating.&lt;/p&gt;

&lt;p&gt;Eventually, in early 2009, after almost half a year without any activity, I decided to take the plunge into the refactoring process.  The game would be converted into reusable and flexible modules and tools.  Every part of the game would be customizable and the game would even support a plug-in architecture, allowing new functionality and objects to be introduced into the game.  In short, I&#039;d end up with a nice engine, with my original game running on top as a set components, refactored and generalised from the original project code.&lt;/p&gt;

&lt;p&gt;And now?  It&#039;s taken a little longer than expected, but the engine framework has been written and the game is almost complete, running on top of the engine.  My motivation and enthusiasm for the project has never been higher, and has persisted since I began turning my project into an engine.  I can&#039;t really do justice to the difference it&#039;s made.  Development has practically become an addiction and there are no signs of slowing down.  In fact, for every day that I spend writing code, I think of new and exciting possibilities for future developments (although for now I still retain a clear focus on reaching the original goal).  It&#039;s hugely motivating to look forward to a future of experimentation, expansion and customization rather than months of tedious refactoring and kludging things together.  I&#039;m honestly not sure if I would&#039;ve ever finished the project without the engine.&lt;/p&gt;

&lt;p&gt;I guess what I&#039;m trying to say is that writing an engine can be very rewarding depending on the person and the type of game.  There can be more to games development than banging code in one end and getting a game out of the other.  I&#039;ve seen a lot of hobby developers who write games this way, and it obviously works for some people, and that&#039;s fine.&lt;/p&gt;

&lt;p&gt;But for those who want their project to have a long-term lifespan, I believe that an engine is the way to go.  As long as there&#039;s an actual game to pair with the engine to define some concrete goals and keep priorities from swaying, then an engine can be well worth the effort.&lt;/p&gt;

&lt;p&gt;In my opinion. :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Great article and very good advice!</p>

<p>However, I do feel that engine development can be an important part of the development process for certain people.  I&#8217;d like to share my experience on why I found engine development to be a crucial part of my game development process.</p>

<p>I&#8217;m a hobby games developer.  I haven&#8217;t yet completed any games but I am nearing the completion of my first project &#8211; a relatively simple open source game written in C++ and OpenGL &#8211; which I started in 2005.  The project started life with the approach that you suggest in this article; the pure intention to create a game.  I didn&#8217;t pay much regard to writing reusable or generic code and I certainly didn&#8217;t think about writing an engine.  I just wanted to create a game that people could enjoy.  I thought it would be pretty easy to do.</p>

<p>So I wrote a lot of code.  Things got moving pretty fast, and it wasn&#8217;t long before I had some significant functionality and a whole game world set up, built using a custom editing tool.  However, as the project moved forward, progress began to wane.  My motivation and enthusiasm slowly dropped and breaks from the project increased in duration and frequency, occasionally resulting in months of inactivity.  I still really wanted to finish the project.  Nothing was more exciting to me than the idea of people actually playing my game, but even as the game neared completion, I was unable to push myself to finish it.</p>

<p>The biggest drain on my motivation was when I realised that the game concept had great potential for expansion and customisation, and thought about how I could have developed it this way.  The problem was, almost every class in the game had so much game-specific code and knowledge that it would be impossible to exploit this potential to any degree in the project&#8217;s current form.  Sure, I could have spent a couple of months kludging the last part of the required functionality into the game and working out the remaining bugs, but deep down I knew there were better ways of doing things, and that knowledge was playing heavily on my mind.  Any code I might write to finish the project would only end up being rewritten later in generic form, and knowing that was greatly depressing and demotivating.</p>

<p>Eventually, in early 2009, after almost half a year without any activity, I decided to take the plunge into the refactoring process.  The game would be converted into reusable and flexible modules and tools.  Every part of the game would be customizable and the game would even support a plug-in architecture, allowing new functionality and objects to be introduced into the game.  In short, I&#8217;d end up with a nice engine, with my original game running on top as a set components, refactored and generalised from the original project code.</p>

<p>And now?  It&#8217;s taken a little longer than expected, but the engine framework has been written and the game is almost complete, running on top of the engine.  My motivation and enthusiasm for the project has never been higher, and has persisted since I began turning my project into an engine.  I can&#8217;t really do justice to the difference it&#8217;s made.  Development has practically become an addiction and there are no signs of slowing down.  In fact, for every day that I spend writing code, I think of new and exciting possibilities for future developments (although for now I still retain a clear focus on reaching the original goal).  It&#8217;s hugely motivating to look forward to a future of experimentation, expansion and customization rather than months of tedious refactoring and kludging things together.  I&#8217;m honestly not sure if I would&#8217;ve ever finished the project without the engine.</p>

<p>I guess what I&#8217;m trying to say is that writing an engine can be very rewarding depending on the person and the type of game.  There can be more to games development than banging code in one end and getting a game out of the other.  I&#8217;ve seen a lot of hobby developers who write games this way, and it obviously works for some people, and that&#8217;s fine.</p>

<p>But for those who want their project to have a long-term lifespan, I believe that an engine is the way to go.  As long as there&#8217;s an actual game to pair with the engine to define some concrete goals and keep priorities from swaying, then an engine can be well worth the effort.</p>

<p>In my opinion. <img src='http://scientificninja.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Andrew</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1432</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Mon, 28 Jun 2010 17:30:29 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1432</guid>
		<description>&lt;p&gt;This is ridiculous.  You SHOULD build an engine.  All of the &#039;experienced&#039; programmers seem to want to tell you that it is impossible and should not be done.  Bullshit.  You SHOULD create a very simple engine that has stuff like state management (done properly!  not a switch statement!), resource management, rendering, etc because you will need that kind of stuff in every game you make.  Why should you rewrite the code for every single game you try to make.  Don&#039;t reinvent the wheel, make the wheel easy to reuse - that&#039;s common sense.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>This is ridiculous.  You SHOULD build an engine.  All of the &#8216;experienced&#8217; programmers seem to want to tell you that it is impossible and should not be done.  Bullshit.  You SHOULD create a very simple engine that has stuff like state management (done properly!  not a switch statement!), resource management, rendering, etc because you will need that kind of stuff in every game you make.  Why should you rewrite the code for every single game you try to make.  Don&#8217;t reinvent the wheel, make the wheel easy to reuse &#8211; that&#8217;s common sense.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Gustavef</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-1046</link>
		<dc:creator>Gustavef</dc:creator>
		<pubDate>Tue, 08 Jun 2010 17:22:08 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-1046</guid>
		<description>&lt;p&gt;One good bit of advice from Code Complete was that you should not really think or design for reuse during the main project.  Focus on the deliverable (an enjoyable game) and achieving them first.  Once the project is done, then go over your code and determine what could be possible candidates for reuse.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>One good bit of advice from Code Complete was that you should not really think or design for reuse during the main project.  Focus on the deliverable (an enjoyable game) and achieving them first.  Once the project is done, then go over your code and determine what could be possible candidates for reuse.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Josh Petrie</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-793</link>
		<dc:creator>Josh Petrie</dc:creator>
		<pubDate>Sun, 23 May 2010 07:04:47 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-793</guid>
		<description>&lt;p&gt;That&#039;s true; it wasn&#039;t really my goal to answer that question, not with this piece at least. In general, I think the answer to your question is &quot;it depends.&quot; I generally think you should &quot;build&quot; (or develop in-house) what is critical to your project&#039;s unique experience and &quot;buy&quot; (or outsource, et cetera) what isn&#039;t. What that actually means for any specific project is, of course, going to depend on that project&#039;s requirements and other goals.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>That&#8217;s true; it wasn&#8217;t really my goal to answer that question, not with this piece at least. In general, I think the answer to your question is &#8220;it depends.&#8221; I generally think you should &#8220;build&#8221; (or develop in-house) what is critical to your project&#8217;s unique experience and &#8220;buy&#8221; (or outsource, et cetera) what isn&#8217;t. What that actually means for any specific project is, of course, going to depend on that project&#8217;s requirements and other goals.</p>]]></content:encoded>
	</item>
	<item>
		<title>Comment on Write Games, Not Engines by Tristan Muntsinger</title>
		<link>http://scientificninja.com/blog/write-games-not-engines/comment-page-1#comment-755</link>
		<dc:creator>Tristan Muntsinger</dc:creator>
		<pubDate>Thu, 20 May 2010 20:09:38 +0000</pubDate>
		<guid isPermaLink="false">http://jpetrie.webfactional.com/?p=8#comment-755</guid>
		<description>&lt;p&gt;I&#039;m not sure that your article answers this question: Should a beginning developer use an existing engine or write their game from scratch?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I&#8217;m not sure that your article answers this question: Should a beginning developer use an existing engine or write their game from scratch?</p>]]></content:encoded>
	</item>
</channel>
</rss>
