<?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>Making Video Games</title>
	<atom:link href="http://www.makingvideogames.com/feed" rel="self" type="application/rss+xml" />
	<link>http://www.makingvideogames.com</link>
	<description>Making Games for Fun and Beyond.</description>
	<lastBuildDate>Tue, 24 Nov 2009 19:52:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Learn Faster, Increase Motivation &amp; Focus.</title>
		<link>http://www.makingvideogames.com/game-programming/learn-faster-increase-motivation-focus.html</link>
		<comments>http://www.makingvideogames.com/game-programming/learn-faster-increase-motivation-focus.html#comments</comments>
		<pubDate>Tue, 24 Nov 2009 19:52:03 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=144</guid>
		<description><![CDATA[ 
Making games is a technical challenge. Even with good software and source code, it still requires concentration, motivation and a wide open mind for learning.
My &#8220;secret&#8221; for this is an absolutely incredible audio product. It is a binaural beat package that includes tracks that enhance motivation, concentration and focus, energy, and also tracks for energy, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Making games is a technical challenge. Even with good software and source code, it still requires concentration, motivation and a wide open mind for learning.</p>
<p style="text-align: justify;">My &#8220;secret&#8221; for this is an absolutely incredible audio product. It is a binaural beat package that includes tracks that enhance motivation, concentration and focus, energy, and also tracks for energy, falling asleep, endurance &amp; strength training.</p>
<p style="text-align: justify;">Just about all the help you need for anything you want to do successfully. Not just game programming!</p>
<p style="text-align: justify;">This is available on a &#8220;sales site&#8221;, but believe me, coming from someone who&#8217;s spent sleepless nights programming and designing, this is 200% worth it.</p>
<p style="text-align: justify;"><a href="http://www.makingvideogames.com/sound.html" target="_blank">Get them here</a>, it&#8217;s an investment that betters your ability to create for the rest of your life.</p>
<p style="text-align: justify;">The <a href="http://www.makingvideogames.com/game-programming">game programming</a> will be that much more productive and easier!</p>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/learn-faster-increase-motivation-focus.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Games for Money &#8211; New Business Plan</title>
		<link>http://www.makingvideogames.com/making-games-for-money/making-games-for-money.html</link>
		<comments>http://www.makingvideogames.com/making-games-for-money/making-games-for-money.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 09:39:04 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Making Games for Money]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=133</guid>
		<description><![CDATA[ 
If you&#8217;ve been here before and read the career page, you know I had a decent run at selling games in the past but didn&#8217;t succeed in maintaining it in the long run.
Research and discussions with other game creators led to very interesting new ideas and a new business plan for the near future. In [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;"> </p>
<p style="text-align: justify;">If you&#8217;ve been here before and read the career page, you know I had a decent run at selling games in the past but didn&#8217;t succeed in maintaining it in the long run.</p>
<p style="text-align: justify;">Research and discussions with other game creators led to very interesting new ideas and a new business plan for the near future. In this page I will share it with you, and perhaps you will like to discuss it with me and others (that&#8217;s what the commenting option is for).</p>
<p style="text-align: justify;">The plan breaks down as follows:</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Start spreading the word while you develop the game.</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">With <a href="http://www.gamespress.com" target="_blank">free press releases</a>, you can keep a large community of game journalists and bloggers informed of your progress one one or several projects at the same time. This gives you a chance to find future players before the project is finished, get feedback and if necessary terminate a bad project idea before wasting weeks or months completing it.</p>
<p style="text-align: justify;">Of course this requires one, or actually several websites (preferably one per project and a central site that links to each of them).</p>
<p style="text-align: justify;">Get a webhost that allows you to:</p>
<p style="text-align: justify;">- <a href="http://www.makingvideogames.com/send/hosting.html" target="_blank">have as many websites as you need at no extra cost</a> (other than domain registration).<br />
- <a href="http://www.makingvideogames.com/send/hosting.html" target="_blank">pay a low monthly fee</a> (instead of having to pay for the whole year up front).</p>
<p style="text-align: justify;"><em>Note that your application to join gamespress will be rejected if you use free hosting services.</em></p>
<p style="text-align: justify;">Even if you have only one project idea for now (or even none), others may come quickly and you will be glad to have options.</p>
<p style="text-align: justify;">Use the <a href="https://adwords.google.com/select/KeywordToolExternal" target="_blank">Google Keyword Tool</a> to find a good domain name that matches popular search queries. JoesArcadeGames.com for example will help attract people searching for arcade games. According to this tool, [arcade games] is searched 550 000 times on average each month. (Make sure you switch match type on the right from &#8220;Broad&#8221; to &#8220;Exact&#8221;). There are many other examples of popular search queries related to games.</p>
<p style="text-align: justify;">Good press releases will have bloggers and journalists link to your site, using your domain or site name as anchor text. This and your domain name and using the keywords throughout your site (in titles especially) will gradually improve your search engine rankings for that phrase.</p>
<p style="text-align: justify;">Use blogging software like <a href="http://www.wordpress.org" target="_blank">Wordpress </a>for easy updates and news releases (makingvideogames.com now runs on Wordpress). Wordpress is also more search engine friendly than static web pages.</p>
<p style="text-align: justify;">Write a description of your project. Set a release date and attempt your first press release to see how the gaming world likes your idea. You may be worried about it being stolen, but a press release that is dated is a great way to prove it was yours to begin with. Once your game is released there is nothing you can do to prevent copying anyway, but copycats will have a hard time getting press reviews from the same journalists that previously wrote about you.</p>
<p style="text-align: justify;">Publish a log of your progress that will keep you accountable. Use new press releases to announce the breaking of key milestones.</p>
<p style="text-align: justify;">Offer the opportunity to join a newsletter and use it to occasionally announce progress. By the time the game is done, you have a good readership and potential customers (if your game is commercial). If you do not, you know the game might not be a great idea ahead of time.</p>
<p style="text-align: justify;">Making a first freeware title, then a better commercial game (with better art, sound, music) based on the same concept sounds like the best way to start. You can monetize freeware with affiliate programs or contextual advertising if the press releases (and search engines) bring enough players. You can get players excited about the sequel by announcing it in the game and on your site, get feedback and some good social media buzz (Twitter, Facebook&#8230;).</p>
<p style="text-align: justify;">Things have changed! No need to pay for advertising. The only cost is roughly $10 a month for hosting.</p>
<p style="text-align: justify;">Resources:</p>
<p style="text-align: justify;"><a href="http://www.wordpress.org" target="_blank">Free games related PR.<br />
Multi domain web hosting.<br />
Wordpress.</a><br />
<a href="https://adwords.google.com/select/KeywordToolExternal" target="_blank">Google Keyword Tool.</a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/making-games-for-money/making-games-for-money.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Old school dungeon crawler</title>
		<link>http://www.makingvideogames.com/games/old-school-dungeon-crawler.html</link>
		<comments>http://www.makingvideogames.com/games/old-school-dungeon-crawler.html#comments</comments>
		<pubDate>Thu, 08 Oct 2009 15:23:12 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=127</guid>
		<description><![CDATA[Swords and Sorcery &#8211; Peregrine&#8217;s Song is a remake inspired by 3D adventure games.
If you were ever a fan of the first Might &#38; Magic (actually, I&#38;II), Dungeon Master, The Bard&#8217;s Tale, Eye of the Beholder, Wizardry&#8230;



Game description, screenshots, download.


You start out leaving your mother&#8217;s place, with nothing but few rations of food, your mind [...]]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify;">Swords and Sorcery &#8211; Peregrine&#8217;s Song is a remake inspired by 3D adventure games.</h2>
<div style="text-align: justify;"><big>If you were ever a fan of the first Might &amp; Magic (actually, I&amp;II), Dungeon Master, The Bard&#8217;s Tale, Eye of the Beholder, Wizardry&#8230;</big></p>
<div style="text-align: center;"><big><br />
</big></div>
<div style="text-align: justify;">
<h2><small>Game description, screenshots, download.</small></h2>
</div>
<div><big><br />
You start out leaving your mother&#8217;s place, with nothing but few rations of food, your mind set on finding adventure, which is only a few steps away because your home town is overrun by a clan of thieves.</big></div>
<p><big>One of your first missions will be to root out the leader and dispose of him.</p>
<p>Enter the arena for your first fights, experience and levels. Get the first items you need (weapons &amp; armor) from Sid&#8217;s Armory, train at Adrianna&#8217;s, visit the dangerous caverns, take your first steps outside into a vast world filled with goblins, kobolds, orcs, witches, wolves, bears, wyverns, dragons&#8230; Enter castles overrun with undead, cursed swamps and enchanted forests&#8230;</p>
<p>I know, it&#8217;s homemade and it has a few flaws here and there&#8230;  But all my love and passion for the genre went into it and I know you&#8217;ll love it!  <img style="width: 28px; height: 28px;" src="http://www.makingvideogames.com/images/D.JPG" alt="" /></p>
<p> </p>
<p></big></p>
<div style="text-align: center;"><big><img style="width: 493px; height: 370px;" src="http://www.makingvideogames.com/images/screenshots-sns/dungeon-master-remake-6.jpg" alt="dungeon classic game - explore town" /></big></p>
<div style="text-align: justify;"><big>Classic exploration of towns and castles in 3D perspective.</big></div>
<p><big><br />
</big></p>
<div style="text-align: center;"><img style="width: 500px; height: 370px;" src="http://www.makingvideogames.com/images/screenshots-sns/dungeon-master-remake-2.jpg" alt="dungeon classic game - palace entrance" /></div>
<div style="text-align: justify;"><big>This is the entrance to the Baronny Palace of Daguerre.  Such places abound throughout the game. Royalty and peasantry alike await you with quests for you to fulfill before the Queen herself eventually takes you into service.</big></div>
<p><img style="width: 500px; height: 370px;" src="http://www.makingvideogames.com/images/screenshots-sns/dungeon-master-remake-5.jpg" alt="dungeon classic game -foes" /><br />
<big><br style="font-family: Georgia;" /></big></p>
<div style="text-align: left;"><big>Foes of all shapes and sizes will try to bar the way to legendary strength and reputation.</big>  </div>
<div style="text-align: center;"><img style="width: 500px; height: 370px;" src="http://www.makingvideogames.com/images/screenshots-sns/dungeon-master-remake-7.jpg" alt="dungeon classic game - automapping" /></div>
<div style="text-align: left;"><big>The game world is big, but automapping will make it easy for you to explore the 30 maps.</big></div>
<div style="text-align: center;"><img style="width: 500px; height: 370px;" src="http://www.makingvideogames.com/images/screenshots-sns/dungeon-master-remake-10.jpg" alt="dungeon classic game - undead foes" width="1024" height="768" /></div>
<div style="text-align: left;"><big>Some encounters will chill your bones, others will delight you, none will leave you indifferent!</big></div>
<p><big><br />
</big></p>
<div style="text-align: center;"><big><a title="Swords and Sorcery - Peregrine's Song" href="http://www.makingvideogames.com/SwordsAndSorcery_0106.exe" target="_blank">Click here to download &#8211; freeware &#8211; no bundled junk of any kind!</a></big></div>
</div>
<p> </p></div>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/games/old-school-dungeon-crawler.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nessie Bowling</title>
		<link>http://www.makingvideogames.com/games/nessie-bowling.html</link>
		<comments>http://www.makingvideogames.com/games/nessie-bowling.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 16:38:55 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=56</guid>
		<description><![CDATA[Make Games &#8211; A Game Section can Easily Include Games Like This One:
 
Nessie&#8217;s Fantasy Bowling Game: A Game for Kids, They Tend to Miss on Purpose!
 
An old project, one of my very first. Nostalgia  
 

Back to games.

Post Footer automatically generated by Add Post Footer Plugin for wordpress.
]]></description>
			<content:encoded><![CDATA[<h1>Make Games &#8211; A Game Section can Easily Include Games Like This One:</h1>
<p> </p>
<h2>Nessie&#8217;s Fantasy Bowling Game: A Game for Kids, They Tend to Miss on Purpose!</h2>
<p> </p>
<p>An old project, one of my very first. Nostalgia <img src='http://www.makingvideogames.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p> </p>
<div style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="src" value="http://www.makingvideogames.com/Nessie.swf" /><embed type="application/x-shockwave-flash" width="550" height="400" src="http://www.makingvideogames.com/Nessie.swf" quality="high"></embed></object></div>
<p><a title="Making Games: Taking a break." href="http://www.makingvideogames.com/games">Back to games.<br />
</a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/games/nessie-bowling.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming tutorial RPG chapter 1 part 1</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-1.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-1.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 12:37:10 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Game Maker]]></category>
		<category><![CDATA[Making Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=26</guid>
		<description><![CDATA[Create an original RPG game: Chapter one.
 
You should start here to have a better idea where this is going!
 
After downloading the source code package (right-click &#8211; save as to download),double-click on it and this will start Game Maker.  Run the game to get a feel of what it does.  To do this, simply click on [...]]]></description>
			<content:encoded><![CDATA[<h1>Create an original RPG game: Chapter one.</h1>
<p> </p>
<p>You should <a title="Game programming main page." href="http://www.makingvideogames.com/game-programming/">start here</a> to have a better idea where this is going!</p>
<p> </p>
<p>After downloading the source code package (<a title="Source code for RPG tutorial chapter 1" href="http://www.makingvideogames.com/game-programming/RPG_Game_Code_1.gmk">right-click &#8211; save as to download</a>),<img title="source file" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/sourcecodeicon.jpg" alt="source file" width="35" height="45" />double-click on it and this will start Game Maker.  Run the game to get a feel of what it does.  To do this, simply click on the green icon that is labelled <em>Run the game.</em></p>
<p><em> </em> </p>
<p><img title="rungame" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/rungame1.jpg" alt="rungame" width="514" height="34" /><em> </em></p>
<p><em> </em></p>
<p>This will start the game in demonstration mode.  You do this from time to time to check if your game is running correctly.</p>
<p> </p>
<p>When your games aren&#8217;t working properly, and you want to see what&#8217;s going wrong, you can also run the game in debug mode. </p>
<p> </p>
<p><img title="rungamedebug" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/rungamedebug.jpg" alt="rungamedebug" width="514" height="34" /> </p>
<p> </p>
<p>It does the same as running the game, except you have a small window that gives you info on what is going on as the game runs.  This helps figure out what went wrong. </p>
<p> </p>
<p>So for now, you&#8217;re just running the game normally, and this is what you see.  Obviously, we&#8217;re just starting so it&#8217;s rather basic.  <span style="text-decoration: underline;">We&#8217;ll worry about graphics later.</span></p>
<p> </p>
<p><img title="advgamepicchapter1" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/advgamepicchapter1.jpg" alt="advgamepicchapter1" width="498" height="516" /> </p>
<p> </p>
<p>Click on the head or bag and rudimentary panels appear, each containing an inactive “square”.  Run your mouse over the square and it changes color, but that’s all for now.</p>
<p> </p>
<p>One of these panels is the inventory (bag) and the other is your character panel.</p>
<p> </p>
<p><img title="advgamepic2chapter1" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/advgamepic2chapter1.jpg" alt="advgamepic2chapter1" width="498" height="520" /> </p>
<p> </p>
<p>Click on the black top bar and hold the left mouse button down.  Move the mouse around and you see the panel moves accordingly. </p>
<p> </p>
<p>Click on the head or bag button again and the corresponding  panel disappears.</p>
<p> </p>
<p>There you have it, the early stages of interactive inventory management.</p>
<p> </p>
<p>You might have noticed that below the world view area there are five squares, similar to the ones in the inventory and character panels.  These make up the control bar.</p>
<p> </p>
<p>Soon you’ll be able to find items in the room that will automatically appear in your inventory (given there is still space there), click and drag these items to the character panel to equip them, do the same towards the control bar to be able to use them by clicking on it there.</p>
<p> </p>
<p>But for now, let’s look at how we’ve gotten these results so far (Please go back to Game Programming and select chapter 1 part 2 to continue).</p>
<p> </p>
<p><a title="Back to game programming" href="http://www.makingvideogames.com/game-programming/">Back to Game Programming </a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Tutorial RPG Chapter 1 Part 2</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-2.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-2.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:43:34 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Game Maker]]></category>
		<category><![CDATA[Making Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=30</guid>
		<description><![CDATA[Create an original RPG game: Chapter 1, part 2.
 
You should start here to have a better idea where this is going!
 
Game programming with dynamic objects.
 
Don&#8217;t worry if you don&#8217;t know what objects are just yet. It will become very clear as you read on.
 
Before doing anything you will need to create a room. Right-click on [...]]]></description>
			<content:encoded><![CDATA[<h1>Create an original RPG game: Chapter 1, part 2.</h1>
<p> </p>
<p>You should <a title="Game programming main page." href="http://www.makingvideogames.com/game-programming/">start here</a> to have a better idea where this is going!</p>
<p> </p>
<h3><small><big>Game programming with dynamic objects.</big></small></h3>
<h3><small><big></big></small> </h3>
<p><span style="text-decoration: underline;">Don&#8217;t worry if you don&#8217;t know what objects are just yet</span>. It will become very clear as you read on.</p>
<p> </p>
<p>Before doing anything you will need to create a room. Right-click on Rooms and create one. Don&#8217;t do anything with it yet.</p>
<p> </p>
<p><img title="create-room" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/create-room.jpg" alt="create-room" width="238" height="350" /></p>
<p><big></big><big><big></big></big></p>
<form action="http://www.aweber.com/scripts/addlead.pl" enctype="application/x-www-form-urlencoded" method="post"> </p>
<p>To create objects you first create the associated sprite(s). Sprites are just a buzz word for the small images that move around the screen (your character, the bag image, the table&#8230;) To include sprites you must first create them. At this stage I only created very basic sprites for the sake of having something. Once you have an image ready, right-click on the sprites folder and &#8220;upload&#8221; the sprite into the game.</p>
<p> </p>
</form>
<p><img title="uploading-sprite" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/uploading-sprite.jpg" alt="uploading-sprite" width="252" height="249" /> </p>
<p> </p>
<p>Then you create the objects (right click on Objects folder, just like sprites or rooms) Double-click on the new object in the panel, name it,</p>
<p> </p>
<p><img title="create-object" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/create-object.jpg" alt="create-object" width="604" height="364" /> </p>
<p> </p>
<p>and then you associate the sprite.</p>
<p> </p>
<p><img title="associate-sprite" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/associate-sprite.jpg" alt="associate-sprite" width="608" height="376" /> </p>
<p> </p>
<p>For dynamic objects, (objects that don&#8217;t always look the same) I often prefer to not associate sprites, but use the draw event to call a piece of code.</p>
<p> </p>
<p>The code will dispay the sprite according to variables that change as the player interacts with the game. This gives many more options than by using the limited point and click features.</p>
<p> </p>
<p><img title="draw-call-code" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/draw-call-code.jpg" alt="draw-call-code" width="611" height="377" /></p>
<p> </p>
<ol>
<li>
<p align="left">Create the draw event (pick it from the options that appear by clicking on Add Event).</p>
</li>
<li>
<p align="left">Select the Control Tab.</p>
</li>
<li>
<p align="left">Click and drag &#8220;Execute Code&#8221; from the Control Tab to the list of actions.</p>
</li>
</ol>
<p> </p>
<p>Several objects are used at this point.</p>
<p> </p>
<ol>
<li>
<p align="left">The character object (main_ch) which can move around and trigger a pop up when it hits something.</p>
</li>
<li>
<p align="left">The north, east, south, and west doors. Only north and east are in that room, but the others are available for later rooms.</p>
</li>
<li>
<p align="left">The horizontal and vertical wall pieces.</p>
</li>
<li>
<p align="left">A table object.</p>
</li>
<li>
<p align="left">Square objects for future inventory slots.</p>
</li>
<li>
<p align="left">Topbar, and inventory objects.</p>
</li>
<li>
<p align="left">A bag and character inventory objects.</p>
</li>
</ol>
<p> </p>
<p>Objects can be placed in the world view, or Rooms to appear in the game. Sometimes you won&#8217;t place them there at first but they will be created later by the game, according to situations that occur. They can react to different situations (be created, be destroyed, change appearance, move&#8230;). Those situations result from the programming and can be much more diverse by programming code than they can be with the point and click options.</p>
<p> </p>
<p style="text-align: justify;"><a title="Game Programming" href="http://www.makingvideogames.com/game-programming">Back to Game Programming.</a></p>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Tutorial RPG Chapter 1 Part 3</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rg-1-3.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rg-1-3.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:38:02 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Game Maker]]></category>
		<category><![CDATA[Making Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=34</guid>
		<description><![CDATA[Create an original RPG game: Chapter 1, part 3.
 
You should start here to have a better idea where this is going!
 
Game programming &#8211; starting with the world view.
 
I started by creating a very basic world view, just for the sake of illustration.  There is a character, with a very prominent nose  that changes directions according [...]]]></description>
			<content:encoded><![CDATA[<h1>Create an original RPG game: Chapter 1, part 3.</h1>
<p> </p>
<p>You should <a title="Game programming main page." href="http://www.makingvideogames.com/game-programming/">start here</a> to have a better idea where this is going!</p>
<p> </p>
<h3><small><big>Game programming &#8211; starting with the world view.</big></small></h3>
<h3><small><big></big></small> </h3>
<p>I started by creating a very basic world view, just for the sake of illustration.  There is a character, with a very prominent nose  that changes directions according to which arrow keys you use.</p>
<p> </p>
<p>There are also a few walls, doors, and a table.  Each was added directly to “room0” by opening the room, selecting the objects and clicking at the appropriate spot.</p>
<p> </p>
<p> <img title="add-object-to-room" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/add-object-to-room.jpg" alt="add-object-to-room" width="234" height="672" /></p>
<p> </p>
<p>To make the character able to move around, you need to open the character&#8217;s Object Properties window.  It&#8217;s already created so just double click on the main_ch object in the object list.</p>
<p> </p>
<p>Add the left keyboard event by clicking Add event, then selecting the bottom left option, then selecting &lt;left&gt; in the list that appears.</p>
<p> </p>
<p> <img title="add-left-keyboard-event" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/add-left-keyboard-event.jpg" alt="add-left-keyboard-event" width="630" height="482" /> </p>
<p> </p>
<p>At this point there are two options to consider.  The first is to use the point and click tabs in the move tab on the right.  The second is to insert a piece of code as seen previously.</p>
<p> </p>
<p>Like I said before, I don&#8217;t like point and click.  It is too limited and you don&#8217;t truly learn to program games by relying on those.  It isn&#8217;t that hard to learn so&#8230; </p>
<p> </p>
<p>The left event triggers <em>Execute a piece of code</em> from the control tab.</p>
<p><strong>global</strong>.heading=4;</p>
<p><strong>if</strong> instance_position(x-10,y,<strong>all</strong>)=<strong>noone</strong> x-=4</p>
<p>    <strong>else</strong> <strong>if</strong> <strong>global</strong>.space_mess=0 <strong>global</strong>.space_mess=1;</p>
<p> </p>
<p>This is the code when the left arrow key is pressed. </p>
<p> </p>
<p>- Global is necessary when the variable heading is meant to be used in scripts other than the one it is included in. </p>
<p>- Heading = 4 means the character will be facing west (1 for N, 2 for E…).</p>
<p>- <strong>if</strong> instance_position(x-10,y,<strong>all</strong>)=<strong>noone </strong>checks for any type of object that intersects with the character’s x coordinate-10 (10 pixels to the left) and the character’s y coordinate. </p>
<p style="padding-left: 30px;">o       If there is anything just to the left of your character, that means the “if condition” is not met (it doesn’t find “no one” because it finds something).  In that case it runs the statement found in “else”.  “all” means it checks for anything at all – this can be replaced by specific object names.</p>
<p style="padding-left: 30px;">o       If there is nothing there, then the &#8220;if condition&#8221; is met.  It moves the character 4 pixels to the left by subtracting 4 from its x coordinate.</p>
<p><strong>else</strong> <strong>if</strong> <strong>global</strong>.space_mess=0 <strong>global</strong>.space_mess=1; is what happens when there is an object ten pixels to the left of your character while pressing the left arrow key.</p>
<p style="padding-left: 30px;">o       If the variable<strong> global</strong>.space_mess=0, then it changes the variable to 1.  Space_mess stands for “space message”.  If you run into a wall or the table, a message appears that reads “When facing an object hit SPACE to see your options”.  This is just to demonstrate that you can trigger this.  Hitting SPACE doesn’t do anything at this point.</p>
<p style="padding-left: 30px;">o       In the draw event, part of the associated code is:  <strong>if</strong> <strong>global</strong>.space_mess=1 {…} which means that if the variable’s value is one then it will run what is in between the brackets.</p>
<p style="padding-left: 60px;">§        show_message(&#8221;When facing an object hit SPACE to see your options&#8221;);  This shows the message (the OK button is included automatically).</p>
<p style="padding-left: 60px;">§       <strong>global</strong>.space_mess=2; This ensures that the message is only showed once.  If I wanted that message to appear each time the player runs into an object I would set it back to 0 so the entire process could run again, or even simpler simply not have created this variable at all.</p>
<p style="padding-left: 60px;"> </p>
<h3>The control bar.</h3>
<p> </p>
<p>Below the world view there is a control bar made up of five “squares”. </p>
<p> </p>
<p><img title="control-bar" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/control-bar.jpg" alt="control-bar" width="87" height="52" /></p>
<p> </p>
<p>These don’t show much unless you run the mouse over them.  At this point they only react to Mouse Enter and Mouse Leave events.  Again, you add events by double-clicking on the object it will apply to on the left.  Then you add the Mouse Enter and Mouse Leave events the same way you added events previously.</p>
<p> </p>
<p>At this point the game doesn&#8217;t require more than point and click so I used the Change sprite button in the main1 tab.  This could change later though if I need this to trigger code (it will).</p>
<p> </p>
<p> <img title="mouse-enter-leave" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/mouse-enter-leave.jpg" alt="mouse-enter-leave" width="616" height="541" /></p>
<p> </p>
<ol>
<li>Open the Object properties for a square object.</li>
<li>Create Mouse Enter and Mouse Leave events.</li>
<li>Select one of the two.</li>
<li>Open the main1 tab.</li>
<li>Click and drag <img title="change-sprite" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/change-sprite.jpg" alt="change-sprite" width="24" height="24" /> into the list of Actions.</li>
<li>Double click on it then.</li>
<li>Select the sprite you want it to change into.</li>
<li><img title="ok" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/ok.jpg" alt="ok" width="72" height="23" />and repeat for the other event.</li>
</ol>
<p> </p>
<p>In both cases, they change sprites accordingly.  For this I used the predefined action “change sprite”.</p>
<p>In later versions these will react to items being “dragged into them”.</p>
<p> </p>
<p><a title="Back to game programming" href="http://www.makingvideogames.com/game-programming/">Back to Game Programming </a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rg-1-3.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Tutorial RPG Chapter 1 Part 4</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-4.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-4.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:29:39 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Game Maker]]></category>
		<category><![CDATA[Making Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=37</guid>
		<description><![CDATA[Create an original RPG game: Chapter 1, part 4.
 
You should start here to have a good idea what this is about, and do things in order!
 
Game programming &#8211; click and drag inventory and action components!
 
This is what stands out at this point.  Having control panels that can be dragged around the screen.
 
 
 
These are made up [...]]]></description>
			<content:encoded><![CDATA[<h1>Create an original RPG game: Chapter 1, part 4.</h1>
<p> </p>
<p>You should <a title="Game programming main page." href="http://www.makingvideogames.com/game-programming/">start here</a> to have a good idea what this is about, and do things in order!</p>
<p> </p>
<h3><small><big>Game programming &#8211; click and drag inventory and action components!</big></small></h3>
<h3><small><big></big></small> </h3>
<p>This is what stands out at this point.  Having control panels that can be dragged around the screen.</p>
<p> </p>
<p> <img title="advgamepic2chapter1" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/advgamepic2chapter11.jpg" alt="advgamepic2chapter1" width="498" height="520" /></p>
<p> </p>
<p>These are made up of two main elements:  the topbar (black) and the brown surface that “follows” the topbar wherever it goes.  Then there are the squares, or item slots.  There is something very particular about these that we will discuss a bit later.</p>
<p> </p>
<h2>Creating and destroying the panels.</h2>
<p> </p>
<p>The first step is creating the panel.  This happens when the left mouse button released event occurs for the adequate object (either the blue button for the character panel or the bag button for the inventory panel).  Left mouse released doesn&#8217;t happen when the player clicks, it happens when he releases the button.  Almost the same but not quite.</p>
<p> </p>
<p> <img title="left-released" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/left-released.jpg" alt="left-released" width="684" height="566" /></p>
<p> </p>
<p>The code starts by checking if the topbar exists already.  If it doesn&#8217;t, the if condition is met so it reads variable values, which will be used to define where the topbar is located. tbx is topbar x coordinate, tby is topbar y coordinate.</p>
<p> </p>
<p>Then it will assign the location for the brown inventory box (just below it) and the item slot squares.</p>
<p> </p>
<p>Then it will create the two, and since they are always a fixed distance from each other, when the topbar is clicked and dragged, the brown box follows.</p>
<p> </p>
<p>But we still have to make the topbar react to clicking and dragging. </p>
<p> </p>
<p>This is done in a very similar way, by using the No button mouse event on the topbar object, which is triggered when the mouse runs over the topbar without clicking.  When this is active, it calculates the x and y distance between the mouse cursor and the top-left pixel of the topbar.</p>
<p> </p>
<p>These variables are recalculated at every step (1/60th of a second according to Room Properties.)</p>
<p> </p>
<p>When the mouse is clicked on the Topbar (Left Button mouse event), the variables stop changing and can be used to determine where the topbar is located at every step.</p>
<p> </p>
<p>And the inventory box called equiped follows, as well as the squares.</p>
<p> </p>
<h2>A bit more detail about the code:</h2>
<p> </p>
<p>When the mouse is over the topbar and no button is pressed, this generates the “no button” event.   What happens then is a constant recalculation of the distance between the mouse and the topbar’s “origin”.</p>
<p> </p>
<p>Note that the origin can be set in the sprite’s settings.  It can be the center of the topbar, or the top left corner (x=0 and y=0) or any coordinate you choose.  This doesn’t matter much, as long as it is the same for all the objects involved.</p>
<p> </p>
<p>This is how the distance between the mouse and the origin are calculated at each step:</p>
<p> </p>
<p>    <strong>global</strong>.tb_correct_x=mouse_x-x;</p>
<p>    <strong>global</strong>.tb_correct_y=mouse_y-y;</p>
<p> </p>
<p>tb_correct_x stands for topbar correct x (for the x coordinate).  That’s a variable name I chose.  Always be explicit with variables so that you can recognize their function when debugging, or reviewing your code for whatever reason.</p>
<p> </p>
<p>mouse_x is the built-in variable for the mouse’s x coordinate.</p>
<p> </p>
<p>x is the topbar’s built-in x coordinate.  Note that it doesn’t need to be global since it is only used for the current object (topbar).</p>
<p> </p>
<p><strong>global</strong>.tb_correct_x and <strong>global</strong>.tb_correct_y are respectively the horizontal and vertical distance between the topbar’s top left corner (origin) and where the mouse is during that step.  Those are global variables because I will use them later to determine where the topbar needs to be at each step.</p>
<p> </p>
<p>When the left button is pressed over the topbar, this generates the Left Button mouse event for the topbar.  The following code is then applied:</p>
<p> </p>
<p>x=mouse_x-<strong>global</strong>.tb_correct_x;</p>
<p>y=mouse_y-<strong>global</strong>.tb_correct_y;</p>
<p> </p>
<p> x and y stay at a constant distance from the mouse because since the no button event is no longer occurring, the recalculations aren’t happening.  This means that global.tb_correct_x and global.tb_correct_y aren’t changing.</p>
<p> </p>
<p>When you move the mouse, the topbar just “follows” as long as you keep the left button down.</p>
<p> </p>
<p> <strong>global</strong>.equiped_x=x+<strong>global</strong>.equiped_correct_x;</p>
<p><strong>global</strong>.equiped_y=y+<strong>global</strong>.equiped_correct_y;</p>
<p> </p>
<p> This keeps the brown square at equal distance between the topbar’s origin (x and y), which means it “follows” as well.</p>
<p> </p>
<p> <strong>global</strong>.square100_x=x+<strong>global</strong>.square100_correct_x;</p>
<p><strong>global</strong>.square100_y=y+<strong>global</strong>.square100_correct_y;</p>
<p> </p>
<p>This keeps the item slot square at equal distance between the topbar’s origin (x and y), which means it “follows” as well.  This is included in each square&#8217;s step event (recalculates position at each step).</p>
<p> </p>
<p>The same can be done for any other object.  More item slot squares of course, but also any number of tabs, buttons (…).</p>
<p> </p>
<h2>Frequent problem.</h2>
<p> </p>
<p>If you look at the room settings you’ll see I changed the room speed (default = 30, I set it to 60).  If it is too slow, the mouse keeps popping out of the topbar space because your mouse runs at system speed (much faster).</p>
<p> </p>
<p>Changing the speed, however, also speeds up all the objects in the game.  Your character walks faster for instance.  Setting it too high would make the click and drag work better but you’d need to slow down the game with a sleep() command at each step.</p>
<p> </p>
<p>Room speed being 60 means 60 steps occur per second instead of 30. There are better ways to fix this but I&#8217;ll leave it at that for now.</p>
<p> </p>
<p><a title="Back to game programming" href="http://www.makingvideogames.com/game-programming/">Back to Game Programming </a>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-1-4.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Tutorial &#8211; RPG click and drag chapter 2 part 1.</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-1.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-1.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 11:02:49 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>
		<category><![CDATA[Game Maker]]></category>
		<category><![CDATA[Making Games]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=39</guid>
		<description><![CDATA[ 
This is the second chapter of the RPG game programming tutorials (click and drag inventory and action). Get the GM source code: right-click, save target as. If you just got here you should start there!
 
We&#8217;re going to go one step further into elaborating dynamic inventory management. So far, we were able to open a bag [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p style="text-align: justify;">This is the second chapter of the RPG game programming tutorials (click and drag inventory and action). Get the GM source code: <a title="Source code for chapter 2 - RPG click drag." href="http://www.makingvideogames.com/game-programming/RPG_Game_Code_2.gmk">right-click, save target as</a>. If you just got here <a title="Game programming main page." href="http://www.makingvideogames.com/blog/creativity/game-programming">you should start there</a>!</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">We&#8217;re going to go one step further into elaborating dynamic inventory management. So far, we were able to open a bag using an inventory icon and drag that bag around the room. Now that bag will include items you&#8217;ve found playing the game.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Of course this requires that it be possible to find items in the game, so that part is covered as well.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Part I: What is new &#8211; taking game programming into new perspectives.</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Just like the first time, let&#8217;s start by running the game. Put the source code <img title="source file" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/sourcecodeicon.jpg" alt="source file" width="35" height="45" /> in the same folder you put the first one, then double click on it to run it with GM. Run the game by clicking Run the game.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: center;"><img title="rungame" src="http://www.2-0.biz/blog/wp-content/uploads/2009/07/rungame.jpg" alt="rungame" width="514" height="34" /></p>
<p> </p>
<p>It starts just the same as it did before, but now when you click on space when you are near the table there is a reaction.</p>
<p> </p>
<p style="text-align: center;"> <img title="player options" src="http://www.2-0.biz/blog/wp-content/uploads/2009/08/player-options.jpg" alt="player options" width="513" height="556" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">At this point, we are using GM&#8217;s built-in dialog boxes. We can make our own from scratch, or customize those somewhat. That will come in later tutorials. For now, we are programming game interaction using those.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">This game interaction will lead to finding items that will automatically be added in the player&#8217;s inventory. In this case we find cookies and a watergun (hey, this is rated PG!)</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Run through the options and when you&#8217;ve found the cookies and the gun, check your inventory.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">You do this by clicking the bag icon on the right. This is what you see:</p>
<p style="text-align: justify;"> </p>
<p style="text-align: center;"> <img title="Inventory" src="http://www.2-0.biz/blog/wp-content/uploads/2009/08/inventory-full.jpg" alt="Inventory" width="514" height="550" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Click on the black top bar and hold the left mouse button down.  Move the mouse around and you see the panel, as well as the newly included objects, move accordingly. </p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Click on the head or bag button again and the corresponding  panel disappears.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">We are one step further into interactive inventory management. Let&#8217;s look in the game programming code and see how we got it to work.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"> <a title="Game Programming" href="http://www.makingvideogames.com/game-programming/">Back to Game Programming.</a></p>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-1.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Programming Tutorials &#8211; Making RPG Games &#8211; Chapter 2 Part 2.</title>
		<link>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-2.html</link>
		<comments>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-2.html#comments</comments>
		<pubDate>Fri, 25 Sep 2009 10:43:11 +0000</pubDate>
		<dc:creator>Charles</dc:creator>
				<category><![CDATA[Game Programming]]></category>

		<guid isPermaLink="false">http://www.makingvideogames.com/?p=47</guid>
		<description><![CDATA[ 
This is the second chapter of the RPG game programming tutorials (click and drag inventory and action). Get the GM source code: right-click, save target as. If you just got here you should start there!
 
Game Programming tutorial &#8211; Making RPG games chapter 2, part 2.
 
Before we look further into actual programming, it is very important [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p style="text-align: justify;">This is the second chapter of the RPG game programming tutorials (click and drag inventory and action). Get the GM source code: <a title="Source code for chapter 2 - RPG click drag." href="http://www.makingvideogames.com/game-programming/RPG_Game_Code_2.gmk">right-click, save target as</a>. If you just got here <a title="Game programming main page." href="http://www.makingvideogames.com/blog/creativity/game-programming">you should start there</a>!</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Game Programming tutorial &#8211; Making RPG games chapter 2, part 2.</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Before we look further into actual programming, it is very important that we dedicate just one small part to organizing your work.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">As the game grows, things can quickly get messy. The scripts add up, as well as the other components when we get further into the game.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">First we&#8217;ll see how you can organize. Then we&#8217;ll see how that organization needs to be based on the game loop.</p>
<p style="text-align: justify;"> </p>
<h2 style="text-align: justify;">Make games efficiently by organizing the components &#8211; game programming success depends on workflow!</h2>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">To organize components efficiently, you&#8217;ll need to put them into folders, or groups. Some of these groups will also have sub-groups.</p>
<p> </p>
<p style="text-align: center;"> <img title="Create folder" src="http://www.2-0.biz/blog/wp-content/uploads/2009/08/create-folder.jpg" alt="Create folder" width="303" height="348" /></p>
<p style="text-align: justify;"> </p>
<p>Let&#8217;s see how the scripts are organized.</p>
<p> </p>
<p style="text-align: center;"> <img title="Script folders" src="http://www.2-0.biz/blog/wp-content/uploads/2009/08/script-folders.jpg" alt="Script folders" width="266" height="598" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Scripts are quite simply grouped by function. When something happens, the first to run is character_control(). It will check if there is something to do where the player is located because he pressed Space. If it determines there is nothing to do, it will run the nothing_to_do() script.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Other player actions will lead to other scripts. The inventory management scripts are located in the inventory folder. Scripts that react to game interaction in room0 in the game reactions by room group.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Taking the time to name groups and sprites with long, descriptive names is worth it. SnS has 164 scripts. As your game gets larger you can very easily waste a lot more time looking for the right script to work on than the time you dedicated to writing explicit names.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">The same goes for all other components (sprites, sounds, backgrounds, paths, fonts, time lines, objects and even rooms if you have a large game world that can be cut up by geographic location. We will see that some rooms can be created for a whole other purpose than showing a part of your game world, and such rooms belong in a separate folder as well.</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">You might be able to get by without paying attention to this part for a small game, but game programming gets interesting, fun and profitable when you start making games large!</p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"><a title="Game Programming" href="http://www.makingvideogames.com/game-programming">Back to Game Programming.</a></p>
<p><font color="#B4B4B4" size="-2">Post Footer automatically generated by <a href="http://www.freetimefoto.com/add_post_footer_plugin_wordpress" style="color: #B4B4B4; text-decoration:underline;">Add Post Footer Plugin</a> for wordpress.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.makingvideogames.com/game-programming/game-programming-tutorial-rpg-2-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
