<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Aspect Engine</title>
	<atom:link href="http://aspectengine.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://aspectengine.wordpress.com</link>
	<description>A Developer's Blog</description>
	<lastBuildDate>Wed, 07 Oct 2009 20:03:02 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='aspectengine.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/a6b0f5c9038f3bb39f73ebf0aec77d50?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Aspect Engine</title>
		<link>http://aspectengine.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://aspectengine.wordpress.com/osd.xml" title="Aspect Engine" />
		<item>
		<title>Software Architecture and CPPGEN</title>
		<link>http://aspectengine.wordpress.com/2009/10/07/software-architecture-and-cppgen/</link>
		<comments>http://aspectengine.wordpress.com/2009/10/07/software-architecture-and-cppgen/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 20:03:02 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[aspectengine]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[cppgen]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=148</guid>
		<description><![CDATA[After a long time I realized that the engine wasn&#8217;t very well architected. By this I mean that all the components were lumped together and were interfacing directly with each other more than they should. I decided to do a COMPLETE REWRITE of the entire engine (maybe using some snippets from here and there) using a better [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=148&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>After a long time I realized that the engine wasn&#8217;t very well architected. By this I mean that all the components were lumped together and were interfacing directly with each other more than they should. I decided to do a COMPLETE REWRITE of the entire engine (maybe using some snippets from here and there) using a better structure.<span id="more-148"></span></p>
<p>I have been working on the new design for about a month now and it is starting to come together. Here are some of the major changes to the engine:</p>
<ul>
<li>SDL is no longer part of the engine core. A new window management system will be used instead. This will allow the engine to be ported more easily to consoles and PC platforms without SDL support.</li>
<li>The graphics API has been abstracted to a Renderer system. This uses an interface to allow more APIs than just OpenGL. This way DirectX, LibGCM and other APIs can be implemented. This also means that other engine components don&#8217;t need to deal with API-specific code.</li>
<li>The game state system has been simplified. Now &#8220;states&#8221; are called &#8220;games&#8221; and should implement their own state management system.</li>
<li>User input is now managed by an input manager interface.</li>
<li>Different components are placed in their own sub-directories and namespaces.</li>
</ul>
<h2>CPPGEN</h2>
<p>The current design lists more than 40 different classes, and the engine design is only about half complete at this point. Once the technical design documents have been drawn up and the structure is finalized, creating close to 100 class definitions will be tedious work.</p>
<p>To make this simpler, I hacked together a Python script to do it for me. All I have to do is write an XML file defining all the namespaces, directories and classes and cppgen will create everything for me. Right now it&#8217;s fairly simplistic and will generate class definitions of the form:</p>
<pre style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.5em!important;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important solid !important #dedede!important;margin:1em 0!important;padding:.5em!important;"><code style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.4em;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important none !important #dedede!important;margin:0;padding:0!important;">#ifndef NS1_NS2_CLASSNAME_H
#define NS1_NS2_CLASSNAME_H</code>

<code style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.4em;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important none !important #dedede!important;margin:0;padding:0!important;">namespace ns1 { namespace ns2 {</code>

<code style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.4em;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important none !important #dedede!important;margin:0;padding:0!important;">class ClassName
{
public:
    ClassName(void);
    ~ClassName(void);
};</code>

<code style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.4em;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important none !important #dedede!important;margin:0;padding:0!important;">}}</code>

<code style="font:normal normal normal 115%/normal Monaco, 'Courier New', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace;line-height:1.4em;font-size:12px;background-color:#f8f8ff!important;color:#444444!important;border:1px !important none !important #dedede!important;margin:0;padding:0!important;">#endif</code></pre>
<p><span style="line-height:16px;">Where ns1 is the main namespace, ns2 is a sub namespace and ClassName is the class’s identifier.</span></p>
<p><span style="line-height:16px;">It does not handle member properties, methods, inheritance or interfaces yet, but it could in the future. I would also like to extend it to generate getters/setters for properties and function definitions.</span></p>
<p><span style="line-height:16px;">Right now the code is <em>very </em>messy and needs cleaning up before these features are implemented but it is in a usable state at this point.</span></p>
<p><span style="line-height:16px;">Interested? <a href="http://github.com/tcsavage/cppgen">Check it out on Github</a>.</span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/148/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/148/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/148/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=148&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/10/07/software-architecture-and-cppgen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Update Time</title>
		<link>http://aspectengine.wordpress.com/2009/08/29/update-time/</link>
		<comments>http://aspectengine.wordpress.com/2009/08/29/update-time/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 17:51:57 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=145</guid>
		<description><![CDATA[In my quest to get shaders working I have learned a few things. I am almost 100% happy with the system now. There are a few issues to resolve before I move onto something else. A number of major changes have taken place during the past few weeks.

I have re-written the material format. It is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=145&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In my quest to get shaders working I have learned a few things. I am almost 100% happy with the system now. There are a few issues to resolve before I move onto something else. A number of major changes have taken place during the past few weeks.</p>
<ul>
<li>I have re-written the material format. It is back to XML and supports diffuse color, normal mapping, specular highlights, glow and falloff highlights.</li>
<li>A number of pre-defined variables are provided to the shader programmer providing an interface between the engine and GLSL.</li>
<li>Tangent-space is calculated for each model when it is loaded and is stored in the data structure.</li>
</ul>
<p>Issues to resolve:</p>
<ul>
<li>Multi-light rendering</li>
<li>Multi-pass rendering for special effects</li>
<li>Absence of some textures isn&#8217;t functioning as it should.</li>
</ul>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/145/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/145/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/145/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=145&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/08/29/update-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Shader Goodness</title>
		<link>http://aspectengine.wordpress.com/2009/08/10/shader-goodness/</link>
		<comments>http://aspectengine.wordpress.com/2009/08/10/shader-goodness/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 13:49:58 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=142</guid>
		<description><![CDATA[I tried for two weeks to get Cg working with the engine but all I was getting was a lovely black screen. This morning I gave up, removed all the Cg stuff and tried out GLSL. Worked perfect first time. I have written a simple shader program which displays the view-space normals rather than the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=142&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I tried for two weeks to get Cg working with the engine but all I was getting was a lovely black screen. This morning I gave up, removed all the Cg stuff and tried out GLSL. Worked perfect first time. I have written a simple shader program which displays the view-space normals rather than the model&#8217;s colour. My plan is to get deferred rendering working because it allows for some clever tricks.</p>
<p><a href="http://aspectengine.files.wordpress.com/2009/08/screenshot-3.png"><img class="aligncenter size-medium wp-image-143" title="Screenshot-3" src="http://aspectengine.files.wordpress.com/2009/08/screenshot-3.png?w=300&#038;h=236" alt="Screenshot-3" width="300" height="236" /></a></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=142&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/08/10/shader-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>

		<media:content url="http://aspectengine.files.wordpress.com/2009/08/screenshot-3.png?w=300" medium="image">
			<media:title type="html">Screenshot-3</media:title>
		</media:content>
	</item>
		<item>
		<title>Writing GUI systems is hard too&#8230;</title>
		<link>http://aspectengine.wordpress.com/2009/06/19/gui-systems-is-hard-too/</link>
		<comments>http://aspectengine.wordpress.com/2009/06/19/gui-systems-is-hard-too/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 17:01:50 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=136</guid>
		<description><![CDATA[So after a few weeks of fruitlessly trying to figure out how to integrate a GUI system into the engine I have decided to abandon the project. The reason for this is two-fold: I couldn&#8217;t figure out the mechanics by which I could use it and not have a massive overhead when it wasn&#8217;t required. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=136&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>So after a few weeks of fruitlessly trying to figure out how to integrate a GUI system into the engine I have decided to abandon the project. The reason for this is two-fold: I couldn&#8217;t figure out the mechanics by which I could use it and not have a massive overhead when it wasn&#8217;t required. It also turned out to be more effort than it was worth.</p>
<p>As a result, I think the scene editor might have to move to another project seperate from the engine. I&#8217;m going to stop thinking about it for now and focus on the rest of the engine. I still have all the files etc in SVN and I still have the data models I drew up so I can return to the project again another time.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/136/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/136/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/136/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=136&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/06/19/gui-systems-is-hard-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Whoo! I Plugged some leaks!</title>
		<link>http://aspectengine.wordpress.com/2009/06/13/whoo-i-plugged-some-leaks/</link>
		<comments>http://aspectengine.wordpress.com/2009/06/13/whoo-i-plugged-some-leaks/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 21:12:19 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=133</guid>
		<description><![CDATA[You can now check out the latest re-structure of the engine from the Google code project.
I am using the mmgr memory manager to find memory bugs and there are currently no issues (it finds something wrong with the linked list class but I think that it&#8217;s OK).
The GUI system is getting a total re-write to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=133&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>You can now check out the latest re-structure of the engine from the Google code project.</p>
<p>I am using the mmgr memory manager to find memory bugs and there are currently no issues (it finds something wrong with the linked list class but I think that it&#8217;s OK).</p>
<p>The GUI system is getting a total re-write to fix some major issues.</p>
<p>That&#8217;s all folks.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=133&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/06/13/whoo-i-plugged-some-leaks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>And I&#8217;m back</title>
		<link>http://aspectengine.wordpress.com/2009/06/09/and-im-back/</link>
		<comments>http://aspectengine.wordpress.com/2009/06/09/and-im-back/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:53:37 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[aspectengine]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[engine]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=128</guid>
		<description><![CDATA[The exams are over and I&#8217;m working on improving the engine further.
After lengthy consideration, I decided that it would be best to write my own GUI system from scratch rather than using an existing one. This creates a learning experience for me and avoids unnecessary overheads. It also means that I can make the UI [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=128&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>The exams are over and I&#8217;m working on improving the engine further.</p>
<p>After lengthy consideration, I decided that it would be best to write my own GUI system from scratch rather than using an existing one. This creates a learning experience for me and avoids unnecessary overheads. It also means that I can make the UI operate in any way I want it to. It also allowed me to develop a work flow I can use in the future for adding new features:</p>
<h2>CIDIR &#8211; Concept, Ideas, Design, Implementation, Refinement</h2>
<h3>Concept</h3>
<p>For the GUI, I decided that I wanted to go for a simplified of the Blender UI system. I produced a mock-up in Photoshop to get ideas circulating.</p>
<h3>Ideas</h3>
<p>I begin to think about how the UI would be used, what it&#8217;s function would be and how customizable it should be. I decided that I wanted the GUI to be fully customizable in C++. I also considered scripting with Lua, Python or Ruby. I decided against this in due course. Scripting may be a feature for another time. I also begin to think about how I would write the systems and how they would be used later.</p>
<h3>Design</h3>
<p>A final software design is compiled describing classes, interfaces, inheritance, etc; as well as a list of API functions. A implementation plan is also laid out.</p>
<h3>Implementation</h3>
<p>The software is written according to the design and is regularly tested to ensure that systems work as expected as they are brought on-line.</p>
<h3>Refinement</h3>
<p>Does the feature work as expected? Are there any bugs? Are any design changes needed? If the answers to any of those questions is yes, changes are made and the feature is reassessed.</p>
<p>I&#8217;m sure that there are better work flows out there, but this one works quite well for me at the moment.</p>
<p>The GUI is not yet finished and a lot of systems are waiting to be brought online. I am using a version which is quite different from the one in the repository at present. I have separated the engine and the demo parts into different projects. The engine is built as a static library which can be used by other games or other applications. My current solution also uses an early version of the scene system. I have a newer version of the scene system in another project but it isn&#8217;t working at present for a multitude of reasons. When the GUI is working I will complete and integrate the newer scene system back into the project.</p>
<p>In a future post I will talk more about the GUI&#8217;s design and structure.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/128/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/128/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/128/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=128&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/06/09/and-im-back/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Project on hold</title>
		<link>http://aspectengine.wordpress.com/2009/05/14/project-on-hold/</link>
		<comments>http://aspectengine.wordpress.com/2009/05/14/project-on-hold/#comments</comments>
		<pubDate>Thu, 14 May 2009 18:25:17 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=124</guid>
		<description><![CDATA[I&#8217;m going to stop working on the engine for a while. I&#8217;ll continue once my exams are done and when I have some more motivation. Until then, this is what I have been working on:

New scene model. Maps will now be known as scene and a new class and data model has been devised using [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=124&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m going to stop working on the engine for a while. I&#8217;ll continue once my exams are done and when I have some more motivation. Until then, this is what I have been working on:</p>
<ul>
<li>New scene model. Maps will now be known as scene and a new class and data model has been devised using a more flexible, faster and expandable format.</li>
<li>Scenes are will not same kind of file format as the maps.  I&#8217;m going to have a go at binary streaming and if it works, I may convert models and materials over to the same system.</li>
<li>A new file system will be implemented to handle file loading. This will make alterations and restructuring easier.</li>
<li>Each object will have a bounding box and ellipsoid generated automatically.</li>
<li>The scene will be split using an octree system.</li>
<li>The scene will have a single underling piece (or pieces) of geometry which will be handled by the renderer and physics quite differently.</li>
</ul>
<p><strong>UPDATE:</strong></p>
<p>Have done the odd bit here and there. I have the new scene file format working. Scene objects are implemented along with core scene data using the new binary streaming method. There are still lots of bugs to iron out and a plethora of features to add. Right now it is all still very experimental and unstable so don&#8217;t expect any SVN updates for a while <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/124/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/124/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/124/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=124&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/05/14/project-on-hold/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>OK, game physics is hard</title>
		<link>http://aspectengine.wordpress.com/2009/05/02/ok-game-physics-is-hard/</link>
		<comments>http://aspectengine.wordpress.com/2009/05/02/ok-game-physics-is-hard/#comments</comments>
		<pubDate>Sat, 02 May 2009 20:49:03 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[aspectengine]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[physics]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=121</guid>
		<description><![CDATA[Getting the engine to figure out if two objects are intersecting sounds easy, but it isn&#8217;t. I have spent the last week trying on and off to figure it out. I tried several tutorials and even some existing physics libraries but no dice&#8230; yet.
I&#8217;m goint to try the Open Dynamics Library now. It seems to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=121&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Getting the engine to figure out if two objects are intersecting sounds easy, but it isn&#8217;t. I have spent the last week trying on and off to figure it out. I tried several tutorials and even some existing physics libraries but no dice&#8230; yet.</p>
<p>I&#8217;m goint to try the Open Dynamics Library now. It seems to work well and has been used in a few AAA titles recently so I guess it&#8217;s pretty good. I figure it&#8217;s worth a try.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/121/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/121/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/121/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=121&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/05/02/ok-game-physics-is-hard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Onto the next stage</title>
		<link>http://aspectengine.wordpress.com/2009/04/23/onto-the-next-stage/</link>
		<comments>http://aspectengine.wordpress.com/2009/04/23/onto-the-next-stage/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 21:43:38 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[aspectengine]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[material]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[OpenGL]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=119</guid>
		<description><![CDATA[For the first time in a while I actually thought about what kind of game I would want to make when the engine is in a usable state.
Well so far so good. The engine seems to load quickly and run smoothly. I can have an assortment of models on the screen each with their own [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=119&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>For the first time in a while I actually thought about what kind of game I would want to make when the engine is in a usable state.</p>
<p>Well so far so good. The engine seems to load quickly and run smoothly. I can have an assortment of models on the screen each with their own material. The optimizations are great and I&#8217;m very happy. According to <a href="https://www.ohloh.net/p/aspect-engine" target="_blank">ohloh</a> the entire project is only 2.8K lines of actual code but there is much more to come. Most importantly, physics and collision detection which is a vital part of any game.</p>
<p>As an extra note: if anyone out there wants me to post working binaries, just leave a comment.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=119&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/04/23/onto-the-next-stage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>
	</item>
		<item>
		<title>Ok, time to rethink&#8230;</title>
		<link>http://aspectengine.wordpress.com/2009/04/17/ok-time-to-rethink/</link>
		<comments>http://aspectengine.wordpress.com/2009/04/17/ok-time-to-rethink/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 16:13:25 +0000</pubDate>
		<dc:creator>Tom Savage</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[aspectengine]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[issue]]></category>
		<category><![CDATA[model]]></category>
		<category><![CDATA[snippets]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://aspectengine.wordpress.com/?p=112</guid>
		<description><![CDATA[XML seemed like a good idea at the time but now I have it implemented in the engine, it&#8217;s butt slow. I&#8217;m going to have to look at other solutions.
The system I am working on right now is quite similar to the XML format (here is a sample representation of a cube). The vertex data [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=112&subd=aspectengine&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>XML seemed like a good idea at the time but now I have it implemented in the engine, it&#8217;s butt slow. I&#8217;m going to have to look at other solutions.</p>
<p>The system I am working on right now is quite similar to the XML format (<a href="http://www.pasteall.org/5115" target="_blank">here is a sample representation of a cube</a>). The vertex data is given in the form of what I call a &#8220;Vertrinity&#8221; (a trinity of position, normal vector and texture coordinates, 8 floating-point values delimited by a double colon &#8216;::&#8217;). I have a modified version of the old Blender exporter and  a stand alone C++ parser which works great. Now I just have to integrate it into the engine. Yay.</p>
<p><strong>Update 1:</strong></p>
<p>It works! Models are now loaded using the new format and it is <em>much</em> faster. The rendering also seems to have sped up a bit but that may be a happy side effect. I am looking into using vertex buffers for storing the vertex data on the graphics card rather than in RAM for a bigger performance boost. I still need to get materials and maps using variants of the new format so I can eliminate TinyXML from the project (BTW, TinyXML is still a great library but it&#8217;s just a matter of using the right tool for the job). Anyways, enjoy a screenie <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p><a href="http://aspectengine.files.wordpress.com/2009/04/newformatsuccess.jpg"><img class="aligncenter size-medium wp-image-115" title="newformatsuccess" src="http://aspectengine.files.wordpress.com/2009/04/newformatsuccess.jpg?w=300&#038;h=187" alt="newformatsuccess" width="300" height="187" /></a></p>
<p><strong>Update 2:</strong></p>
<p>And now I have the new map format working! <a href="http://www.pasteall.org/5118" target="_blank">(see a sample here</a>)</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/aspectengine.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/aspectengine.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/aspectengine.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/aspectengine.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/aspectengine.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/aspectengine.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/aspectengine.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/aspectengine.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/aspectengine.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/aspectengine.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=aspectengine.wordpress.com&blog=3585881&post=112&subd=aspectengine&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://aspectengine.wordpress.com/2009/04/17/ok-time-to-rethink/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Tom Savage</media:title>
		</media:content>

		<media:content url="http://aspectengine.files.wordpress.com/2009/04/newformatsuccess.jpg?w=300" medium="image">
			<media:title type="html">newformatsuccess</media:title>
		</media:content>
	</item>
	</channel>
</rss>