<?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/"
	>

<channel>
	<title>RonEnix &#187; progress</title>
	<atom:link href="http://ronenix.com/category/progress/feed/" rel="self" type="application/rss+xml" />
	<link>http://ronenix.com</link>
	<description></description>
	<lastBuildDate>Wed, 12 Nov 2008 14:57:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Progress updates</title>
		<link>http://ronenix.com/2007/12/29/progress-updates/</link>
		<comments>http://ronenix.com/2007/12/29/progress-updates/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 19:17:00 +0000</pubDate>
		<dc:creator>Ron</dc:creator>
				<category><![CDATA[AGT]]></category>
		<category><![CDATA[AGT Game Engine]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[object]]></category>
		<category><![CDATA[progress]]></category>

		<guid isPermaLink="false">http://ronenix.com/?p=5</guid>
		<description><![CDATA[ Began actual work on the engine. Created a new framework for the engine and game.
Progress on the project is way ahead compared to my designed schedule, altough compared to the amount I have to do (game and engine), its just a fragment of it all.
I was given the outline of the project, speccing the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://i13.photobucket.com/albums/a280/ky21185/iconAGT.jpg" style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 100px" border="0" /> Began actual work on the engine. Created a new framework for the engine and game.<br />
Progress on the project is way ahead compared to my designed schedule, altough compared to the amount I have to do (game and engine), its just a fragment of it all.</p>
<p>I was given the outline of the project, speccing the minimum requirements of the work, all are included in the schedule and todos for the game prototype.</p>
<p>As for the work done, I have coded up the Render System. This system simply intiliases OGRE renderer and sets up the window to begin rendering. I stated clearly that the render is very important in controlling the game loop. The AGT render manager only contains one class. Originally it was 2 classes working in the the render system area of the engine as show below:</p>
<p><center><br />
<img src="http://i13.photobucket.com/albums/a280/ky21185/clip_image002-1.jpg" /><br />
</center><br />
Both classes have now been melded into one RenderManager class. Here&#8217;s the codeblock for this class:&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<code><br />
class RenderManager : public Ogre::FrameListener<br />
{<br />
private: // Attributes<br />
Ogre::Root      *m_pRoot;    // Ogre root pointer<br />
Ogre::RenderWindow    *m_pRenderWindow;  // Ogre render window pointer<br />
unsigned long     m_hWnd;     // Handler to the ogre render window<br />
bool       m_bStatsOn;    // Stats display<br />
Ogre::TextureFilterOptions  m_Filtering;   // Texture filtering mode<br />
int        m_iAniso;    // Anisotrophic level<br />
bool       m_ShutDownRequested; // Shutdown call<br />
static RenderManager   *renderMgr;    // Static pointer to self<br />
private: // Functions<br />
RenderManager(void); // private ctor for singleton class<br />
void initialise(void);<br />
void setupResources(void);<br />
void createWindow(void);<br />
bool setup(void);   // Runs through and call all functions initialisations<br />
void createFrameListener(void);<br />
public:<br />
~RenderManager(void);<br />
static RenderManager* getSingleton(void);<br />
void cleanup(void); // Cleans all pointers to render system<br />
void startRendering(void); // Renders frames<br />
bool frameStarted(const Ogre::FrameEvent&amp; evt);</code><br />
<code><br />
bool frameEnded(const Ogre::FrameEvent&amp; evt);<br />
// accessors<br />
unsigned long getWindowsHandle(void){ return m_hWnd; };<br />
// Returns handle to render window<br />
// Returns ogre root pointer<br />
Ogre::Root* getRoot(void)<br />
{ return m_pRoot; };<br />
Ogre::RenderWindow* getRenderWindow(void)<br />
{ return m_pRenderWindow; }; // Returns render window pointer};</code>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;RenderManager has inheritance link to Ogre&#8217;s FrameListener. RenderManager is a singleton class. From main this singleton can then  be called and by simply calling the &#8217;startRendering&#8217; function, OGRE will provide a program while loop that will quit if you pass the certain functions to the frame listener functions. Virtual functions &#8216;frameStarted&#8217; and &#8216;frameEnded&#8217; from the FrameListener class must be implemented in order to do so. Any classes that inherits from the FrameListener will be registered for these functions to be called when update occurs.</p>
<p>Implemented the Object system to a point where I have 2 scenes working and able to switch between them. One of the scene is empty and the other contains a test object, flat textured floor object, done through attaching a test mesh component to the object. I have skipped initial implementation on the state manager, for the sake of testing the object and the rendering system.</p>
<p>Next implementation is to create the input manager for keyboard and mouse, so I can control the camera in one of the scenes, by adding a camera control component to a test player object. X360 gamepad support will be added in a later stage.<br />
For now here&#8217;s an image of the code structure in VisualC++:</p>
<p><center><br />
<img src="http://i13.photobucket.com/albums/a280/ky21185/progress_1.jpg" /><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://ronenix.com/2007/12/29/progress-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
