<?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>Retro City Rampage: The Video Game: The Development Blog!</title>
	<atom:link href="http://retrocityrampage.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://retrocityrampage.com/blog</link>
	<description>Thrilling Tales!</description>
	<lastBuildDate>Sun, 08 Apr 2012 02:09:28 +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>Retro City Rampage comes to Spain</title>
		<link>http://retrocityrampage.com/blog/2012/04/retro-city-rampage-comes-to-spain/</link>
		<comments>http://retrocityrampage.com/blog/2012/04/retro-city-rampage-comes-to-spain/#comments</comments>
		<pubDate>Sun, 08 Apr 2012 02:07:06 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=462</guid>
		<description><![CDATA[Both Retro City Rampage and myself will be in Madrid at iDÉAME April 14th and 15th! You&#8217;ll get to play it on the Wii (courtesy of Nintendo!) . I&#8217;ll also be speaking about the game, its development and the industry, &#8230; <a href="http://retrocityrampage.com/blog/2012/04/retro-city-rampage-comes-to-spain/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://www.ideame.es/img/ideame-cabecera.png" alt="" border="0" width="420" height="202" /></p>
<p>Both Retro City Rampage and myself will be in Madrid at iDÉAME April 14th and 15th! You&#8217;ll get to play it on the Wii (courtesy of Nintendo!) . I&#8217;ll also be speaking about the game, its development and the industry, along side Magnus Palsson (DistractionWare, VVVVVV) and Jools Watsham (Renegade Kid, Mutant Mudds). It&#8217;s going to be fantastic, can&#8217;t wait!</p>
<p>More info: <a href="http://www.ideame.es/">http://www.ideame.es/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2012/04/retro-city-rampage-comes-to-spain/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Happy Holidays from Vblank Entertainment!</title>
		<link>http://retrocityrampage.com/blog/2011/12/happy-holidays-from-vblank-entertainment/</link>
		<comments>http://retrocityrampage.com/blog/2011/12/happy-holidays-from-vblank-entertainment/#comments</comments>
		<pubDate>Sun, 25 Dec 2011 10:57:28 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=453</guid>
		<description><![CDATA[Merry Christmas and Happy Holidays from Vblank Entertainment! It&#8217;s been an incredible year of non-stop development, events, speaking and learning. Retro City Rampage has come a long way, becoming the massive game I always dreamed it could be. It&#8217;s packing &#8230; <a href="http://retrocityrampage.com/blog/2011/12/happy-holidays-from-vblank-entertainment/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Merry Christmas and Happy Holidays from Vblank Entertainment!</strong></p>
<p>It&#8217;s been an incredible year of non-stop development, events, speaking and learning.<br />
Retro City Rampage has come a long way, becoming the massive game I always dreamed it could be. It&#8217;s packing over <strong>50 story missions</strong>, over <strong>30 arcade challenges</strong>, over <strong>25 weapons and power-ups</strong>, over <strong>40 vehicles</strong>, a massive interactive open-world to explore with over 70 interiors, over 100 character customizations and <strong>crazy crossovers</strong> including a <a href="http://vimeo.com/32361224">&#8216;Splosion Man</a> one. You&#8217;ll have hours upon hours of fun with it, guaranteed.</p>
<p>I can&#8217;t even begin to tell all you just how much appreciate your patience. RCR&#8217;s finally near the finish line but as it&#8217;s being developed almost entirely by one man (from programming to design, business, PR, etc.) things have taken quite a while. The game itself is nearly done but many business tasks, much testing and some platform requirements still need to be taken care of. Behind the scenes, I&#8217;ve had to battle many major bumps in the road over the past few years, including very recently. However, I pushed though them all and in the end everything&#8217;s turned out for the better. Even more great things are happening right now which I can&#8217;t yet announce, but what I will say is that when the game finally launches, nearly EVERYONE will be able to play it <img src='http://retrocityrampage.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I wish I could announce a release date but even when development is complete, games must go through testing and certification, then sit in a waiting list for a release week. Until this is underway, a specific release date can not be announced, but again I really appreciate everyone&#8217;s patience.</p>
<p>Have a great holiday,<br />
Brian</p>
<p>PS. Don&#8217;t forget to download all of the <strong>free stuff</strong> from <a href="http://retrocityrampage.com/music.php">music</a> to <a href="http://retrocityrampage.com/downloads.php">wallpaper</a> and an <a href="http://retrocityrampage.com/downloads.php">SMS inspired game case</a>, <a href="http://retrocityrampage.com/downloads.php">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/12/happy-holidays-from-vblank-entertainment/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Speaking at DevHour in Mexico + more events</title>
		<link>http://retrocityrampage.com/blog/2011/09/speaking-at-devhour-in-mexico-more-events/</link>
		<comments>http://retrocityrampage.com/blog/2011/09/speaking-at-devhour-in-mexico-more-events/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 15:28:43 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=440</guid>
		<description><![CDATA[DevHour, Mexico City DevHour, Mexico&#8217;s game development conference began yesterday, garnering a fantastic turnout. There&#8217;s so much passion here and potential for success for the talent in this country, everyone&#8217;s so hungry to learn which is fantastic. I&#8217;m already excited &#8230; <a href="http://retrocityrampage.com/blog/2011/09/speaking-at-devhour-in-mexico-more-events/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h2>DevHour, Mexico City</h2>
<p><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/09/devhour.jpg"><img class="aligncenter size-full wp-image-456" title="devhour" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/09/devhour.jpg" alt="" width="587" height="387" /></a></p>
<p><a href="http://devhour.mx/programa.php">DevHour</a>, Mexico&#8217;s game development conference began yesterday, garnering a fantastic turnout. There&#8217;s so much passion here and potential for success for the talent in this country, everyone&#8217;s so hungry to learn which is fantastic. I&#8217;m already excited about returning next year.</p>
<p>I&#8217;m very happy to have been given the opportunity to speak at DevHour, both in panels and in giving a full lecture in the amazing auditorium. The two panels yesterday went very well and I&#8217;m happy to have been able to share new insight and knowledge that will enable developers here in Mexico to achieve greater success both in releasing their game and designing it. This afternoon I will be performing an hour long lecture on the development of Retro City Rampage and how small teams can automate their processes to achieve more, which will be followed by another panel.</p>
<h2>GameCity, UK!!</h2>
<p>Next month in Nottingham, UK between October 26th and 29th I will be at <a href="http://gamecity.org/">GameCity</a> developing a game live using art that you, the attendees draw! More details to come.</p>
<p>Watch last year&#8217;s Make A Game In A Day, <a href="http://gamecity.org/news/make-a-game-in-a-day-a-gamecity5-film">here</a>!</p>
<h2>Go Minecraft!!</h2>
<p>Following that, in November I and Retro City Rampage will be at <a href="http://mojang.com">Mojang</a>&#8216;s <a href="http://minecon.mojang.com/">MineCon</a> in Las Vegas November 18th and 19th. I will be speaking and the game will be playable by all attendees.</p>
<p>Huge thanks to Mojang for the opportunity!</p>
<p>Lots of exciting stuff happening! Be sure to come out and say hi!</p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/09/speaking-at-devhour-in-mexico-more-events/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PAX Party!</title>
		<link>http://retrocityrampage.com/blog/2011/08/pax-party/</link>
		<comments>http://retrocityrampage.com/blog/2011/08/pax-party/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 20:19:34 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=428</guid>
		<description><![CDATA[Huge thanks to Destructoid for hosting! There&#8217;s a PAX Party Thursday, August 25th in Seattle, WA. Join Destructoid and several wonderful indie game companies for a pre-PAX celebration! The Super Indie Friends Mixer will be starring many special guests&#8230; us! &#8230; <a href="http://retrocityrampage.com/blog/2011/08/pax-party/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">Huge thanks to <a href="http://www.destructoid.com/join-us-for-the-super-friends-indie-mixer-at-pax-prime--209416.phtml">Destructoid</a> for hosting!<br />
There&#8217;s a <strong>PAX Party</strong> Thursday, August 25th in Seattle, WA.</p>
<p style="text-align: center;"><a href="http://www.destructoid.com/join-us-for-the-super-friends-indie-mixer-at-pax-prime--209416.phtml"><img class="size-full wp-image-429 aligncenter" title="DToid-SuperIndieFriendsMixer" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/08/DToid-SuperIndieFriendsMixer.jpg" alt="" width="640" height="640" /></a></p>
<p>Join <a href="http://www.destructoid.com/join-us-for-the-super-friends-indie-mixer-at-pax-prime--209416.phtml">Destructoid</a> and several wonderful indie game companies for a pre-PAX celebration!</p>
<p>The <strong>Super Indie Friends Mixer </strong>will be starring many special guests&#8230;</p>
<ul>
<li>us! Vblank Entertainment (<strong>Retro City Rampage</strong>)</li>
<li>Twisted Pixel (<strong>Ms. Splosion Man, The Gunstringer</strong>)</li>
<li>Hello Games (<strong>Joe Danger</strong>)</li>
<li>Halfbrick (<strong>Fruit Ninja</strong>)</li>
<li>Zen Studios (<strong>Pinball FX</strong>)</li>
<li>RedLynx (<strong>Trials HD</strong>)</li>
</ul>
<p>Meet us! Say hi! We might even have prizes that you fans would love <img src='http://retrocityrampage.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>The mixer takes place at Gameworks from 8PM to 12AM where the various developers on all these game franchises will be hanging out along with various Destructoid personalities. Plus, Gameworks is filled with a ton of arcade machines so there&#8217;s going to be something for everyone here.</p>
<p style="text-align: center;"><strong>More Info <a href="http://www.destructoid.com/join-us-for-the-super-friends-indie-mixer-at-pax-prime--209416.phtml">Here</a>.</strong></p>
<p><strong><br />
</strong></p>
<p><a href="http://www.facebook.com/event.php?eid=183972174995870"><img class="alignleft size-full wp-image-431" title="fangamerparty" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/08/fangamerparty.jpg" alt="" width="180" height="278" /></a><strong>Also, </strong><strong>Friday August 26th!</strong><strong><br />
<a href="http://www.fangamer.net/vblank">Fangamer</a> and is hosting a party!</strong></p>
<p>FREE with your PAX Badge, otherwise $15 for tickets.</p>
<p><strong>More details <a href="http://www.facebook.com/event.php?eid=183972174995870">here</a>.</strong></p>
<p>Be sure to <strong>support Retro City Rampage</strong> and purchase the awesome Fangamer shirt, poster and pins to help fund the final crunch to finish and release the game.</p>
<p><strong>Grab them <a href="http://www.fangamer.net/vblank">here</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/08/pax-party/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PAX Dev Talks, Grand Theft Automation</title>
		<link>http://retrocityrampage.com/blog/2011/08/pax-dev-talks-grand-theft-automation/</link>
		<comments>http://retrocityrampage.com/blog/2011/08/pax-dev-talks-grand-theft-automation/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:47:34 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=357</guid>
		<description><![CDATA[Hey everyone. I&#8217;ll be speaking at PAX Dev Thursday August 25th in Seattle, WA. Learn how Retro City Rampage was made! I&#8217;m also on a panel later that afternoon with other very talented indies including Jamie Cheng of Klei Entertainment &#8230; <a href="http://retrocityrampage.com/blog/2011/08/pax-dev-talks-grand-theft-automation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hey everyone. I&#8217;ll be speaking at <strong>PAX Dev</strong> Thursday August 25th in Seattle, WA.</p>
<p>Learn how Retro City Rampage was made!</p>
<p><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/08/paxdev.png"><img class="alignleft size-full wp-image-426" title="paxdev" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/08/paxdev.png" alt="" width="223" height="110" /></a></p>
<p>I&#8217;m also on a panel later that afternoon with other very talented indies including <strong>Jamie Cheng</strong> of <a href="http://kleientertainment.com/">Klei Entertainment</a> (<a href="http://kleientertainment.com/games/shank/">Shank</a>, <a href="http://kleientertainment.com/games/eets/">eets</a>), <strong>Jake Birkett </strong>of <a href="http://greyaliengames.com/">Gray Alien Games</a>, <strong>Shane Neville</strong> of <a href="http://nrdland.com/">Ninja Robot Dinosaur</a> (<a href="http://nrdland.com/category/ray-ardent/">Ray Ardent: Science Ninja</a>) and <strong>Rick Davidson</strong> of <a href="http://www.inspiradogames.com/">Inspirado Games</a>. Rick and I worked together at <em>Backbone Vancouver</em> years back, and he&#8217;s now on a mission creating a new segment of gaming &#8211;<em>meaningful games</em>. I couldn&#8217;t ask to be on a better panel. Everyone on here has made a mark in game development and have a hell of a lot knowledge to share. I hope you can make it.</p>
<p><strong>See the full PAX Dev Schedule, <a href="http://dev.paxsite.com/schedule.php">here</a>.</strong></p>
<h3>Details on the sessions below&#8230;</h3>
<h3 style="padding-left: 30px;"><strong><a href="http://dev.paxsite.com/schedule_alph.php#Grand_Theft_Automation:_How_One_Programmer_Developed_Retro_City_Rampagehttp://dev.paxsite.com/schedule_alph.php#Grand_Theft_Automation:_How_One_Programmer_Developed_Retro_City_Rampage">Grand Theft Automation:<br />
How One Programmer Developed Retro City Rampage</a></strong></h3>
<p style="padding-left: 60px;"><em>Grand Ballroom A<br />
Thursday, 10:15am &#8211; 11:15am</em></p>
<p style="padding-left: 60px;">This talk covers the key techniques which enabled a lone programmer to build the multi-platform, multi-award winning open-world game, Retro City Rampage. The panel will cover: use of automated debugging, building more efficient tools, implementing simple features which save weeks of work later and leveraging existing functionality for multiple features.</p>
<p style="padding-left: 60px;">While developing Retro City Rampage, Brian handled all of the business, marketing, design and most of the art along side the programming and tool development. It was a lot to juggle, making the process of automation critical.</p>
<p style="padding-left: 60px;">Attendees are given an overview of the techniques used to build a large game more efficiently. They will get a peek under the hood and techniques they need to apply these practices to their own games.</p>
<address style="padding-left: 60px;"><a href="http://dev.paxsite.com/speakers.php#Brian%20Provinciano">Brian Provinciano</a> [CEO, Programmer, Designer, erm ...indie, Vblank Entertainment Inc.]</address>
<address> </address>
<address style="padding-left: 30px;"> </address>
<address> </address>
<address style="padding-left: 30px;"> </address>
<p><br/></p>
<h3 style="padding-left: 30px;"><strong><a href="http://dev.paxsite.com/schedule_alph.php#From_the_Cubicle_to_the_Basement:_Corporate_Devs_Go_Indie">From the Cubicle to the Basement: Corporate Devs Go Indie</a></strong></h3>
<p style="padding-left: 60px;"><em>Grand Ballroom A<br />
Thursday, 4:00pm &#8211; 5:00pm</em></p>
<p style="padding-left: 60px;">A frank and open discussion with a panel of game developers have left  successful careers in the traditional studio model to go out on their  own as indies. The road to independence is a rocky one and the panel  will share their experiences, good and bad, while giving advice to other  developers contemplating the leap.</p>
<div style="padding-left: 60px;">
<address> <a href="http://dev.paxsite.com/speakers.php#Jamie%20Cheng">Jamie Cheng</a> [CEO, Klei Entertainment], Rick Davidson [CEO, Inspirado Games], <a href="http://dev.paxsite.com/speakers.php#Brian%20Provinciano">Brian Provinciano</a> [President, VBlank Entertainment], <a href="http://dev.paxsite.com/speakers.php#Jake%20Birkett">Jake Birkett</a> [Owner, Grey Alien Games], <a href="http://dev.paxsite.com/speakers.php#Shane%20Neville">Shane Neville</a> [Director, Ninja Robot Dinosaur Entertainment], <a href="http://dev.paxsite.com/speakers.php#Morgan%20Jaffit">Morgan Jaffit</a> [Director, Defiant Development]</address>
</div>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/08/pax-dev-talks-grand-theft-automation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Design Patterns: Bitfields for BOOLs</title>
		<link>http://retrocityrampage.com/blog/2011/06/design-patterns-bitfields-for-bools/</link>
		<comments>http://retrocityrampage.com/blog/2011/06/design-patterns-bitfields-for-bools/#comments</comments>
		<pubDate>Fri, 24 Jun 2011 04:01:21 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=348</guid>
		<description><![CDATA[When multiple engine systems set/clear a certain flag, it&#8217;s sometimes useful to use a bitfield instead of a bool, with each bit representing each system. If any of the bits are set, it&#8217;s TRUE, if all are zero it&#8217;s FALSE. &#8230; <a href="http://retrocityrampage.com/blog/2011/06/design-patterns-bitfields-for-bools/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>When multiple engine systems set/clear a certain flag, it&#8217;s sometimes useful to use a <strong>bitfield instead of a bool</strong>, with each bit representing each system. If any of the bits are set, it&#8217;s TRUE, if all are zero it&#8217;s FALSE. This is similar to a reference counter but more explicit. </p>
<p>This is a design pattern I really like because it can produce much more bulletproof code. It makes your life far easier because you don&#8217;t need to worry about one system restoring the state properly for another, or another assuming the state incorrectly. It also can make code more efficient by eliminating the need to do multiple tests (ie. IsGamePaused() { return IsThisDoingSomething() &#038;&#038; ThatDoingSomething() &#038;&#038; etc.; }).</p>
<p>The example here is for the game pause state. RCR&#8217;s pause state means that the gameplay doesn&#8217;t run but everything else does. This is set when the player brings up the pause menu, when a cutscene is active, when a UI screen/minigame pops up, etc. So, to keep things nice and clean, I set up a bit for each. The game stays paused if any of them are still active, unpauses when all of them are deactivated. </p>
<blockquote><p>
<strong>Example code:</strong><code><br />
// TIP: Use enums instead of defines when possible for better debugging/intellisense<br />
// and instead of consts when possible to avoid a bajillion startup constructors<br />
enum mGamePause<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;mGamePause_PauseMenu = 0x80,<br />
&nbsp;&nbsp;&nbsp;&nbsp;mGamePause_Cutscene = 0x40,<br />
&nbsp;&nbsp;&nbsp;&nbsp;mGamePause_UI = 0x20,<br />
&nbsp;&nbsp;&nbsp;&nbsp;mGamePause_Freeze = 0x10,<br />
&nbsp;&nbsp;&nbsp;&nbsp;mGamePause_Reboot = 0x08,<br />
};</p>
<p>/******************************************************************************/<br />
// by feeding in an enum it ensures you'd get a compiler error if you tried to pass<br />
// something invalid, although it prevents you from setting multiple bits at once<br />
// without a cast<br />
void Game::SetPaused(mGamePause pausebit, BOOL bWantPause)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;U32 newstate = (bWantPause)? (m_mIsPaused | pausebit) : (m_mIsPaused &#038; (~pausebit));<br />
&nbsp;&nbsp;&nbsp;&nbsp;SetPauseState(newstate);<br />
}<br />
/******************************************************************************/<br />
void Game::UnpauseAll()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;SetPauseState(0);<br />
}<br />
/******************************************************************************/<br />
void Game::SetPauseState(U32 newstate)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(newstate != m_mIsPaused)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newstate &#038;&#038; !m_mIsPaused)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// do stuff when paused for the first time<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_mIsPaused = newstate;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
/******************************************************************************/<br />
</code></p></blockquote>
<p>I use this whenever I can. It ensures more robust code which is less prone to bugs, being another way a lone coder can build such a massive game. It&#8217;s what I do and you can too!</p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/06/design-patterns-bitfields-for-bools/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>See RCR precursor, Grand Theftendo In Action!</title>
		<link>http://retrocityrampage.com/blog/2011/05/see-rcr-precursor-grand-theftendo-in-action/</link>
		<comments>http://retrocityrampage.com/blog/2011/05/see-rcr-precursor-grand-theftendo-in-action/#comments</comments>
		<pubDate>Sun, 22 May 2011 00:40:30 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[General News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Behind the Scenes]]></category>
		<category><![CDATA[GDC]]></category>
		<category><![CDATA[Grand Theftendo]]></category>
		<category><![CDATA[NES]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=325</guid>
		<description><![CDATA[Those who have been waiting since the initial announcement in 2004 and missed the GDC talk this past February can finally see Grand Theftendo in action. The precursor project to Retro City Rampage, Grand Theftendo was an unofficial demake of &#8230; <a href="http://retrocityrampage.com/blog/2011/05/see-rcr-precursor-grand-theftendo-in-action/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/05/gt_systemsplash_sm.jpg"><img class="size-full wp-image-330 aligncenter" title="Grand Theftendo NES" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/05/gt_systemsplash_sm.jpg" alt="" width="576" height="324" /></a></p>
<p>Those who have been waiting since the initial announcement in 2004 and missed the GDC talk this past February can finally see <em>Grand Theftendo</em> in action.</p>
<p><center><object style="height: 390px; width: 640px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/eJu-SxcVrnI?version=3" /><param name="allowfullscreen" value="true" /><embed style="height: 390px; width: 640px;" type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/eJu-SxcVrnI?version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p>The precursor project to <em>Retro City Rampage</em>, <em>Grand Theftendo</em> was an unofficial demake of <em>Grand Theft Auto III</em> for the actual Nintendo NES. Although never finished, it still brought a (simplistic) open-world to the old 8-bit console.</p>
<p style="text-align: center;"><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/05/rcrevolution1.png"><img class="size-full wp-image-333 aligncenter" title="RCR Evolution" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/05/rcrevolution1.png" alt="" width="772" height="240" /></a></p>
<p style="text-align: left;">Aaron Kaluszka at <a href="http://www.nintendoworldreport.com/feature/25574">Nintendo World Report</a> has done an amazing job summarizing the talk I gave at GDC outlining the project and how Retro City Rampage came about. There&#8217;s also lots of info in there on the tools which I built to create both projects and on game design. You&#8217;ll also find more videos, screen shots, the world map and pictures of the tools.</p>
<p style="text-align: left;">You can find Nintendo World Report&#8217;s great article <a href="http://www.nintendoworldreport.com/feature/25574">here</a>.</p>
<p>BTW, for those curious, here&#8217;s what the sprite flicker looked like on the NES. This is one of the reasons the sprites are as small as they. Sprite objects such as cars are built out of multiple smaller sprites. The more sprites on screen, the more it will flicker. The NES could only display up to 8 sprites per line, each sprite being 8 pixels wide, that&#8217;s pretty minimal. A horizontal car is 3 of those 8 sprites. More than two cars (or two cars, a pedestrian and a bullet) and you&#8217;ll start to see flicker.</p>
<p><center><object style="height: 390px; width: 640px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/pQKWWDOeLIs?version=3" /><param name="allowfullscreen" value="true" /><embed style="height: 390px; width: 640px;" type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/pQKWWDOeLIs?version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
<p>Also, check out a video from 2004 of the homemade NES devkit running the game:</p>
<p><center><object style="height: 390px; width: 640px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/qHIhVaAyORQ?version=3" /><param name="allowfullscreen" value="true" /><embed style="height: 390px; width: 640px;" type="application/x-shockwave-flash" width="100" height="100" src="http://www.youtube.com/v/qHIhVaAyORQ?version=3" allowscriptaccess="always" allowfullscreen="true"></embed></object></center></p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/05/see-rcr-precursor-grand-theftendo-in-action/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Speed up your code iteration time!</title>
		<link>http://retrocityrampage.com/blog/2011/05/speed-up-your-code-iteration-time/</link>
		<comments>http://retrocityrampage.com/blog/2011/05/speed-up-your-code-iteration-time/#comments</comments>
		<pubDate>Mon, 09 May 2011 04:34:42 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=299</guid>
		<description><![CDATA[Doing Xbox coding right now and enjoying a simple perk that speeds up my iteration time by about 8 seconds. 8 seconds doesn&#8217;t sound like a lot, but remember that means that every time you change something and start up &#8230; <a href="http://retrocityrampage.com/blog/2011/05/speed-up-your-code-iteration-time/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Doing Xbox coding right now and enjoying a simple perk that speeds up my iteration time by about 8 seconds. 8 seconds doesn&#8217;t sound like a lot, but remember that means that every time you change something and start up the game, you&#8217;re staring at an idle screen for 8 seconds! That really kills morale.</p>
<p>I&#8217;ve worked at companies where the iteration time was 1.5-6 <strong>MINUTES</strong>. Some others had experiences where the compile alone took over 20 minutes due to their poor makefile system. Now think about that. When the team is 30-120 people, that&#8217;s a lot of time wasted and a lot of money. The money a certain unnamed company wasted waiting while their horribly inefficient pipeline cooked data <strong>could&#8217;ve funded about 30 World of Goos or Braids</strong>. It blows my mind how common this is. Managers and producers are often looking everywhere BUT at the big picture to allocate time to fix these things.They definitely wasted more time waiting for things to compile and pipe than they spent doing OT. I can say that for sure.</p>
<p>Really, these things shouldn&#8217;t happen in the first place. It&#8217;s often the result of &#8220;temporary&#8221; code staying in which isn&#8217;t architected with the ability to scale well. When I started at that company, a friend of mine said <em>&#8220;If I write two lines of code in a day, it&#8217;s a good day!&#8221;</em>. I thought he was joking. He wasn&#8217;t. I then had a saying, <em>&#8220;If it seems like people are watching youtube all day, they&#8217;re just waiting for a compile&#8221;</em>. It was great for me though. I was able to read the entire Gamasutra site. Seriously. I ran out of stuff to read on there and was scouring the web for another equivalent site.</p>
<p>Anyway, ranting aside, the turnaround time on devkits is much slower than PC. So, I do anything I can do to shave off time. Turns out most of the loading time is loading then processing the audio. So, I have three #defines. &#8220;NO_AUDIO&#8221; &#8220;NO_MUSIC&#8221; and &#8220;NO_SFX&#8221;. 99% of the time, I don&#8217;t need audio to test things like say, leaderboard code. So I simply uncomment &#8220;#define NO_AUDIO&#8221; and BOOM! RCR loads almost instantly. Every second counts.</p>
<p>On a side note, having the ability to run the game with NO_AUDIO, which in fact doesn&#8217;t just skip loading the audio, it stubs all the functions, is very helpful when porting. Gets you to the instant gratification of seeing it on a new platform sooner because you don&#8217;t need to worry about audio initially.</p>
<p>Also note, I define NO_AUDIO in the cpp file, not a header. So if I want to change it, it just needs to compile and link ONE file. That&#8217;s how you do it baby! I also split up many headers with the foo_defs.h and foo.h to speed up iteration, but you get the idea.</p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/05/speed-up-your-code-iteration-time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Another quick win</title>
		<link>http://retrocityrampage.com/blog/2011/04/another-quick-win/</link>
		<comments>http://retrocityrampage.com/blog/2011/04/another-quick-win/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 08:30:44 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=280</guid>
		<description><![CDATA[Retro City Rampage&#8217;s simple scripting language has proven very powerful. The game makes heavy use of scripts, using about 90 of them at the moment with a few more to be added before it&#8217;s finally tied in a bow (which &#8230; <a href="http://retrocityrampage.com/blog/2011/04/another-quick-win/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Retro City Rampage&#8217;s simple scripting language has proven very powerful. The game makes heavy use of scripts, using about 90 of them at the moment with a few more to be added before it&#8217;s finally tied in a bow (which will be happening very soon).</p>
<p>Although my initial NES effort Grand Theftendo had its missions written directly in 6502, I designed the scripting language for RCR under the mentality that it could feasibly run on the NES if I were to port it backwards. It was lightweight and efficient! However, that being said, this also meant it was simple and somewhat primitive.</p>
<p>But, RCR got ambitious. More ambitious in cinematics. More ambitious in gameplay. These created a number of situations throughout development where the scripting language needed to be extended. New features needed to be added to the language but with time always being the enemy, the simplest approach always needed to be taken. Amazingly though in hindsight, these simple (and often elegant) solutions seem to have been the best anyway.</p>
<p>One example of where I could&#8217;ve gone and where I ended up going was for catching events. Given the time and resources, the old me would&#8217;ve designed an object oriented language, where I could set up sprite instances each with their own &#8220;onAttacked&#8221; method, etc. It would&#8217;ve been so clean and elegant! But that wasn&#8217;t going to happen. What was the core of what I needed? Events of course! So I added an event thread to each script and global event functions such as &#8220;on.attacked&#8221;. Each event then passes down params which can be used to check which object was attacked. And you know what? Most of the time I&#8217;m just checking if it&#8217;s the player object, at the most I pretty much check 3-4 different objects, so the single function doesn&#8217;t make code too messy. And if it did, I can break the code up into separate function calls (which were another quick hack).</p>
<p>I also made use of the event thread and added callbacks, so for example, when all of the enemies in a group are killed or the player reaches a &#8220;go&#8221; arrow, the function if passed in will be called. This type of stuff is used for all kinds of things such as waypoints for a car race.</p>
<p>So anyway, the win today was script-to-script messaging. At one point, one of my visions for an ideal scripting language involved implementing a linker so scripts could could share common functions and variables with each other (or at the very least, all have access global functions/variables from a global script). However, this again wasn&#8217;t going to happen. Faced with a situation where I really needed to add script-to-script communication to avoid potentially shoddy code, I did the next best thing. I made use of my script opcodes by adding a post.message one, and added an event function which is triggered in the other running scripts. Worked perfectly!</p>
<p><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/04/scrmsg.png"><img class="aligncenter size-full wp-image-305" title="scrmsg" src="http://retrocityrampage.com/blog/wp-content/uploads/2011/04/scrmsg.png" alt="" width="685" height="363" /></a></p>
<p>For those curious, the multiple scripts running include one for the region/building/room you&#8217;re in and one for the active mission. So if you trigger something that is set up in the room (ie. activating a secret entrance) and the mission needs to know about this, it now makes use of the messaging. Since I didn&#8217;t have access to the actual object which was being activated from the other script, I could&#8217;ve implemented some sketchy catcher events. Instead of saying &#8220;if event.obj == the_obj&#8221; I&#8217;d need to say &#8220;if is type prop and is subtypeand &#8230; and &#8230;&#8221; then stick this into any event would could cause the entrance to activate. Messy code and vulnerable to holes. The simple message is the obvious way to go. It&#8217;s all about writing safe, robust, bulletproof code. Cuts down on possible bugs down the line.</p>
<p>After RCR is done I&#8217;ll write a whole article on the dozen or so of these scenarios which lead to great progress and robust functionality that didn&#8217;t feel like hacks or duct tape.</p>
<p>&#8230;and this new functionality took less time to do than I spent writing this article. EFFICIENCY FTW!</p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/04/another-quick-win/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Long awaited &#8220;Grand Theftendo&#8221; to finally be revealed @ GDC</title>
		<link>http://retrocityrampage.com/blog/2011/02/long-awaited-grand-theftendo-to-finally-be-revealed-gdc/</link>
		<comments>http://retrocityrampage.com/blog/2011/02/long-awaited-grand-theftendo-to-finally-be-revealed-gdc/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 03:48:42 +0000</pubDate>
		<dc:creator>Brian Provinciano</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://retrocityrampage.com/blog/?p=277</guid>
		<description><![CDATA[It&#8217;s been a long time since Grand Theftendo&#8217;s original announcement in the fall of 2004. Many of you have been very curious as to what it was like, how it played and eager to see it in action. Well, your &#8230; <a href="http://retrocityrampage.com/blog/2011/02/long-awaited-grand-theftendo-to-finally-be-revealed-gdc/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_283" class="wp-caption aligncenter" style="width: 714px"><a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/02/grandtheftendo_cropped.png"><img src="http://retrocityrampage.com/blog/wp-content/uploads/2011/02/grandtheftendo_cropped.png" alt="" title="Grand Theftendo" width="704" height="548" class="size-full wp-image-283" /></a><p class="wp-caption-text">Grand Theftendo, the precursor to Retro City Rampage which ran on actual NES hardware.</p></div><br />
It&#8217;s been a long time since Grand Theftendo&#8217;s original announcement in the fall of 2004. Many of you have been very curious as to what it was like, how it played and eager to see it in action. Well, your patience has paid off. I will finally reveal the <strong>precursor to Retro City Rampage</strong> on Tuesday March 1st in a lecture at GDC&#8217;s <a href="http://schedule.gdconf.com/session/12343">Independent Games Summit</a> in San Francisco.<br/><br/></p>
<p>In the talk titled <strong><a href="http://schedule.gdconf.com/session/12343">The Next Steps of Indie: Four Perspectives</a></strong>, I delve into the development of <strong>Retro City Rampage</strong> starting from the beginning. From December 2002 when I started experimenting with NES programming and sketching a top down Grand Theft Auto III city on graph paper, to building my own tools, programming language, development hardware and announcing my first open world title, &#8220;Grand Theftendo&#8221; in the fall of 2004. After a number of years of development on it part-time, I decided to do an original game on modern platforms instead, still retaining the vision of an 8-bit open world crime game. This new game eventually earned the name, &#8220;Retro City Rampage&#8221; and became the nostalgic comedy you&#8217;re all eagerly anticipating for Xbox LIVE Arcade and WiiWare later this year.<br/><br/></p>
<p>Grand Theftendo will finally be shown in motion where you&#8217;ll see GTAIII re-envisioned in 8-bit. I&#8217;ll also show off the tools and a bunch of the source code for the tech savvy! I&#8217;ll follow it up by showing off the new tools I built for developing Retro City Rampage!<br/><br/></p>
<p>Below, a picture of the development hardware. It required a few too many soldering fumes and some frozen fingers from a cold garage to build&#8230; but was so much fun none the less.<br />
<a href="http://retrocityrampage.com/blog/wp-content/uploads/2011/02/pic03.jpg"><img src="http://retrocityrampage.com/blog/wp-content/uploads/2011/02/pic03.jpg" alt="" title="pic03" width="480" height="325" class="aligncenter size-full wp-image-290" /></a><br/><br/></p>
<p>I hope to see you all there. I&#8217;m an open book and happy to answer questions/hear about your projects as well.<br/><br />
<strong>The Next Steps of Indie: Four Perspectives</strong><br/><br />
<strong>Tuesday 1:45- 2:45 Room 135, North Hall</strong><br/><br />
More details: <a href="http://schedule.gdconf.com/session/12343">http://schedule.gdconf.com/session/12343</a></p>
]]></content:encoded>
			<wfw:commentRss>http://retrocityrampage.com/blog/2011/02/long-awaited-grand-theftendo-to-finally-be-revealed-gdc/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

