<?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>Minalien.com &#187; Tutorials</title>
	<atom:link href="http://minalien.com/category/tutorials/feed/" rel="self" type="application/rss+xml" />
	<link>http://minalien.com</link>
	<description>Game Programming Weblog &#38; Portfolio</description>
	<lastBuildDate>Sat, 21 Jan 2012 23:05:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>GLZelda 1: Introduction and Setup (Updated/Fixed Links)</title>
		<link>http://minalien.com/2012/01/glzelda-1-introduction-and-setup/</link>
		<comments>http://minalien.com/2012/01/glzelda-1-introduction-and-setup/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 04:39:24 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[GLZelda]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Fixed-Function]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[PDF]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=311</guid>
		<description><![CDATA[And the first tutorial from the repurposed GLZelda tutorial is up! Here&#8217;s the PDF, Source, and an OS X binary (sorry, my Windows machine is packed away at the moment).
GLZelda-1-Src
GLZelda-1-Bin-OSX
GLZelda-1-PDF
Update:
Fixed the links&#8230; ]]></description>
			<content:encoded><![CDATA[<p>And the first tutorial from the repurposed GLZelda tutorial is up! Here&#8217;s the PDF, Source, and an OS X binary (sorry, my Windows machine is packed away at the moment).</p>
<p><a href='http://minalien.com/wp-content/uploads/2012/01/GLZelda-1-Src.zip'>GLZelda-1-Src</a><br />
<a href='http://minalien.com/wp-content/uploads/2012/01/GLZelda-1-Bin-OSX.zip'>GLZelda-1-Bin-OSX</a><br />
<a href='http://minalien.com/wp-content/uploads/2012/01/GLZelda-1-PDF.pdf'>GLZelda-1-PDF</a></p>
<p><strong>Update:</strong><br />
Fixed the links&#8230; <_<</p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2012/01/glzelda-1-introduction-and-setup/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SFML Tutorial Series Changeover</title>
		<link>http://minalien.com/2012/01/sfml-tutorial-series-changeover/</link>
		<comments>http://minalien.com/2012/01/sfml-tutorial-series-changeover/#comments</comments>
		<pubDate>Tue, 03 Jan 2012 20:41:47 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[SFML Zelda (Discontinued)]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[SFML]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Zelda]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=301</guid>
		<description><![CDATA[I&#8217;m sorry to the people that have been eagerly anticipating the next tutorials in my SFML-Zelda series (I&#8217;m honestly surprised that I&#8217;ve gotten any results, especially considering the state of the current tutorials), but I&#8217;ve decided to scrap SFML in favor of OpenGL. It will still be a C++ game  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m sorry to the people that have been eagerly anticipating the next tutorials in my <em>SFML-Zelda</em> series (I&#8217;m honestly surprised that I&#8217;ve gotten any results, especially considering the state of the current tutorials), but I&#8217;ve decided to scrap SFML in favor of OpenGL. It will still be a C++ game programming tutorial series, and will be using <em>Legend of Zelda</em> as a backdrop for it, but at this point I&#8217;m tired of the problems SFML has given me that shouldn&#8217;t exist&#8211; at least with OpenGL, I&#8217;ll know that the problems lie with me. For those still interested, I still plan to kick the tutorial off no later than early February, though specific dates will depend on when my stuff arrives after the move. I&#8217;ll focus the tutorials around OpenGL 2.x because of its wider support base, but we will be using a shader-based graphics pipeline for it. I will try to cover the basics of OpenGL as best I can, but I greatly recommend taking a look at <em><a href="http://www.amazon.com/Beginning-OpenGL-Game-Programming-Second/dp/159863528X/">Beginning OpenGL Game Programming, Second Edition</a></em>&#8211; it&#8217;s what I learned from, and it served me well.</p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2012/01/sfml-tutorial-series-changeover/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TGB 1.7.5 &#8211; Multiple Animations for Sprite</title>
		<link>http://minalien.com/2011/07/tgb175-multiple-animations/</link>
		<comments>http://minalien.com/2011/07/tgb175-multiple-animations/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 06:34:01 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[TGB]]></category>
		<category><![CDATA[Torque]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Zelda]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=258</guid>
		<description><![CDATA[It seems that once again I&#8217;ve heard the call to write a one-shot tutorial (and strangely enough, this one is also one related to animations). This time, the call for help comes from a user on the GarageGames forums, from a user jumping into the Torque engine line with Torque Game Builder 1.7.5. I  [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that once again I&#8217;ve heard the call to write a one-shot tutorial (and strangely enough, this one is also one related to animations). This time, the call for help comes from a user on the <a href="http://garagegames.com">GarageGames</a> forums, from a user jumping into the Torque engine line with Torque Game Builder 1.7.5. I have a great amount of respect and love for the Torque engines, and the GarageGames team and community have a lot of people that are really fun to be around (in contrast to my experience with the Unity boards, which seems to have no shortage of elitists).</p>
<p><a href='http://minalien.com/wp-content/uploads/2011/07/ZeldaGame-game.zip'>ZeldaGame- game assets</a></p>
<p>Once again, we will be writing up a Zelda-like animation, because the file&#8217;s on-hand and already formatted and somewhat optimized for our use. And so, if you don&#8217;t have it from following previous tutorials, here it is again:</p>
<p><div id="attachment_193" class="wp-caption aligncenter" style="width: 522px"><a href="http://minalien.com/wp-content/uploads/2011/06/link.png" rel="lightbox[258]" title="ALTTP Link"><img src="http://minalien.com/wp-content/uploads/2011/06/link.png" alt="" title="ALTTP Link" width="512" height="256" class="size-full wp-image-193" /></a><p class="wp-caption-text">Sample Animation Sheet</p></div><br />
<span id="more-258"></span></p>
<h3>Setup</h3>
<p>Start out by creating a new project in Torque Game Builder. I am using version 1.7.5 on my Mac, but there should be no differences between platforms or versions for this project. I&#8217;m calling mine &#8220;ZeldaGame&#8221; and including the executable, but that&#8217;s personal preference more than necessity. Once you&#8217;ve got the project created, make sure you create a new image map from the Link animation sheet above by either dragging the file into the assets pane on the right (under Static Sprites &#8211; only works on Windows), or by using the Create ImageMap button.</p>
<p>After creating the image map, double-click on it so that we can edit its properties as follows:<br />
<div id="attachment_260" class="wp-caption aligncenter" style="width: 729px"><a href="http://minalien.com/wp-content/uploads/2011/07/Screen-shot-2011-07-29-at-10.25.26-PM.png" rel="lightbox[258]" title="Link Image Map"><img src="http://minalien.com/wp-content/uploads/2011/07/Screen-shot-2011-07-29-at-10.25.26-PM.png" alt="" title="Link Image Map" width="719" height="418" class="size-full wp-image-260" /></a><p class="wp-caption-text">Link Image Map</p></div></p>
<p><strong>Image Mode:</strong> Cell<br />
<strong>Filter Mode:</strong> Smooth<br />
<strong>Cell Height:</strong> 64<br />
<strong>Cell Width:</strong> 64</p>
<p>This will break our sprite sheet into its individual frames, ready to be used in animations. It&#8217;s best to keep as many frames of an animation set within the same file as possible, because it will help the Torque engine to limit the number of times it is changing the texture context during the game&#8217;s execution.</p>
<h3>Animation Naming Scheme</h3>
<p>It is important to come up with a naming scheme for your assets and your animations. In this sample, it was fine to leave Link&#8217;s image name as linkImageMap, because it&#8217;s the only image we&#8217;re going to have. Your animation names, however, should have a structured and defined naming scheme, because it will make things much easier when you are writing the behavior (or class, if that is your preference) that will control which animation we are displaying. For this project, we will use &#8220;linkRunDirectionAnimation&#8221; for our names; <em>link</em> being the name of the entity, <em>Run</em> being the name of the object&#8217;s state (running, as opposed to swimming or dying), <em>Direction</em> being the direction he is running (North, South, East, or West), and Animation to denote that this is an animation resource.</p>
<p>We will now create four animations: North, South, East, and West. Click the Create New Animation button, and select the <em>linkImageMap</em> image as the base for our animation. Double-click each frame, in sequence, to add it to the animation. Change Frames Per Second for the animation to 15 (so that it looks good), and name the animation based on the direction he is going (such as linkRunSouthAnimation). Create the remaining animations, and we can begin programming our behavior.</p>
<h3>Behave, Link!</h3>
<p>Now we are going to write a behavior script to define the Link object&#8217;s interaction. In this project, our behavior is going to control everything about our player- it will store the object&#8217;s state, ensure that the proper animation is playing, and we will be able to edit the player&#8217;s movement speed within the editor interface. Open your project&#8217;s folder and create a new file in <em>ZeldaGame/game/behaviors/</em> folder called <em>playerBehavior.cs</em>. You can use Notepad, Text Edit, Torsion, TextMate, or whatever your TorqueScript editor preference to write these scripts, so long as it is saved without special formatting data that may occur from applications such as word processing applications.</p>
<pre class="brush: cpp; title: ZeldaGame/game/behaviors/playerBehavior.cs; notranslate">// Make sure the PlayerBehavior object doesn't already exist
if(!isObject(PlayerBehavior))
{
	// Create &amp; Define the template
	%template = new BehaviorTemplate(PlayerBehavior);

	%template.friendlyName = &quot;Player Controls&quot;;	// This is the name that will appear in the Behaviors property
	%template.behaviorType = &quot;Player&quot;;	// This will be the category under which the behavior appears
	%template.description = &quot;Player input for the Zelda sample&quot;;	// This will provide the user with a description of the property

	// Behavior fields will expose values to the editor interface
	// Note that, unlike the Torque Game Builder documentation's used of simply
	// &quot;Up&quot; and &quot;Down&quot;, we must define &quot;keyboard&quot; as the source for the binding.
	%template.addBehaviorField(runNorthKey, &quot;Run- North&quot;, keybind, &quot;keyboard up&quot;);
	%template.addBehaviorField(runSouthKey, &quot;Run- South&quot;, keybind, &quot;keyboard down&quot;);
	%template.addBehaviorField(runWestKey, &quot;Run- West&quot;, keybind, &quot;keyboard left&quot;);
	%template.addBehaviorField(runEastKey, &quot;Run- East&quot;, keybind, &quot;keyboard right&quot;);

	// Bind the Movement Speed for Link
	%template.addBehaviorField(runSpeed, &quot;Movement Speed&quot;, float, 15.0);

	// Movement Flags
	%template.direction = &quot;South&quot;;
	%template.FLAG_RUN_SOUTH = 0;
	%template.FLAG_RUN_NORTH = 0;
	%template.FLAG_RUN_EAST = 0;
	%template.FLAG_RUN_WEST = 0;
}</pre>
<p>In this first portion, we are actually defining the behavior template. As this is covered in the TGB documentation, I&#8217;m not going to go into too much detail- I recommend <a href="http://docs.garagegames.com/tgb/official/index.html?content/documentation/Behavior%20Tutorials/Fish%20Game%20Tutorial.html">reading up</a> if you&#8217;re unfamiliar with behaviors in TGB. Down at the bottom, though, we set some flags that we will use for checking our movement. The first, &#8220;direction,&#8221; will allow us to determine which directional animation we wish to display (North, South, East, or West). The following four are used to determine whether the associated key is being held, as we want to use prioritized animations with movement, but don&#8217;t want to lose the player&#8217;s ability to run in multiple directions.</p>
<pre class="brush: cpp; highlight: [5]; title: ZeldaGame/game/behaviors/playerBehavior.cs; notranslate">// Called when the behavior is added to an object by the editor
function PlayerBehavior::onBehaviorAdd(%this)
{
	// Enable the Update callback
	%this.owner.enableUpdateCallback();

	// Make sure that the moveMap object exists before attempting
	// to bind keys to it
	if(!isObject(moveMap))
		return;

	// Bind our movement keys
	moveMap.bindObj(getWord(%this.runNorthKey, 0), getWord(%this.runNorthKey, 1), &quot;runNorth&quot;, %this);
	moveMap.bindObj(getWord(%this.runSouthKey, 0), getWord(%this.runSouthKey, 1), &quot;runSouth&quot;, %this);
	moveMap.bindObj(getWord(%this.runEastKey, 0), getWord(%this.runEastKey, 1), &quot;runEast&quot;, %this);
	moveMap.bindObj(getWord(%this.runWestKey, 0), getWord(%this.runWestKey, 1), &quot;runWest&quot;, %this);
}</pre>
<p>Again, all of this is covered in the Torque Game Builder documentation. Note, however, the highlighted line. Here, we are enabling the onUpdate() callback function, which will be called every frame to allow us to update the object where needed. We will use this to check the animation against the current object state, and to update movement information.</p>
<pre class="brush: cpp; title: ZeldaGame/game/behaviors/playerBehavior.cs; notranslate">// Utility Function - Get what our current animation name is supposed to be
function PlayerBehavior::whichAnimation(%this)
{
	return &quot;linkRun&quot; @ %this.direction @ &quot;Animation&quot;;
}

// Movement Keys
function PlayerBehavior::runNorth(%this, %val)
{
	%this.FLAG_RUN_NORTH = %val;
}

// [...]
</pre>
<p>Because of their simplicity, I&#8217;m not going to include all of the movement response functions in this online sample- they each just edit their associated flag based on whether the key was pressed or released. The utility function, whichAnimation, will allow us to quickly get the animation that we are currently using. Normally, we would use an animation state variable in place of &#8220;Run,&#8221; but I&#8217;ve eschewed it in favor of simplicity.</p>
<pre class="brush: cpp; title: ZeldaGame/game/behaviors/playerBehavior.cs; notranslate">// Player Update
function PlayerBehavior::onUpdate(%this)
{
	%standing = false;

	// Directional Animation Priority
	if(%this.FLAG_RUN_SOUTH)
		%this.direction = &quot;South&quot;;
	else if(%this.FLAG_RUN_NORTH)
		%this.direction = &quot;North&quot;;
	else if(%this.FLAG_RUN_EAST)
		%this.direction = &quot;East&quot;;
	else if(%this.FLAG_RUN_WEST)
		%this.direction = &quot;West&quot;;
	else
		%standing = true;

	// Movement
	%this.owner.setLinearVelocityY((%this.FLAG_RUN_SOUTH - %this.FLAG_RUN_NORTH) * %this.runSpeed);
	%this.owner.setLinearVelocityX((%this.FLAG_RUN_EAST - %this.FLAG_RUN_WEST) * %this.runSpeed);

	// Check the animation, and set it if it must be updated
	if(%this.owner.getAnimationName() !$= %this.whichAnimation())
		%this.owner.setAnimation(%this.whichAnimation());

	// If we're standing still, use the 'idle' frame (0)
	if(%standing)
		%this.owner.setAnimationFrame(0);
}</pre>
<p>Here is the meat of our project. First, we create a temporary variable that we can set to mark the player as simply standing there (rather than walking in place, a la <em>Final Fantasy</em>). We check each of our movement flags sequentially, allowing us to prioritize which direction our player will be considered to be facing (South > North > East > West), and if none of them are pressed, we set the player to be standing (the direction variable will persist across frames, so the player will be facing the last direction he was moving). Next, we set the linear velocity -the amount the player moves each frame- in both vertical (Y) and horizontal (X) axes by calculating the value of the directional flags multiplied by the run speed (if the south and north keys are pressed together, the player will not move in that direction, for example (1-1=0=false)).</p>
<p>Finally, we check the animation&#8217;s name and compare it to our whichAnimation() function, and if it is not already set to the appropriate animation, we change it to such with setAnimation(). Note that these are called on the behavior&#8217;s <strong>owner</strong>, not the behavior itself &#8211; and you will want to make sure that the owner of the behavior (the object to which the behavior was assigned) is a t2dAnimatedSceneObject or a derivative of such (Animated Sprites dragged from the editor window are <em>t2dAnimatedSceneObject</em>s), so that the animation functions actually work. If the player is standing (<em>%standing == true</em>), we set the animation frame to 0, which is perfect for our idle image. You might also choose to include an idle animation, set as another animation state, if you wish to have an animated idle object.</p>
<h3>Tying it all Together</h3>
<p>Now, you will want to either close out the editor and re-open it, or you will want to go to Project->Reload Project in order for the editor to automatically load in our behaviors. Drag your South animation over from the editor window, under Animated Sprites, and place Link wherever you&#8217;d like. Next, select the object we just placed and go into the Edit pane. Under the Behaviors category, select &#8220;Player Controls&#8221; from the drop-down menu and click the + button the left to add the behavior to the player object.</p>
<div id="attachment_270" class="wp-caption aligncenter" style="width: 533px"><a href="http://minalien.com/wp-content/uploads/2011/07/Screen-shot-2011-07-29-at-11.30.46-PM.png" rel="lightbox[258]" title="ZeldaGame - Behaviors"><img src="http://minalien.com/wp-content/uploads/2011/07/Screen-shot-2011-07-29-at-11.30.46-PM.png" alt="" title="ZeldaGame - Behaviors" width="523" height="297" class="size-full wp-image-270" /></a><p class="wp-caption-text">Player Controls behavior</p></div>
<p>Now simply press Play, and use the arrow keys to move Link around. Congratulations, you&#8217;ve now got Link running around in the middle of absolutely nothing!</p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/07/tgb175-multiple-animations/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SFML Zelda Tutorial 3: Events &amp; Design Discussion</title>
		<link>http://minalien.com/2011/07/sfml-zelda-3/</link>
		<comments>http://minalien.com/2011/07/sfml-zelda-3/#comments</comments>
		<pubDate>Thu, 21 Jul 2011 03:01:05 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[SFML Zelda (Discontinued)]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SFML-Zelda]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=253</guid>
		<description><![CDATA[Introduction
Welcome to my newest tutorial series: SFML Zelda. Throughout this tutorial series, we will be building a two-dimensional Legend of Zelda fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial is a basic game programming tutorial, written with C++ and  [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Welcome to my newest tutorial series: <em>SFML Zelda</em>. Throughout this tutorial series, we will be building a two-dimensional <em>Legend of Zelda</em> fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial <strong>is</strong> a basic game programming tutorial, written with C++ and the <em><a href="http://www.sfml-dev.org">SFML 1.6</a></em> game library. The series <strong>is not</strong> covering advanced game development techniques. There are many things that I will cover in this tutorial that are better handled by other means, and I encourage you to look for other resources and expand your knowledge.</p>
<h3>Code License</h3>
<p>All code in this tutorial series is released under the zLib 1.2.2 License (can be viewed <a href="http://minalien.com/2011/06/sfml-zelda-1/">here</a>).</p>
<h3>Tutorial 3 Overview</h3>
<p>For this tutorial, I am going to be taking a different approach. There is only a minor amount of code in this tutorial, as I am instead going to focus primarily on an explanation of the system that we are designing for the game, and some of the reasoning behind the decisions that I will be making regarding it. The code will be switching us from using the standard Window class to the RenderWindow class within the SFML Graphics package, and will change our system to use an event structure, rather than relying on the task manager or debugger to kill the application instance.</p>
<p><a href="https://github.com/Minalien/SFML-Zelda">SFML-Zelda GitHub Project</a></p>
<h3>Table of Contents</h3>
<p><a href="http://minalien.com/2011/07/sfml-zelda-3/2/">Updated Code</a><br />
<a href="http://minalien.com/2011/07/sfml-zelda-3/3/">System Overview</a></p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/07/sfml-zelda-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SFML Zelda Tutorial 2B:: Project Setup in XCode 4</title>
		<link>http://minalien.com/2011/07/sfml-zelda-2b/</link>
		<comments>http://minalien.com/2011/07/sfml-zelda-2b/#comments</comments>
		<pubDate>Sat, 16 Jul 2011 19:59:57 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[SFML Zelda (Discontinued)]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SFML-Zelda]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=224</guid>
		<description><![CDATA[Introduction
Welcome to my newest tutorial series: SFML Zelda. Throughout this tutorial series, we will be building a two-dimensional Legend of Zelda fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial is a basic game programming tutorial, written with C++ and  [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Welcome to my newest tutorial series: <em>SFML Zelda</em>. Throughout this tutorial series, we will be building a two-dimensional <em>Legend of Zelda</em> fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial <strong>is</strong> a basic game programming tutorial, written with C++ and the <em><a href="http://www.sfml-dev.org">SFML 1.6</a></em> game library. The series <strong>is not</strong> covering advanced game development techniques. There are many things that I will cover in this tutorial that are better handled by other means, and I encourage you to look for other resources and expand your knowledge.</p>
<h3>Code License</h3>
<p>All code in this tutorial series is released under the zLib 1.2.2 License (can be viewed <a href="http://minalien.com/2011/06/sfml-zelda-1/">here</a>).</p>
<h3>Tutorial 2B Overview</h3>
<p>In this tutorial, we are going to establish the SFML Zelda project in Xcode 4. I am using a beta copy of Xcode 4.2, so there may be minor differences between our build environments, but these should be minimal. In this tutorial, we will obtain a copy of the SFML SDK and build a minor test project.</p>
<p><a href="https://github.com/Minalien/SFML-Zelda">SFML-Zelda GitHub Project</a></p>
<h3>Table of Contents</h3>
<p><a href="http://minalien.com/2011/07/sfml-zelda-2b/2">(I)Obtaining SFML</a><br />
<a href="http://minalien.com/2011/07/sfml-zelda-2b/3">(II) Creating the <em>SFML-Zelda</em> Project</a><br />
<a href="http://minalien.com/2011/07/sfml-zelda-2b/4">(III) Project Configuration</a><br />
<a href="http://minalien.com/2011/07/sfml-zelda-2b/5">(IV) Test Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/07/sfml-zelda-2b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Writing a simple 2D Animation system in XNA</title>
		<link>http://minalien.com/2011/06/writing-a-simple-2d-animation-system-in-xna/</link>
		<comments>http://minalien.com/2011/06/writing-a-simple-2d-animation-system-in-xna/#comments</comments>
		<pubDate>Sun, 26 Jun 2011 06:00:22 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=192</guid>
		<description><![CDATA[A friend of mine recently asked me for some help on 2D animation within XNA, and so I wrote up a quick, and somewhat simplistic, system. Figured it wouldn&#8217;t hurt to go ahead and write up a small tutorial and post it here, since it&#8217;s similar to the animation system that I&#8217;m planning on using in the  [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine recently asked me for some help on 2D animation within XNA, and so I wrote up a quick, and somewhat simplistic, system. Figured it wouldn&#8217;t hurt to go ahead and write up a small tutorial and post it here, since it&#8217;s similar to the animation system that I&#8217;m planning on using in the <em>SFML-Zelda</em> tutorial series (which I&#8217;m planning on picking back up, now that I&#8217;ve returned from my CCNA course).</p>
<p><strong>Downloads</strong><br />
<a href='http://minalien.com/wp-content/uploads/2011/06/AnimationDemo-Bin.zip'>AnimationDemo Binary</a><br />
<a href='http://minalien.com/wp-content/uploads/2011/06/AnimationDemo-Src.zip'>AnimationDemo &#8211; Source</a></p>
<p><strong>Setup</strong><br />
Go ahead and set up an XNA project. The system I&#8217;m showing here is rather simplistic, and has many areas in which it can be improved for efficiency, but this isn&#8217;t something that&#8217;s going to require a complex project setup.</p>
<p><strong>How it will work</strong><br />
This animation system will include a very basic Finite State Machine-style animation, using a single sprite sheet for rendering. While scene objects in this sample only use a single sprite sheet per object, it could be modified so that animation data is stored outside of the scene object, which will pretty much be necessary (you&#8217;ll see why in a minute) for anything more complex than this sample.</p>
<p>Sprite sheets are expected to be set up with each included animation in the sheet containing an equal number of frames. Each animation state gets its own row within the sheet, with each frame of the animation taking up one column per row. Every frame must be the same size, and there is no assumed spacing or borders for the sheet or the frame. The image I am going to use in this sample is a running animation from <em>The Legend of Zelda: A Link To The Past</em>.</p>
<div id="attachment_193" class="wp-caption aligncenter" style="width: 522px"><a href="http://minalien.com/wp-content/uploads/2011/06/link.png" rel="lightbox[192]" title="ALTTP Link"><img src="http://minalien.com/wp-content/uploads/2011/06/link.png" alt="" title="ALTTP Link" width="512" height="256" class="size-full wp-image-193" /></a><p class="wp-caption-text">Fig 1: Sample Animation Sheet</p></div>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/06/writing-a-simple-2d-animation-system-in-xna/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SFML Zelda Tutorial 2A:: Project Setup In Visual C++ 2010</title>
		<link>http://minalien.com/2011/06/sfml-zelda-2a/</link>
		<comments>http://minalien.com/2011/06/sfml-zelda-2a/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 00:46:59 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[SFML Zelda (Discontinued)]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SFML-Zelda]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=116</guid>
		<description><![CDATA[Introduction
Welcome to my newest tutorial series: SFML Zelda. Throughout this tutorial series, we will be building a two-dimensional Legend of Zelda fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial is a basic game programming tutorial, written with C++ and  [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Welcome to my newest tutorial series: <em>SFML Zelda</em>. Throughout this tutorial series, we will be building a two-dimensional <em>Legend of Zelda</em> fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial <strong>is</strong> a basic game programming tutorial, written with C++ and the <em><a href="http://www.sfml-dev.org">SFML 1.6</a></em> game library. The series <strong>is not</strong> covering advanced game engine development techniques. There are many things that I will cover in this tutorial that are better handled by other means, and I encourage you to look for other resources and expand your knowledge.</p>
<h3>Code License</h3>
<p>All code in this tutorial series is released under the zLib 1.2.2 License (can be viewed <a href="http://minalien.com/2011/06/sfml-zelda-1/">here</a>).</p>
<h3>Tutorial 2A Overview</h3>
<p>In this tutorial, we are going to establish the SFML Zelda project in Visual C++ 2010. I have a copy of Visual Studio 2010 Professional, so there may be some minor differences between my screenshots and what you have, but the functionality and locations of settings should be exactly the same, and there will be no functional difference in the builds for our projects. In this tutorial, we will first retrieve a copy of SFML then recompile it using Visual C++ 2010. We do this because the libraries provided for SFML are compiled against VS2008, and the libraries have incompatibilities that cause problems when attempting to run the program (the program will appear to have compiled with no problems).</p>
<p>After we build the project, we are going to establish the Visual Studio solution for SFML-Zelda and configure Visual C++ to work with our directory structure. Finally, we will test our project setup by building a small sample project with SFML.<span id="more-116"></span></p>
<h3>Table of Contents</h3>
<p><a href="#I_Obtaining_SFML">(I) Obtaining SFML</a><br />
<a href="#II_ExtLib_Setup">(II) Placing the SFML Libraries</a><br />
<a href="#III_Create_Project">(III) Create the <em>SFML-Zelda</em> Project</a><br />
<a href="#IV_Project_Config">(IV) Project Configuration</a><br />
<a href="#V_Test_Code">(V) Test Code</a></p>
<h3><a name="I_Obtaining_SFML" style="color: black;"></a>(I) Obtaining SFML</h3>
<p>The first step to preparing SFML for Visual Studio 2010 is to obtain a copy of it. For these tutorials, I will assume the use of SFML 1.6 &#8211; if you wish to use SFML 2.0 then you proceed at your own risk. Go to the <a href="http://www.sfml-dev.org/download.php">SFML Download Page</a> and find the heading that says &#8220;C++ | version 1.6&#8243; We are going to download the Full SDK, because we need access to the SFML source code in order to recompile it. I recommend creating a separate folder on your computer for storing libraries &#8211; I do this because I prefer to include libraries that projects depend on with the project themselves, rather than storing (as many tutorials have you do) the files in your Visual C++ include and library directories.</p>
<p>After unzipping the files, open the &#8216;lib&#8217; folder and delete them. This will ensure that all of our library files are built against Visual Studio 2010, rather than 2008, and will allow us to proceed unimpeded. Next, open the &#8220;build,&#8221; then &#8220;vc2008&#8243; folders, then open SFML.sln &#8211; this is a Visual Studio 2008 Solution file, and so if you have VC2008 installed alongside VC2010, you will need to ensure that you open it with VC2010. Allow Visual C++ to do its magic in updating to the new solution format, then go ahead and close the conversion log.</p>
<p><div id="attachment_123" class="wp-caption alignright" style="width: 175px"><a href="http://minalien.com/wp-content/uploads/2011/06/Fig2_1.png" rel="lightbox[116]" title="SFML-Zelda : Figure 2.1"><img src="http://minalien.com/wp-content/uploads/2011/06/Fig2_1.png" alt="" title="SFML-Zelda : Figure 2.1" width="165" height="156" class="size-full wp-image-123" /></a><p class="wp-caption-text">Figure 2.1</p></div>The solution here includes the SFML libraries and all of the included samples. We don&#8217;t need to worry about the samples at the moment, but we want to make static Debug and Release builds to use for SFML-Zelda (you can do a DLL build if you choose. If you do this, make sure that you add SFML_DYNAMIC to the Preprocessor directives when we create the actual SFML-Zelda project). </p>
<p>Next, we need to select the type of build. There should be six build types: <em>Debug</em>, <em>Debug DLL</em>, <em>Debug static</em>, <em>Release</em>, <em>Release DLL</em>, and <em>Release static</em>. The <em>Debug</em> and <em>Release</em> builds only apply to the sample projects &#8211; we want <em>Debug static</em> and <em>Release static</em> to give us libraries to build against in each configuration. First, select <em>Debug static</em>, then Shift-select all of the projects with the &#8220;SFML-&#8221; prefix (should be under the SFML folder, as in <em>Fig 2.1</em>). Right-click, Build Selection, and wait for it to complete, then do the same for <em>Release static</em> &#8211; we now have SFML libraries to build against!</p>
<div id="attachment_126" class="wp-caption aligncenter" style="width: 400px"><a href="http://minalien.com/wp-content/uploads/2011/06/Fig2_2.png" rel="lightbox[116]" title="SFML Zelda : Figure 2.2"><img src="http://minalien.com/wp-content/uploads/2011/06/Fig2_2.png" alt="" title="SFML Zelda : Figure 2.2" width="390" height="152" class="size-full wp-image-126" /></a><p class="wp-caption-text">Figure 2.2</p></div>
<h3><a name="II_ExtLib_Setup"></a>(II) Placing the SFML Libraries</h3>
<p>Now that we&#8217;ve got the SFML libraries compiled into our static .lib files, we can move them somewhere the engine can take advantage of them. Go into the <em>ext/</em> directory that you created in the last tutorial for the project and create a new folder called &#8220;sfml-1.6.&#8221; In this folder, create two more folders: <em>inc</em> and <em>lib</em> &#8211; these will hold the SFML header files and library files, respectively. Back in the SFML directory that you compiled from earlier, go into the new lib/vc2008 folder and copy all of the .lib files over to the <em>ext/sfml-1.6/lib</em> directory for our project. Now go back to SFML, then go into the <em>Include</em> directory. Copy the <em>SFML</em> folder over to our <em>inc</em> folder, and we should be ready to create the project. (You should now have <em>ext/sfml-1.6/inc/SFML/(bunch of headers)</em>).</p>
<h3><a name="III_Create_Project"></a>(III) Create the <em>SFML-Zelda</em> Project</h3>
<p>We are now ready to create the <em>SFML-Zelda</em> project and begin configuring our build process. If you still have Visual Studio open from building SFML, go ahead and close the SFML solution. Otherwise, open up a new copy of Visual C++, and let&#8217;s get started. The first thing we want to do is create a new Win32 Project. For name, I suggest using &#8220;msvc2010&#8243; for the sake of the solution and directory names, but you can honestly choose whatever you wish. Under location, you want to select the <em>proj</em> directory we created in the first tutorial, and <strong>uncheck &#8220;Create directory for solution,&#8221;</strong> as this will cause some disparity in our configurations (will likely just be an extra ../ in our &#8220;additional include/library files&#8221; options, but it&#8217;s nice to be on the same page). In the Win32 Application Wizard, ensure that <em>Windows Application</em> is selected and <strong>check Empty Project</strong>, then click Finish. Congratulations, your project has been created, and we can begin configuration. Before we move on to the next step, though, go ahead and delete the three default folders: <em>Header Files</em>, <em>Resource Files</em>, and <em>Source Files</em> &#8211; we&#8217;re going to have a different scheme to our project directory structure.</p>
<h3><a name="IV_Project_Config"></a>(IV) Project Configuration</h3>
<h5>First File</h5>
<p>Now it&#8217;s time to configure our project. Visual C++ likes to use its default configuration &#8211; Microsoft&#8217;s a pain like that. Luckily, with a little bit of know-how it&#8217;s not all that difficult to switch to our setup. Before we configure, we need to create a blank C++ source file, so that we can access the C/C++ options in the project settings. This is where the biggest nuisance with Visual Studio comes up the most: you need to check the directory for the source file you&#8217;re about to create <em>every time you go to create a file</em>, or you&#8217;ll end up placing it in the wrong folder because Visual C++ is spiteful. I&#8217;ve done this a lot, and it&#8217;s annoying, but it&#8217;s the price we pay for a more efficient project directory structure.</p>
<p><div id="attachment_133" class="wp-caption aligncenter" style="width: 661px"><a href="http://minalien.com/wp-content/uploads/2011/06/Fig2_3.png" rel="lightbox[116]" title="SFML Zelda : Figure 2.3"><img src="http://minalien.com/wp-content/uploads/2011/06/Fig2_3.png" alt="" title="SFML Zelda : Figure 2.3" width="651" height="253" class="size-full wp-image-133" /></a><p class="wp-caption-text">Figure 2.3</p></div><br />
<div id="attachment_134" class="wp-caption aligncenter" style="width: 699px"><a href="http://minalien.com/wp-content/uploads/2011/06/Fig2_4.png" rel="lightbox[116]" title="SFML Zelda : Figure 2.4"><img src="http://minalien.com/wp-content/uploads/2011/06/Fig2_4.png" alt="" title="SFML Zelda : Figure 2.4" width="689" height="102" class="size-full wp-image-134" /></a><p class="wp-caption-text">Figure 2.4</p></div></p>
<p>We&#8217;re going to go ahead and create a Filter structure that matches the actual directory structure used in our project. So first, go into your <em>src</em> directory and create a <em>system</em> folder &#8211; all source and header files relating to platform code (most of which should be abstracted just fine through SFML) will go here throughout the project development. Then create a corresponding Filter in Visual Studio by right-clicking on your project, selecting Add, then New Filter (see Figure 2.3) and name it system. Now right-click on that filter and select Add -> New Item&#8230; and select &#8220;C++ File (.cpp)&#8221;. Here&#8217;s where we have to pay attention &#8211; first, name the file. We&#8217;ll go ahead and call it main.cc (I prefer the .cc file extension &#8211; it&#8217;s exactly the same as .cpp, so you can choose whatever you like, but I choose to stick to the Google Style Guidelines). This is where we&#8217;re going to end up storing our main() and WinMain() functions, so when we get to that point we&#8217;ll be good. Before you create the file, <strong>LOOK AT THE LOCATION BOX.</strong> It will likely contain something along the lines of <em>C:\Whatever\Programming\SFML-Zelda\proj\msvc2010\</em> &#8211; you need to replace this with <em>&#8220;SFML-Zelda\src\system&#8221;</em> &#8211; and you&#8217;ll need to change the directory every time you create a file in a different folder. After this, we can begin with project configuration.</p>
<h5>General</h5>
<p>Now right-click on your project (<em>not your solution!</em>) and select Properties. Here is where we start to have some fun. The first thing we want to do is ensure that we&#8217;re making changes that affect all build configurations &#8211; debug and release. So first, in the upper-left hand corner, change &#8220;Active (Debug)&#8221; to &#8220;All Configurations&#8221; next to the &#8220;Configuration:&#8221; label.</p>
<div id="attachment_136" class="wp-caption aligncenter" style="width: 611px"><a href="http://minalien.com/wp-content/uploads/2011/06/Fig2_5.png" rel="lightbox[116]" title="SFML Zelda : Figure 2.5"><img src="http://minalien.com/wp-content/uploads/2011/06/Fig2_5.png" alt="" title="SFML Zelda : Figure 2.5" width="601" height="101" class="size-full wp-image-136" /></a><p class="wp-caption-text">Figure 2.5</p></div>
<p>Now we will change the output directory. This is where our executable (.exe) files will be placed when we compile our project, and where we will be placing all game media when we begin to develop the game itself. By default, General should be open and Output Directory should be a visible option &#8211; if not, select General under Configuration Properties. The default Output Directory is &#8220;$(SolutionDir)$(Configuration)\&#8221; &#8211; you&#8217;re probably wondering what these are. In Visual Studio&#8217;s configurations, you can use environment and application variables by including the variable name within $( ) &#8211; which makes it easier for us to understand and change folders. $(SolutionDir) is the directory of the .sln (in our case, SFML-Zelda\proj\msvc2010) file, and $(Configuration) is the current build configuration. We want to output to SFML-Zelda\bin, so we want to change Output Directory to &#8220;../../bin/&#8221; for this project. Because we are placing all builds within the bin directory, regardless of whether they are Debug or Release, we need to differentiate the executable names. By default, Visual Studio uses the Project name &#8211; we are going to use &#8220;Zelda&#8221; with the build configuration appended to the project name (ex: Zelda_Debug.exe). If you named your project Zelda, go ahead and use $(ProjectName)_$(Configuration) &#8211; otherwise, use Zelda_$(Configuration) to make it look nice. One thing of importance is to make sure that you DO NOT INCLUDE A FILE EXTENSION. This will be done automatically. Go ahead and click &#8220;Apply&#8221; to save your configuration settings.</p>
<h5>C/C++ General</h5>
<p>Next, select General under C/C++ (if this is not available, make sure you created a C++ source file and not a header by mistake). Here, we will configure the project so that we can easily include the SFML headers for our project, and we will make an easier means of including header files throughout our project without using relative include directives at every turn. Under &#8220;Additional Include Directories,&#8221; enter <em>../../src/;../../ext/sfml-1.6/inc</em> &#8211; this will add our SFML include directory, and our source root, to our include paths. This will allow us to do things such as the following:</p>
<pre class="brush: cpp; title: ; notranslate">#include &quot;Window.hpp&quot;

#include &quot;game/stateMachine.h&quot;</pre>
<p>rather than a relative include, as:</p>
<pre class="brush: cpp; title: ; notranslate">#include &quot;Window.hpp&quot;

#include &quot;../../../game/stateMachine.h&quot;</pre>
<h5>Linker General, Linker Input</h5>
<p>Now we have to do the same thing for the Linker settings, so that it knows where to find our library files. Under Linker -> General, change &#8220;Additional Library Directories&#8221; (about mid-way through the available options) to <em>../../ext/sfml-1.6/inc</em>. Then, move down to Linker -> Input &#8211; here we are going to select our static libraries. These will be different for the Debug and Release builds, so change your configuration (as we did when we first opened the configurations) to Debug.</p>
<p>Click the drop-down arrow and select edit, then add the following libraries (one per line):<br />
sfml-system-s-d.lib<br />
sfml-window-s-d.lib<br />
sfml-audio-s-d.lib<br />
sfml-graphics-s-d.lib<br />
sfml-network-s-d.lib</p>
<p>Do the same for Release, but with the following:<br />
sfml-system-s.lib<br />
sfml-window-s.lib<br />
sfml-audio-s.lib<br />
sfml-graphics-s.lib<br />
sfml-network-s.lib</p>
<p>And now we are ready to enter some test code!</p>
<h3><a name="V_Test_Code"></a>(V) Test Code</h3>
<p>Open the system/main.cc file that you created earlier and enter the following code:</p>
<pre class="brush: cpp; title: src/system/main.cc; notranslate">#define WIN32_LEAN_AND_MEAN
#include &lt;Windows.h&gt;

#include &quot;SFML/Window.hpp&quot;

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
	sf::Window app(sf::VideoMode(800, 600, 32), &quot;SFML Window&quot;);

	while(true)
	{
		app.Display();
	}

	return 0;
}</pre>
<p>This will display an SFML window, though you won&#8217;t be able to do anything with it (even close it through normal means) &#8211; to close the application, you&#8217;ll want to press Shift+F5 within the Visual Studio window. To compile the project, select a Debug or Release configuration (up near the green Play button), press F7 to compile the solution, and then you can press F5 to debug the project. If a window appears, then congratulations, you&#8217;ve completed the first step in creating our SFML Zelda project!</p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/06/sfml-zelda-2a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SFML Zelda Tutorial 1:: Introduction &amp; Setup</title>
		<link>http://minalien.com/2011/06/sfml-zelda-1/</link>
		<comments>http://minalien.com/2011/06/sfml-zelda-1/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 20:34:21 +0000</pubDate>
		<dc:creator>Ken</dc:creator>
				<category><![CDATA[SFML Zelda (Discontinued)]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[SFML-Zelda]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://minalien.com/?p=103</guid>
		<description><![CDATA[Introduction
Welcome to my newest tutorial series: SFML Zelda. Throughout this tutorial series, we will be building a two-dimensional Legend of Zelda fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial is a basic game programming tutorial, written with C++ and  [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction</h3>
<p>Welcome to my newest tutorial series: <em>SFML Zelda</em>. Throughout this tutorial series, we will be building a two-dimensional <em>Legend of Zelda</em> fan game. Before we begin, I want to say what this tutorial is and is not. The tutorial <strong>is</strong> a basic game programming tutorial, written with C++ and the <em><a href="http://www.sfml-dev.org">SFML 1.6</a></em> game library. The series <strong>is not</strong> covering advanced game engine development techniques. There are many things that I will cover in this tutorial that are better handled by other means, and I encourage you to look for other resources and expand your knowledge.</p>
<h3>Code License</h3>
<p>I am releasing all code in this tutorial series under the version 1.2.2 (October 2004) zLib license.</p>
<pre class="brush: cpp; title: ; notranslate">/** Copyright (c) 2011 Ken &quot;Minalien&quot; Murray

This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.

Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:

   1. The origin of this software must not be misrepresented; you must not
   claim that you wrote the original software. If you use this software
   in a product, an acknowledgment in the product documentation would be
   appreciated but is not required.

   2. Altered source versions must be plainly marked as such, and must not be
   misrepresented as being the original software.

   3. This notice may not be removed or altered from any source
   distribution.
**/</pre>
<h3>Tutorial 1 Overview</h3>
<p>In this tutorial, I am going to cover the basic structure of our engine, and we will create the directory structure and explain my reasoning behind it. The project we will create will work on any platform for which there exists support for SFML, but I will be explaining the creation of the project on Windows and OS X 10.6 using Visual C++ 2010 (Express edition should work fine for this) and XCode 4 (Available from the Apple Developer Center if you are a registered developer, or for approximately $5 USD on the Mac App Store) respectively. Finally, I will be using the <a href="http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml">Google C++ Style Guide</a> for my code in these tutorials. Style guides aren&#8217;t entirely necessary, but they help to ensure that coding style remains consistent across between members of a development team.</p>
<h3>Directory Structure</h3>
<p>(Root Directory) &#8211; <em>I&#8217;m calling mine SFMLZelda, to differentiate it from my other projects</em><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bin &#8211; <em>This is where we will configure our IDEs to place project executables on build. It will <strong>not</strong> be included in the source control if you choose to set one up (I&#8217;m setting up GIT for this)</em><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ext &#8211; <em>This is where I am going to place external libraries. I do it this way because it&#8217;s easier for other developers to ensure they are using the same versions of all dependent libraries</em><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src &#8211; <em>This is where all of our source files will reside, and will be broken into its own smaller directory setup for each category of source files (video, system, etc).</em><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proj &#8211; <em>This is where the editor-specific project files will be placed. Each will have its own subdirectory to keep it separate from the others &#8211; msvc2010, xcode4, or whatever other editors you should choose to use.</em></p>
<p>I choose to set it up this way because it helps to keep external libraries separate (but available), keeps binaries and intermediate build data away from our source code directories, and keeps project directories separate and clean.</p>
<p>The next two tutorials are going to cover creation of the project &#8211; one in Visual C++ and one in XCode 4, including setting up SFML. The SFML libraries aren&#8217;t pre-built for Visual Studio 2010, so I will cover retrieving the code from the Git repository and building it for our game project. After the project is established, the third tutorial will cover the overall design concept behind our Zelda game, and then we will begin programming the project in earnest.</p>
]]></content:encoded>
			<wfw:commentRss>http://minalien.com/2011/06/sfml-zelda-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

