<?xml version="1.0" encoding="ISO-8859-1"?>
<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel rdf:about="http://feeds.garagegames.com/rss/blogs/developer/10946/">
		<title>Blog for Dave Calabrese at GarageGames.com</title>
		<description>Blog feeds for Gamers and Developers in the GarageGames community.</description>
		<link>http://www.garagegames.com/</link>
		<image rdf:resource="http://www.garagegames.com/images/GarageGames_logo_small_w.gif" />
		<dc:date>2008-11-22T09:57:10+00:00</dc:date>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15518"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15495"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15434"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15425"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15347"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15287"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/15180"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/12610"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/11914"/>
				<rdf:li rdf:resource="http://www.garagegames.com/blogs/10946/11834"/>
			</rdf:Seq>
		</items>
	</channel>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15518">
		<dc:format>text/html</dc:format>
		<dc:date>2008-10-08T01:52:19+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>Making Games Seminar Footage</title>
		<link>http://www.garagegames.com/blogs/10946/15518</link>
		<description>It took us some time to clean up the poor audio from the seminar (our mic cut out at the last second and we were forced to rely on the camcorder mic). But the audio has been cleaned up to the best it could get, and the video is now up on YouTube! Sit back and watch the 50 minute video in all 6 parts here:&lt;br&gt;&lt;br&gt;&lt;object width=&quot;640&quot; height=&quot;480&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/E7y5lUjoPEQ&quot;&gt;&lt;/param&gt;
	&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;/param&gt;
	&lt;embed src=&quot;http://www.youtube.com/v/E7y5lUjoPEQ&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; width=&quot;640&quot; height=&quot;480&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;&lt;br&gt;&lt;br&gt;Enjoy!&lt;br&gt;&lt;br&gt;-Dave Calabrese&lt;br&gt; Gaslight Studios</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15495">
		<dc:format>text/html</dc:format>
		<dc:date>2008-09-30T22:07:08+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>Events, Cinematics &amp;amp; Easy Control of it all!</title>
		<link>http://www.garagegames.com/blogs/10946/15495</link>
		<description>With a solid knowledge of Torque and a little ingenuity, one can do quite a lot. However, like any game engine, Torque doesn't have everything one might need in producing a game. One of the first projects that Gaslight Studios was contracted to do was a small game that was primarily cinematics, sort of like a real-time Dragon's Lair. As Torque does not ship with any kind of cinematic builder, this brought forth a challenge, especially with a timeframe to complete the project in no more than a month and a half.&lt;br&gt;&lt;br&gt;Looking over the timeline, it was determined we really didn't have the time to build a full, GUI driven cinematic editor for Torque (although I have been working on one in my spare time). In the past, with less experience, I would probably have solved this problem with a series of very large Switch / Case statements.  These got to be very ugly and very hard to work with.&lt;br&gt;&lt;br&gt;For an example of that, let's say we had a simple scene where we want the camera to pan across a few objects in a room - things we want to highlight to the player - then return control. We may write that like this:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;function previewRoomObjects(%key)&lt;br&gt;{&lt;br&gt;  switch(%key)&lt;br&gt;  {&lt;br&gt;     case 1: camera.followPath(previewObjectA);&lt;br&gt;                 schedule(2000,0, previewRoomObjects,2);&lt;br&gt;     case 2: camera.followPath(previewObjectB);&lt;br&gt;                 schedule(2000,0, previewRoomObjects,3);&lt;br&gt;     case 3: camera.followPath(previewObjectC);&lt;br&gt;                 schedule(2000,0, previewRoomObjects,4);&lt;br&gt;     case 4: givePlayerControl();&lt;br&gt;  }&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Does this work? Of course! However, imagine if you had a long cinematic sequence, like something from a Final Fantasy game. That switch/case could get up to 50 or more keys, even if you split it into multiple functions. Then, if you changed one key, or needed to add an event in the sequence, suddenly your ordering is all messed up. This is the exact system I've used in the past - and it led to headaches, fursteration, and my never wanting to do cinematics or complex event-driven sequences again.&lt;br&gt;&lt;br&gt;So here I am, older and wiser, stuck with a project that is almost entierly cinematics. Clearly, I'm no longer going to use many very large switch/case statements, and I don't have the time to finish or implement my cinematic builder. So I come up with a very simple, script-driven system, that can easily manage and control events.&lt;br&gt;&lt;br&gt;With the system I devised, which is about a page of script-code, we were able to create each event in the scene individually, have events call other events, and keep each event entirely self-contained. This shaved potentially weeks off our development schedule, and allows us to with incredible ease, and in a very short amount of time, assemble anything from a quick placeholder cinematic sequence to a full and complex cinematic sequence. While the system isn't perfect - it was written in about 2 hours out of necessity, and it could use a lot of polish and some solid GUIs to drive it - the system still proved to be a solid gold tool.&lt;br&gt;&lt;br&gt;Here's the code for it:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;function addEventToSystem(%eventName)&lt;br&gt;{&lt;br&gt;	%scriptHolder = new ScriptObject(){};&lt;br&gt;	%eventObject = new ScriptObject(%eventName)&lt;br&gt;                                  {&lt;br&gt;                                     scriptLines = %scriptHolder;&lt;br&gt;                                     scriptLineCount = 0;&lt;br&gt;                                  };&lt;br&gt;}&lt;br&gt;&lt;br&gt;function addScriptlineToEvent(%eventname,%scriptLine)&lt;br&gt;{&lt;br&gt;	(%eventname).scriptLines[ (%eventname).scriptLineCount++ ] = %scriptLine;&lt;br&gt;}&lt;br&gt;&lt;br&gt;function processEventObject(%eventName)&lt;br&gt;{&lt;br&gt;	for(%i = 1; %i &amp;lt;= (%eventname).scriptLineCount; %i++)&lt;br&gt;	{&lt;br&gt;		eval((%eventname).scriptLines[%i]);&lt;br&gt;	}&lt;br&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;The system is incredibly simple. With the knowledge that a ScriptObject can contain other ScriptObjects, however a ScriptObject cannot hold an array unless it is part of another ScriptObject, the system was built. Each event is an object, which contains a variable, scriptLineCount, of how many lines of script this event contains. Each event object then contains a second object, scriptHolder, which acts as an array which holds all of the lines of script.&lt;br&gt;&lt;br&gt;Now, let's look at the above event again, and build it using this simple event system...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;div class='codeblock'&gt;&lt;pre&gt;addEventToSystem(previewObjects);&lt;br&gt;addScriptlineToEvent(previewObjects,&amp;quot;camera.followPath(previewObjectA);&amp;quot;);&lt;br&gt;addScriptlineToEvent(previewObjects,&amp;quot;camera.schedule(2000,followPath,previewObjectB);&amp;quot;);&lt;br&gt;addScriptlineToEvent(previewObjects,&amp;quot;camera.schedule(4000,followPath,previewObjectC);&amp;quot;);&lt;br&gt;addScriptlineToEvent(previewObjects,&amp;quot;schedule(6000,0, givePlayerControl);&amp;quot;);&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;&lt;br&gt;Now you can easily move things around without affecting other items, and begin the event with a single line of code: processEventObject(previewObjects);&lt;br&gt;&lt;br&gt;We do, however, still have the issue of schedules to deal with - and moving around a schedule can still affect other items. In practice, we found this was actually not that painful - but we still found a work around for it. I won't get too in-detail for the workaround here, as it is best for another post, but I will give some quick details...&lt;br&gt;&lt;br&gt;When working with an event system, almost every reason you would need to schedule something can be boiled down into 3 categories:&lt;br&gt;&lt;br&gt;- Waiting for a camera or object to finish following a path.&lt;br&gt;- Waiting for a sound effect (possibly character dialog) to finish playing.&lt;br&gt;- Waiting for an animation to finish playing on an object.&lt;br&gt;&lt;br&gt;Knowing that simplifies things incredibly. The trick to do, and what we did, is to add an engine-level callback to each of these 3 events so that when they complete their cycle, they run a command that is placed within the callback.&lt;br&gt;&lt;br&gt;So if I wanted to have one of our events created with 'addEventToSystem();' to play whenever a sound effect finished playing, I could run:  alxPlay(mySound,&amp;quot;processEventObject(myEvent);&amp;quot;.&lt;br&gt;&lt;br&gt;And with our modifications, the event would play after the sound finished playing. Obviously, this is all good for a whole post of its on, which is a topic for another time, and another day. =)&lt;br&gt;&lt;br&gt;Hope you enjoyed this, and I hope that everyone is able to take away some spiffy information from this! That event system is very basic, and can be built upon quite a lot, and have some wonderful interfaces built around it to be able to construct your cinematic sequences and events all while the game is running, without ever opening your scripting IDE - which is the ideal way to build them.&lt;br&gt;&lt;br&gt;Until next time!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15434">
		<dc:format>text/html</dc:format>
		<dc:date>2008-09-19T15:40:52+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>ARRGH! Talk Like a Pirate Day!</title>
		<link>http://www.garagegames.com/blogs/10946/15434</link>
		<description>Avast! It be Talk Like a Pirate Day once again! And a happy one to all of you at that!&lt;br&gt;&lt;br&gt;Don't know about this scurvey holiday? Aim your mouse-clickings here: &lt;a href='http://www.talklikeapirateday.com/wordpress/' target=_blank&gt;www.talklikeapirateday.com/wordpress/&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15425">
		<dc:format>text/html</dc:format>
		<dc:date>2008-09-17T04:10:02+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>NDK 'Making Games' Seminar a Success!</title>
		<link>http://www.garagegames.com/blogs/10946/15425</link>
		<description>Nan Desu Kan has once again come and gone, however as always it was a blast - especially because Gaslight Studios was able to host a seminar on making video games! We had a great turnout, and got some good video and photographs from the event. We even got to hand out some wonderful swag and some excellent prizes thanks to the generous folks at GarageGames! &lt;br&gt;    Videos and photographs from the event will be up shortly - we've got a lot to sort through! Thank you to everyone who came to our seminar, and keep an eye on future conventions and NDK 2009 - we'll be back!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15347">
		<dc:format>text/html</dc:format>
		<dc:date>2008-08-30T08:09:46+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>'Making Games' Seminar Radio Commercial</title>
		<link>http://www.garagegames.com/blogs/10946/15347</link>
		<description>The fine gentlemen over at IndieZen Radio have offered us advertising space for the upcoming NDK 'Making Games' Seminar! We've put together a quick, fun and cheesy commercial just for them. Head on over to our home page and check out the commercial! &lt;br&gt;&lt;br&gt;http://&lt;a href='http://www.gaslightstudios.net/' target=_blank&gt;www.gaslightstudios.net/&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15287">
		<dc:format>text/html</dc:format>
		<dc:date>2008-08-17T01:34:29+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>&amp;quot;Creating Video Games&amp;quot; Seminar at NDK 2008!</title>
		<link>http://www.garagegames.com/blogs/10946/15287</link>
		<description>Gaslight Studios is proud to announce that we will be hosting a &amp;quot;Making Video Games&amp;quot; seminar at the annual Denver Anime Convention, &amp;quot;Nan Desu Kan!&amp;quot;. Here is the body of our public announcement:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;br&gt;Dying to make a video game, but just don't know where to start? Maybe you've worked on a few games but they keep falling apart. Fear no more! Pay a visit to the yearly anime convention - Nan Desu Kan, in Denver, Colorado for a 2 hour seminar on creating video games. Gaslight Studios will be there to give you the basics, show you how to design a game, choose a team and even how to get it marketed and noticed.&lt;br&gt;&lt;br&gt;So get your developer friends together, load up on your favorite caffeinated beverage and join as from 10AM until 12PM on Sunday the 14th of September at the Mariott Denver Tech Convention Center and prepare to learn how to take your dreams of being a developer, and turn them into a reality!&lt;br&gt;&lt;br&gt;Learn more about Nan Desu Kan and register for this wonderful yearly event at www.ndkdenver.org.&lt;br&gt;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;So come on by and get ready to learn - we're eager to teach, and I'm sure many of you have fantastic video game ideas just waiting to be made, and all you need is a little starting guidance. Looking forward to this!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/15180">
		<dc:format>text/html</dc:format>
		<dc:date>2008-07-30T04:36:51+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>Igniting the Flame of &amp;quot;Gaslight Studios&amp;quot;</title>
		<link>http://www.garagegames.com/blogs/10946/15180</link>
		<description>It has been a long, well tread road that I have traversed over the past 7 years that I have been a professional developer of video games. I know that I am certainly not the first person to go this route, and there is no way that I am going to be the last. With how the video game industry is growing, there is no end in sight to the bevy of talent the world will see in days yet to come.&lt;br&gt;&lt;br&gt;At the start of the new century, I joined the famed development company 21-6 Productions to help with some of their initial projects. In the years to come I worked on art, programming, scripting, story design and project management to name just a few things. If it was not for them, I would not have the talent, experience or opportunities that I have today. And it is one of those opportunities that I am most excited about. &lt;br&gt;&lt;br&gt;In June of 2008, I left 21-6 to take the plunge that many game developers dream of, but few have the chance to make it happen. I left to begin my own production company - Gaslight Studios. &lt;br&gt;&lt;br&gt;We are, so far, a small yet growing team of talented and eager professionals with backgrounds ranging from art and programming to stage and film production - and of course myself, with 7 years professional video game design and development experience to lead this troop of misfits. We design, develop, create and consult. We construct, imagine, draw and write. &lt;br&gt;&lt;br&gt;And with all this, what can I say about what we're working on? Publically, I can announce 2 projects that are underway:&lt;br&gt;&lt;br&gt;&lt;b&gt;Torque HLSL Shader Packs&lt;/b&gt; - Torque Shader Packs starring the Torque Shader Platoon! Each pack will introduce you to a new colorful character from the Platoon who will teach you how to develop different and more advanced shaders than the last pack. These packs will be available in the GarageGames Store, and with the purchase of each you will acquire a collection of heavily commented HLSL shaders constructed especially for TGEA, as well as a detailed document where a Shader Platoon character will teach you how and why the shader works, how to integrate them into the engine, and how to modify them to extend what each shader is capable of doing. In fact, why should I sit here and explain the first Shader Pack to you when General Specular himself can tell you what he's preparing:&lt;br&gt;&lt;br&gt;&lt;blockquote&gt;&lt;font size=1&gt;Quote:&lt;br&gt;&lt;hr height=1 noshade&gt;&amp;quot;Hello, MAGGOTS! I'm here to take your wimpy and mathematically-impaired selves and turn you into mean, shader writing machines! When I'm done with you, you'll be able to bling up your neighbor's dog in the blink of an eye. That furry mutt will be sparkling from specular maps and showcasing their bumpmaps - and your neighbor will be wonderin' why their poodle now looks like a Hollywood star! So get on into my camp and prepare to work those shader muscles!&amp;quot;&lt;hr height=1 noshade&gt;&lt;/font&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;b&gt;'Steamtunnel'&lt;/b&gt; - While I don't wish to say a whole lot just yet about this, I will say that it is the first IP developed by Gaslight Studios, it is a side-scrolling action RPG developed in Torque Game Builder, and that 'Steamtunnel' is just a code name.&lt;br&gt;&lt;br&gt;If you're seeking out our home on the web, we do have a site up, although it's not finished. Feel free to target your favorite browsing software to &lt;a href='http://www.GaslightStudios.net/' target=_blank&gt;www.GaslightStudios.net/&lt;/a&gt; and peruse the wonderful unfinished world of Gaslight Studios. Heck, if you think you've got what it takes to make that site better, let us know! We're looking for a web developer with a knowledge of the Drupal portal system to help get things moving.&lt;br&gt;&lt;br&gt;Lots to do, lots to discuss and lots to plan. It's been a rush, albeit a very exciting rush, over the past month and a half. Let's see what the next month and a half will bring, and the many months to follow. I now wish adieu to my good friends and fellow developers at 21-6 Productions, and welcome the future that is yet to come for Gaslight Studios.&lt;br&gt;&lt;br&gt;-Dave Calabrese&lt;br&gt; President, Gaslight Studios</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/12610">
		<dc:format>text/html</dc:format>
		<dc:date>2007-03-26T20:09:58+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>TTQFE Experiment Pack 1 Released!</title>
		<link>http://www.garagegames.com/blogs/10946/12610</link>
		<description>An all new set of unsolved experiments have been uncovered as the first Experiment Pack for TubeTwist: Quantum-Flux Edition has been released! Titled &amp;quot;Unsolved Twisteries&amp;quot;, this pack includes 10 all new challenges ranging from easy to hard. Visit the Experiment Pack section at www.TubeTwist.com now to download and get solvin'!</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/11914">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-20T00:07:56+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>Orbz Course Pack 6 Now Available, Just in time for the Holidays!</title>
		<link>http://www.garagegames.com/blogs/10946/11914</link>
		<description>The holidays approacheth, and 21-6 is not going to forget its fans! Prepare for Course Pack 6! This latest rendition of the Course Pack has 47 courses! Yes, you read that right... 47. Fourty Seven. A four, followed by a seven... 47! Fourty seven exciting courses to expand your Orbz experience.&lt;br&gt;&lt;br&gt;And that's not all.&lt;br&gt;&lt;br&gt;Straight from the cutting room floor of Orbz X-Box comes 7 courses by 21-6 designer and mapper Dave Calabrese, better known as 'BahamutZaero'. These wild and interesting courses sport new concepts and themes not seen in previous Orbz courses by 21-6, and should lend an exciting new flavor to your gaming.&lt;br&gt;&lt;br&gt;Don't just sit around and read about the 47 courses included in this pack! Download them now and enjoy! &lt;br&gt;&lt;br&gt;&lt;a href='http://www.orbzonline.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=30&amp;amp;Itemid=44' target=_blank&gt;www.orbzonline.com/index.php?option=com_content&amp;amp;task=view&amp;amp;id=30&amp;amp;Item...&lt;/a&gt;</description>
	</item>
	<item rdf:about="http://www.garagegames.com/blogs/10946/11834">
		<dc:format>text/html</dc:format>
		<dc:date>2006-12-10T20:17:35+00:00</dc:date>
		<dc:creator>Dave Calabrese</dc:creator>
		<title>Great Games Experiment TubeTwist Fan Club</title>
		<link>http://www.garagegames.com/blogs/10946/11834</link>
		<description>If you are a member of the Great Games Experiment, and you love TubeTwist (and who doesn't!), come join us in discussing the physicy-fun!&lt;br&gt;&lt;br&gt;The TubeTwist Fan Club:&lt;br&gt;http://www.greatgamesexperiment.com/group/tubetwistfans/&lt;br&gt;&lt;br&gt;Come join and discuss solutions, game story and anything else you desire related to TubeTwist.</description>
	</item>
</rdf:RDF>
