<?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; design</title>
	<atom:link href="http://ronenix.com/category/design/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>
		<item>
		<title>AGT Engine technical documentation</title>
		<link>http://ronenix.com/2007/12/19/agt-engine-technical-documentation/</link>
		<comments>http://ronenix.com/2007/12/19/agt-engine-technical-documentation/#comments</comments>
		<pubDate>Wed, 19 Dec 2007 16:18:00 +0000</pubDate>
		<dc:creator>Ron</dc:creator>
				<category><![CDATA[AGT]]></category>
		<category><![CDATA[AGT Game Engine]]></category>
		<category><![CDATA[Update]]></category>
		<category><![CDATA[action]]></category>
		<category><![CDATA[adventure]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[engine]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[object]]></category>

		<guid isPermaLink="false">http://ronenix.com/?p=4</guid>
		<description><![CDATA[ The technical documentation of the project is due in this week and I might as well explain some the various aspects of the game and also what&#8217;s running the game behind it, the engine.
First of all let me explain the idea behind my game. Title is yet to be assigned to the game but [...]]]></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" /> The technical documentation of the project is due in this week and I might as well explain some the various aspects of the game and also what&#8217;s running the game behind it, the engine.</p>
<p>First of all let me explain the idea behind my game. Title is yet to be assigned to the game but I will eventually get to it.</p>
<p>The story is based on an old 2D RPG I have made long ago, with the RM2k tool kit. The idea was to implement the story to this game, but leave behind the turn-base RPG. I will try and get that game up on my blog when I have the available time.</p>
<p>So yes, its going to be a mixture of rpg and action-adventure with more emphasis on the latter since the idea was influenced through games such as Zelda: Ocarina of Time  series.</p>
<p>The game will be third-person perspective(see previous post of what this may look like), in a open roaming world. Though this won&#8217;t be just an unlimited landscape, I will be segmenting different parts of the world. The assigment brief I have received today requires a complete game prototype. In the time span available I can guess that I could probably get one or 2 segments of the whole game world into the prototype.<br />
Anyways the list continues &#8211; The player will take on the role of a character through this fantasy game. This allows me to add some interesting aspects to the game. One of them is the use of spell system that can then be upgrade by finding better ones or using it various times allowing to gain extra experience.</p>
<p>Within the game the player may encounter amulets that then can be attached to a weapon the player character is using, allowing the player to use its respective spell type. As the player progresses through the game they can gain much more stronger amulets from hard enemies, bosses, finding them, or doing quests. It&#8217;s a similar idea to the materia system in Final Fantasy.</p>
<p>Spells in this game will bare the following types:<br />
- Damage spell<br />
- Buff spell (for player and/or sword)<br />
- Debuff spell (single)<br />
- Debuff spell (Area of effect)</p>
<p>Some of these spells can be casted at close or long range.<br />
The limitation is that for each individual weapon the player finds, the number of available slots can vary from 0-4. So at one time the player will be given a maximum of 4 useable spells to cast during combat. These amulets are not totally necessary as the player can go through the game will little use of spell, though when encountering harder enemies, the use of spells could help.<br />
Other note in the spell system was to try to allow each amulet to gain experience depending on the amount of use by the player, thus making each spell much more stronger that the other. This idea may or may not be implemented at the end, as the player and spells will improve the further the progress.</p>
<p>So there will be no stats for the player such as Strength, Stamina, or Agility. The damage a player character can do to an enemy will be static. The health and magic points will begin at a defined amount and can then be upgrade by finding items in the world, your usual Zelda upgrades, where you would regularly search for clues and find these items, many of these items can be gained through doing a number of quests.</p>
<p>The meat of the game is the combat system. Again I stress there is alot of Zelda influence on this game, but I didn&#8217;t want to recreate the same systems in just the way Zelda has been doing them.</p>
<p>In each combat the player can lock-on to the target, this way the player may side step around the enemy. The player can attack/defend in 4 different ways. These are the directional attacks.<br />
Examples:<br />
- player can make the character attack the head of the enemy by pressing the forward direction and the attack button.<br />
- Character can attack left side of the enemy by using pressing left direction and attack<br />
etc. The other two are attacking on the right hand side and thrusting towards the body of the enemy(back direction + attack)</p>
<p>Obviously there will be various NPC and object interactions within the world. As I have stated, the areas in the world is free to roam in, so that player can get to various places by jumping there or finding a possible route.</p>
<p>So that&#8217;s the basic ideas behind the game. It&#8217;s all so far just simple ideas, but I will get to showing the appropriate concepts and designs of the game in due time.</p>
<p>For the engine itself I have research quiet a number of engines. I originally planned to use an object system with various types of manager connected to it, but eventually having read on object-component systems, I thought it would be alot more interesting and better to implement. After looking up on Component-Objects system I stumbled upon <a href="http://www.opengameengine.org/" target="_blank">OGE</a> (OpenGameEngine). Which uses an Component-Object system similar to that used in Dugeon Keeper.<br />
I have yet to use this engine and mess around with it, but the concepts the developer made in his wiki site got be thinking of the ComponentObject system in the engine. I have used the fundemental designed of the engine systems used in OGE shown below with some changes:</p>
<p><center><br />
<img src="http://i13.photobucket.com/albums/a280/ky21185/clip_image002.jpg" /><br />
</center><br />
The implementations however are going to be my own, as the various subsystems in the engine will use various types of coded or middleware APIs.<br />
All of these subesections are explained through the game technical documentation, which I will try and post after submission in the end of this week.</p>
]]></content:encoded>
			<wfw:commentRss>http://ronenix.com/2007/12/19/agt-engine-technical-documentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
