<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Wazoo Enterprises</title>
	
	<link>http://www.wazooinc.com</link>
	<description>making software fun again</description>
	<lastBuildDate>Wed, 26 Aug 2009 13:38:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="www.wazooinc.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/WazooEnterprises" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">WazooEnterprises</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>iPhone app store PR firm uses MMO gold farming tactics</title>
		<link>http://www.wazooinc.com/2009/08/26/iphone-app-store-pr-firm-uses-mmo-gold-farming-tactics/</link>
		<comments>http://www.wazooinc.com/2009/08/26/iphone-app-store-pr-firm-uses-mmo-gold-farming-tactics/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 12:54:30 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[gold farming]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mmo]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=290</guid>
		<description><![CDATA[I&#8217;m surprised this actually took THIS long to materialize, given the amount of money flowing through the Apple iPhone app store. A company called Reverb Communications uses a farm of interns who trawl the internet posting reviews and comments on applications by their clients. 
It&#8217;s a brilliant strategy honestly, driven because of the &#8220;hit chart&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;m surprised this actually took <a href="http://www.mobilecrunch.com/2009/08/22/cheating-the-app-store-pr-firm-has-interns-post-positive-reviews-for-clients/">THIS long to materialize</a>, given the amount of money flowing through the Apple iPhone app store. A company called Reverb Communications uses a farm of interns who trawl the internet posting reviews and comments on applications by their clients. </p>
<p>It&#8217;s a brilliant strategy honestly, driven because of the &#8220;hit chart&#8221; mentality that the App Store has devolved into and fosters. The only way your app is going to be noticed among the other hundreds / thousands out there is to get it bubbled up through the ratings system. </p>
<p>I don&#8217;t condone outright lying about products to generate SEO traffic, but if it&#8217;s a good app that you&#8217;re trying to market and sell, then really it&#8217;s not very different from asking all your friends / coworkers to generate &#8220;noise&#8221; on the internet for you.</p>
<p>Update: Made a post about this over on <a href="http://www.gamasutra.com/blogs/ErikYuzwa/20090826/2842/MMO_gold_farming_business_model_translates_to_your_iPhone_quotfriendquot.php">Gamasutra</a> as well</p>
<p>Update: Here&#8217;s another great blog entry over on <a href="http://www.pocketgamer.biz/r/PG.Biz/App+Store/feature.asp?c=15137">pocketgamer.biz</a> on the same topic!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/26/iphone-app-store-pr-firm-uses-mmo-gold-farming-tactics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>a new horizon for flash game developers?</title>
		<link>http://www.wazooinc.com/2009/08/23/a-new-horizon-for-flash-game-developers/</link>
		<comments>http://www.wazooinc.com/2009/08/23/a-new-horizon-for-flash-game-developers/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 06:51:52 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[lost garden]]></category>
		<category><![CDATA[microtransaction]]></category>
		<category><![CDATA[monetization]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=288</guid>
		<description><![CDATA[In the beginning, Flash game development was incredibly profitable for games. The ad revenue system / profit model was the approach of choice for Flash game developers, mostly because of the internet success stories of games like Desktop Tower Defense.
Similar to the early &#8220;gold rush&#8221; days of the iPhone appstore, when the finger of the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>In the beginning, Flash game development was incredibly profitable for games. The ad revenue system / profit model was the approach of choice for Flash game developers, mostly because of the internet success stories of games like Desktop Tower Defense.</p>
<p>Similar to the early &#8220;gold rush&#8221; days of the iPhone appstore, when the finger of the internet pointed at a particular site, the developer would land enough revenue to afford them the ability to leave their &#8220;day job&#8221; in order to focus on games.</p>
<p>It&#8217;s only been a short while later, and this revenue stream has all but evaporated for developers. There&#8217;s no need to go into the details, when they&#8217;re succinctly written about over at Lost Garden:</p>
<p><a href="http://lostgarden.com/2009/07/flash-love-letter-2009-part-1.html">Flash Love Letter (Part I)</a><br />
<a href="http://lostgarden.com/2009/08/flash-love-letter-2009-part-2.html">Flash Love Letter (Part II)</a></p>
<p>with that background, you might be throwing your hands up or sighing in despair. To coin a cliche, while one door has closed, another one has opened. It&#8217;s time that Flash game developers took some pride in their work and instead of being driven by the hit mechanics governing the current market, and get back to focusing on creating FUN games.</p>
<p>The ability to add support for microtransactions within your game, provides a pathway of opportunity to game developers who want to try to create some meaningful experiences and/or content.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/23/a-new-horizon-for-flash-game-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>interview with Jason Fried of 37 signals</title>
		<link>http://www.wazooinc.com/2009/08/23/interview-with-jason-fried-of-37-signals/</link>
		<comments>http://www.wazooinc.com/2009/08/23/interview-with-jason-fried-of-37-signals/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 05:48:20 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[37 signals]]></category>
		<category><![CDATA[jason fried]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[remote work]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=286</guid>
		<description><![CDATA[According to the posted date on this YouTube clip, this was released Sept. 2008, so yeah I&#8217;m a &#8220;little late&#8221; to the party.
Who cares, the interview is still relevant today and kick&#8217;s ass. 37signals was the main company behind the famous web framework RubyonRails and the interview was an extremely interesting introspection on how the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>According to the posted date on this YouTube clip, this was released Sept. 2008, so yeah I&#8217;m a &#8220;little late&#8221; to the party.</p>
<p>Who cares, the interview is still relevant today and kick&#8217;s ass. <a href="http://37signals.com/">37signals</a> was the main company behind the famous web framework RubyonRails and the interview was an extremely interesting introspection on how the company runs itself productively. Their crew adapted to different work styles, and eventually created a work atmosphere that enabled their staff to work largely from remote locations but still productively create some excellent web-based software.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/39VPMPmOIJc&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/39VPMPmOIJc&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>What are YOU doing at your office to take advantage of some of these workforce ideas? </p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/23/interview-with-jason-fried-of-37-signals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>North America, here come the microtransactions</title>
		<link>http://www.wazooinc.com/2009/08/20/north-america-here-come-the-microtransactions/</link>
		<comments>http://www.wazooinc.com/2009/08/20/north-america-here-come-the-microtransactions/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 15:57:29 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[asia]]></category>
		<category><![CDATA[editorial]]></category>
		<category><![CDATA[gamerwok]]></category>
		<category><![CDATA[microtransaction]]></category>
		<category><![CDATA[us]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=284</guid>
		<description><![CDATA[The excellent team running GamerWok have graciously given me some occasional editorial space, and I put it to use with a commentary on the North American gamer being bombarded with microtransactional games. 
Please give it a read and share your thoughts!
I was aiming to showcase a bit of comparison between the Asian model and the [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The excellent team running <a href="http://www.gamerwok.com">GamerWok</a> have graciously given me some occasional editorial space, and I put it to use with a commentary on the North American gamer being bombarded with <a href="http://www.gamerwok.com/archives/4482">microtransactional games</a>. </p>
<p>Please give it a read and share your thoughts!</p>
<p>I was aiming to showcase a bit of comparison between the Asian model and the currently-evolving North American one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/20/north-america-here-come-the-microtransactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>basic font drawing with d3d8.1</title>
		<link>http://www.wazooinc.com/2009/08/12/basic-font-drawing-with-d3d8-1/</link>
		<comments>http://www.wazooinc.com/2009/08/12/basic-font-drawing-with-d3d8-1/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 05:07:08 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[directx]]></category>
		<category><![CDATA[common framework]]></category>
		<category><![CDATA[direct3d8.1]]></category>
		<category><![CDATA[directx8.1]]></category>
		<category><![CDATA[font drawing]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=265</guid>
		<description><![CDATA[Now that we&#8217;ve passed the black triangle test with some flying..blackness, let&#8217;s continue to work on printing text to the screen. There&#8217;s a few ways to go about this in Direct3D8.1, but we&#8217;re going to use a font object which is already included in the Common Framework for us: CD3DFont.
Add the object to our main [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>Now that we&#8217;ve passed the black triangle test with some flying..blackness, let&#8217;s continue to work on printing text to the screen. There&#8217;s a few ways to go about this in Direct3D8.1, but we&#8217;re going to use a font object which is already included in the Common Framework for us: <i>CD3DFont</i>.</p>
<h2>Add the object to our main class</h2>
<p>The necessary header files are bundled with the Common Framework, but in case you get any compile errors you can find the definition in <em>CD3DFont.h / CD3DFont.cpp</em>.</p>
<pre class="brush: javascript">
class CMyD3DApplication : public CD3DApplication
{
    //snip!
	CD3DFont*	m_pd3dFont;
	//snip!
}
</pre>
<h2>CMyD3DApplication()</h2>
<p>During the constructor for the CMyD3DApplication class, we can create the font object. All we really need to get going is the font family we&#8217;re going to use (eg. Verdana, Helvetica, Georgia, etc) and the font size.</p>
<pre class="brush: javascript">
CMyD3DApplication::CMyD3DApplication()
{
   //snip!
	m_pd3dFont = new CD3DFont("Georgia", 14, D3DFONT_BOLD );
   //snip!

}
</pre>
<h2>InitDeviceObjects</h2>
<p>We just need the font object call its own creation function during our InitDeviceObjects function.</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::InitDeviceObjects()
{
	//snip!
    m_pd3dFont->InitDeviceObjects( m_pd3dDevice );
    //snip!
    return S_OK;
}
</pre>
<h2>RestoreDeviceObjects</h2>
<p>We have to call a method here from the font object whenever the RestoreDeviceObjects function is called by the common framework.</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::RestoreDeviceObjects()
{
    //snip!
	m_pd3dFont->RestoreDeviceObjects();
	//snip!
	return S_OK;
}
</pre>
<h2>InvalidateDeviceObjects</h2>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::InvalidateDeviceObjects()
{
    //snip!
	m_pd3dFont->InvalidateDeviceObjects();
	//snip!

    return S_OK;
}
</pre>
<h2>DeleteDeviceObjects</h2>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::DeleteDeviceObjects()
{
    //snip!
	m_pd3dFont->DeleteDeviceObjects();
    //snip!

    return S_OK;
}
</pre>
<h2>FinalCleanup</h2>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::FinalCleanup()
{
    //snip!
	SAFE_DELETE( m_pd3dFont );
	//snip!

    return S_OK;
}
</pre>
<h2>Render</h2>
<p>After the necessary &#8220;paperwork&#8221; for the font object, we can now get to the nitty-gritty of using it in our codebase! It&#8217;s extremely simple to leverage for displaying text on your device.</p>
<pre class="brush: javascript">
CD3DFont::DrawText( FLOAT x,           //x position of the text
                    FLOAT y,           //y position of the text
                    DWORD dwColor,     //the color to draw the text
                    TCHAR* strText,    //the text itself
                    DWORD dwFlags=0L); //optional draw flags
</pre>
<p>Here&#8217;s how we use it:</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::Render()
{
    // Clear the viewport
    m_pd3dDevice->Clear( 0L, NULL, D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET, D3DCOLOR_ARGB( 0, 45, 50, 170 ), 1.0f, 0L );

    // Begin the scene
    if( SUCCEEDED( m_pd3dDevice->BeginScene() ) )
    {
        //snip!
		m_pd3dFont->DrawText( 2,  0, D3DCOLOR_ARGB(255,255,255,0), "Basic Font!" );
		//snip!

        // End the scene.
        m_pd3dDevice->EndScene();
    }

    return S_OK;
}
</pre>
<div id="attachment_278" class="wp-caption alignleft" style="width: 409px">
	<a href="http://www.wazooinc.com/wp-content/uploads/2009/08/basic-font-d3d81-final.jpg"><img src="http://www.wazooinc.com/wp-content/uploads/2009/08/basic-font-d3d81-final.jpg" alt="basic font in directx8.1" title="basic-font-d3d81-final" width="409" height="354" class="size-full wp-image-278" /></a>
	<p class="wp-caption-text">basic font in directx8.1</p>
</div>
<p>That&#8217;s it! If you have any questions or feedback, please leave them here or use our contact form.</p>
<p>Source Code: <p><a class="downloadlink" href="http://www.wazooinc.com/wp-content/plugins/download-monitor/download.php?id=9" title="Version1.0 downloaded 82 times" >basic-font-d3d81 (82)</a></p>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/12/basic-font-drawing-with-d3d8-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>basic sprite drawing with direct3d8.1</title>
		<link>http://www.wazooinc.com/2009/08/12/basic-sprite-drawing-with-direct3d8-1/</link>
		<comments>http://www.wazooinc.com/2009/08/12/basic-sprite-drawing-with-direct3d8-1/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 04:49:13 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[directx]]></category>
		<category><![CDATA[direct3d8.1]]></category>
		<category><![CDATA[directx8.1]]></category>
		<category><![CDATA[sprite drawing]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=267</guid>
		<description><![CDATA[We&#8217;re going through some of the basics of DirectX8.1 and game programming in general, and I know
you&#8217;re itching to get something resembling a real game going. We&#8217;re not quite there yet, but
we will be taking a major step by introducing &#8220;Sprites&#8221;.
While the definition is a bit blurry in some areas, a &#8220;Sprite&#8221; is something you [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>We&#8217;re going through some of the basics of DirectX8.1 and game programming in general, and I know<br />
you&#8217;re itching to get something resembling a real game going. We&#8217;re not <em>quite</em> there yet, but<br />
we will be taking a major step by introducing &#8220;Sprites&#8221;.</p>
<p>While the definition is a bit blurry in some areas, a &#8220;Sprite&#8221; is something you can see on your screen which<br />
has some kind of form or shape for your game: a single line is not a sprite, but a rectangle IS. A menu GUI<br />
button is a sprite, your Mario or Zelda avatar is a sprite, etc. </p>
<div id="attachment_273" class="wp-caption alignleft" style="width: 49px">
	<a href="http://www.wazooinc.com/wp-content/uploads/2009/08/player-ship.jpg"><img src="http://www.wazooinc.com/wp-content/uploads/2009/08/player-ship.jpg" alt="here&#039;s a familiar sprite!" title="player-ship" width="49" height="53" class="size-full wp-image-273" /></a>
	<p class="wp-caption-text">here's a familiar sprite!</p>
</div>
<p><em>Note: Some game programmers tend to interchange the use of &#8220;sprite&#8221; and &#8220;model&#8221; when discussing<br />
visual game objects&#8230;in most cases &#8220;sprite&#8221; is any 2D object in your game, while a &#8220;model&#8221; is a 3D entity</em></p>
<p>The DirectX8.1 SDK provides us with an easy-to-use sprite interface; <strong>ID3DXSprite</strong>. It is a quick and easy approach to getting sprite support in your games. This post will deal with creating and rendering a sprite to your display.</p>
<p>The ID3DXSprite interface relies on the creation of a texture object which contains the &#8220;visual candy&#8221; associated with the sprite. A <em>Texture</em> is any 2D drawing / artwork which is stored as a .gif, .jpg, .png, .tga or .bmp. Once you load a texture into the direct3d device, you can apply it in several ways. You can apply this 2D image onto a 3D object in your game or you can apply it to a 2D sprite.</p>
<h2>Adding the necessary to the class definition&#8230;</h2>
<pre class="brush: javascript">
class CMyD3DApplication : public CD3DApplication
{
	//snip!
	LPD3DXSPRITE m_pd3dSprite;      //our sprite object
	LPDIRECT3DTEXTURE8 m_pd3dTex;   //our texture object
        //snip!
};
</pre>
<h2>InitDeviceObjects</h2>
<p>Within InitDeviceObjects, we just need to create our sprite and texture objects with the help of the Direct3D device. Since we&#8217;re creating them here, they&#8217;ll be managed by the device and should survive any device resets and/or alt+tabbing. For this sample, we&#8217;re creating the ID3DXSprite object with the help of the Direct3D device. Once that&#8217;s done, we use the Direct3D device again to create and load our 2D texture image (contained in wazooinc.jpg).</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::InitDeviceObjects()
{
   //snip!
  D3DXCreateSprite( m_pd3dDevice, &#038;m_pd3dSprite );
  // Use D3DX to create a texture from a file based image
  if( FAILED( D3DXCreateTextureFromFile( m_pd3dDevice, "wazooinc.jpg", &#038;m_pd3dTex ) ) )
    return E_FAIL;
   //snip!
   return S_OK;
}
</pre>
<h2>DeleteDeviceObjects</h2>
<p>As with our other Direct3D device objects, we need to make sure we properly cleanup our texture and sprite interfaces.</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::DeleteDeviceObjects()
{
	//snip!
	SAFE_RELEASE( m_pd3dTex );
	SAFE_RELEASE( m_pd3dSprite );
        //snip!
        return S_OK;
}
</pre>
<h2>Drawing the sprite</h2>
<p>Finally we get to the meat and potatoes of using sprites&#8230;drawing them! Because of the way they&#8217;re designed, there is a set process to rendering with <strong>ID3DXSprite</strong>.</p>
<ul>
<li>call ID3DXSprite::Begin()</li>
<li>render the sprite using ID3DXSprite::Draw()</li>
<li>finish by calling ID3DXSprite::End()</li>
</ul>
<p>We have some begin/end blocks, in order to help batch together multiple sprite objects (should we need to). The <strong>Draw()</strong> method is by far the most interesting. Take a look at the code for a sample.</p>
<pre class="brush: javascript">
HRESULT CMyD3DApplication::Render()
{
    // Clear the viewport
    m_pd3dDevice->Clear( 0L, NULL, D3DCLEAR_ZBUFFER | D3DCLEAR_TARGET, D3DCOLOR_ARGB( 0, 45, 50, 170 ), 1.0f, 0L );

    // Begin the scene
    if( SUCCEEDED( m_pd3dDevice->BeginScene() ) )
    {
                //snip!

		m_pd3dSprite->Begin();                      // enter sprite drawing

		 // draw the sprite
		D3DXVECTOR2 position(25.0f, 50.0f);      // position at (25, 50)
		m_pd3dSprite->Draw(m_pd3dTex,          // our texture image
			NULL,                                        //
			NULL,
			NULL,
			0.0f,                                       // the rotation of our sprite
			&#038;position,                                  // the position of our sprite on screen
			D3DCOLOR_XRGB(255, 255, 255)); //the color of our sprite

		m_pd3dSprite->End();                         // end our sprite drawing

                //snip!

        // End the scene.
        m_pd3dDevice->EndScene();
    }

    return S_OK;
}
</pre>
<div id="attachment_271" class="wp-caption alignleft" style="width: 648px">
	<a href="http://www.wazooinc.com/wp-content/uploads/2009/08/basic-sprite-d3d81-final.jpg"><img src="http://www.wazooinc.com/wp-content/uploads/2009/08/basic-sprite-d3d81-final.jpg" alt="basic sprite final output" title="basic-sprite-d3d81-final" width="648" height="320" class="size-full wp-image-271" /></a>
	<p class="wp-caption-text">basic sprite final output</p>
</div>
<p>That&#8217;s it for drawing sprites! It&#8217;s definitely starting to get exciting!</p>
<p>Source Code: <p><a class="downloadlink" href="http://www.wazooinc.com/wp-content/plugins/download-monitor/download.php?id=8" title="Version1.0 downloaded 76 times" >basic-sprite-d3d81 (76)</a></p>
</p>
<p>Leave any feedback or comments here, or feel free to use the contact form.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/12/basic-sprite-drawing-with-direct3d8-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DirectX9.0 Common Framework lifecycle</title>
		<link>http://www.wazooinc.com/2009/08/12/directx9-0-common-framework-lifecycle/</link>
		<comments>http://www.wazooinc.com/2009/08/12/directx9-0-common-framework-lifecycle/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 19:23:46 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[directx]]></category>
		<category><![CDATA[common framework]]></category>
		<category><![CDATA[direct3d9.0a]]></category>
		<category><![CDATA[direct3d9.0b]]></category>
		<category><![CDATA[directx9.0]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=254</guid>
		<description><![CDATA[The Common Framework that ships with the DirectX9 SDK is a great starting point for learning about DirectX programming. It&#8217;s lightweight and gives you a good container for either prototyping or a possible infrastructure for shipping code.
Note: Only the DirectX9.0 / 9.0a and 9.0b versions of the SDK were released with the Common Framework. Starting [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The Common Framework that ships with the DirectX9 SDK is a great starting point for learning about DirectX programming. It&#8217;s lightweight and gives you a good container for either prototyping or a possible infrastructure for shipping code.</p>
<p><strong><em>Note: Only the DirectX9.0 / 9.0a and 9.0b versions of the SDK were released with the Common Framework. Starting with DirectX9.0c, the framework was rebranded / rewritten into the DXUT.</em></strong></p>
<p>Only when you better understand what&#8217;s going on (and more importantly) where you need to plug your game code into will you see some progress in your projects. After analyzing the common framework setup, the lifecycle is actually broken down into 2 subcycles:</p>
<ul>
<li>application lifecycle</li>
<li>direct3d lifecycle</li>
</ul>
<h2>Create</h2>
<p>This is the very first method used to kick the entire framework lifecycle off. This should more or less be the only function you need to call in your <em>WinMain</em> entry point.</p>
<pre class="brush: javascript">
CMyD3DApplication g_d3dApp;
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{

    if( FAILED( g_d3dApp.Create( hInst ) ) )
        return 0;

    return g_d3dApp.Run();
}
</pre>
<h2>OneTimeSceneInit</h2>
<p>After the framework begins its lower level registration and creation work with the Windows operating system itself, it provides you an opportunity to plug some object creation code in here. This function is only called <em>once</em> by the framework, so -<br />
<em>Do</em></p>
<ul>
<li>create your large data structures here</li>
<li>load any game object that stays in memory during the entire game</li>
</ul>
<p><em>Don&#8217;t</em></p>
<ul>
<li>touch any Direct3D specific component</li>
</ul>
<h2>ConfirmDevice (optional)</h2>
<p>This is an optional hook for you to implement during the initialization phase of your direct3d device. It can be used to make sure the direct3d device chosen by the common framework supports the features of the Direct3D API that you want to use during your game.</p>
<h2>InitDeviceObjects</h2>
<p>After the OneTimeSceneInit function finishes up, the common framework goes back into its cave and handles the process of creating and initializing your Direct3D device. Once this is done, you&#8217;re now given the opportunity to create and initialize any Direct3D specific interface right here. So creating your vertex and index buffers, texture objects, and even any font objects among other things. This is only called <em>once</em> during the lifecycle.</p>
<h2>RestoreDeviceObjects</h2>
<p>After your Direct3D specific objects have initialized themselves, the framework calls RestoreDeviceObjects to &#8220;reset&#8221; them. This is where our &#8220;lifecycle&#8221; design starts to take effect, because this function is called at serveral other times:</p>
<ul>
<li>during InitDeviceObjects</li>
<li>you alt+tab away from your game</li>
<li>you resize the window</li>
<li>you minimize / maximize the window</li>
</ul>
<p>So here you might seriously consider resetting any Camera and/or projection and view matrices, as well as resetting any Direct3D device object that might be affected.</p>
<h2>FrameMove</h2>
<p>With our game application code and directx components ready to rumble, it&#8217;s time to kick your project into full gear. You don&#8217;t need to understand (or interface) with the main Windows message loop, but at this stage, your application is now in a constant loop. This method is called for the purpose of doing any non-direct3D updating tasks. Most commonly, this is the function in which you process any input from the player, as well as updating game objects, do any AI calculations, collision detection and any sound / music effects.</p>
<h2>Render</h2>
<p>Immidiately after FrameMove, the Render method is executed in which you&#8217;re given the opportunity to push all the graphics for the frame through the Direct3d device. In fact, you should <em>only</em> be talking to Direct3D in this function.</p>
<h2>InvalidateDeviceObjects</h2>
<p>This method is called when your direct3d device is about to lose focus. For example, the player is alt+tabbing to another application and/or they&#8217;ve minimized your game or the game is shutting down. You&#8217;re given an opportunity to free up some memory. Note that when the game regains the application focus,<br />
<em>RestoreDeviceObjects</em> is called.</p>
<h2>DeleteDeviceObjects</h2>
<p>This method is called by the common framework when your game is shutting down or you&#8217;re changing the direct3d device alltogether. Anything depending on the direct3d basically.</p>
<h2>FinalCleanup</h2>
<p>This method is executed when the game is wrapping up execution. This method should be thought of as being paired with the &#8220;OneTimeSceneInit&#8221; function, so any game-specific object created at that point should be cleaned up here.</p>
<p>That&#8217;s it! If you have any questions or feedback, please leave them here or use our contact form.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/12/directx9-0-common-framework-lifecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DirectX8.1 Common Framework lifecycle</title>
		<link>http://www.wazooinc.com/2009/08/12/directx8-1-common-framework-lifecycle/</link>
		<comments>http://www.wazooinc.com/2009/08/12/directx8-1-common-framework-lifecycle/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 19:21:27 +0000</pubDate>
		<dc:creator>wazoo</dc:creator>
				<category><![CDATA[directx]]></category>
		<category><![CDATA[common framework]]></category>
		<category><![CDATA[direct3d8.1]]></category>
		<category><![CDATA[directx8.1]]></category>

		<guid isPermaLink="false">http://www.wazooinc.com/?p=252</guid>
		<description><![CDATA[The Common Framework that ships with the DirectX81 SDK is a great starting point for learning about DirectX programming. It&#8217;s lightweight and gives you a good container for either prototyping or a possible infrastructure for shipping code.
Only when you better understand what&#8217;s going on (and more importantly) where you need to plug your game code [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>The Common Framework that ships with the DirectX81 SDK is a great starting point for learning about DirectX programming. It&#8217;s lightweight and gives you a good container for either prototyping or a possible infrastructure for shipping code.</p>
<p>Only when you better understand what&#8217;s going on (and more importantly) where you need to plug your game code into will you see some progress in your projects. After analyzing the common framework setup, the lifecycle is actually broken down into 2 subcycles:</p>
<ul>
<li>application lifecycle</li>
<li>direct3d lifecycle</li>
</ul>
<h2>Create</h2>
<p>This is the very first method used to kick the entire framework lifecycle off. This should more or less be the only function you need to call in your <em>WinMain</em> entry point.</p>
<pre class="brush: javascript">
CMyD3DApplication g_d3dApp;
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR, INT )
{

    if( FAILED( g_d3dApp.Create( hInst ) ) )
        return 0;

    return g_d3dApp.Run();
}
</pre>
<h2>OneTimeSceneInit</h2>
<p>After the framework begins its lower level registration and creation work with the Windows operating system itself, it provides you an opportunity to plug some object creation code in here. This function is only called <em>once</em> by the framework, so -<br />
<em>Do</em></p>
<ul>
<li>create your large data structures here</li>
<li>load any game object that stays in memory during the entire game</li>
</ul>
<p><em>Don&#8217;t</em></p>
<ul>
<li>touch any Direct3D specific component</li>
</ul>
<h2>ConfirmDevice (optional)</h2>
<p>This is an optional hook for you to implement during the initialization phase of your direct3d device. It can be used to make sure the direct3d device chosen by the common framework supports the features of the Direct3D API that you want to use during your game.</p>
<h2>InitDeviceObjects</h2>
<p>After the OneTimeSceneInit function finishes up, the common framework goes back into its cave and handles the process of creating and initializing your Direct3D device. Once this is done, you&#8217;re  now given the opportunity to create and initialize any Direct3D specific interface right here. So creating your vertex and index buffers, texture objects, and even any font objects among other things. This is only called <em>once</em> during the lifecycle.</p>
<h2>RestoreDeviceObjects</h2>
<p>After your Direct3D specific objects have initialized themselves, the framework calls RestoreDeviceObjects to &#8220;reset&#8221; them. This is where our &#8220;lifecycle&#8221; design starts to take effect, because this function is called at serveral other times:</p>
<ul>
<li>during InitDeviceObjects</li>
<li>you alt+tab away from your game</li>
<li>you resize the window</li>
<li>you minimize / maximize the window</li>
</ul>
<p>So here you might seriously consider resetting any Camera and/or projection and view matrices, as well as resetting any Direct3D device object that might be affected.</p>
<h2>FrameMove</h2>
<p>With our game application code and directx components ready to rumble, it&#8217;s time to kick your project into full gear. You don&#8217;t need to understand (or interface) with the main Windows message loop, but at this stage, your application is now in a constant loop. This method is called for the purpose of doing any non-direct3D updating tasks. Most commonly, this is the function in which you process any input from the player, as well as updating game objects, do any AI calculations, collision detection and any sound / music effects.</p>
<h2>Render</h2>
<p>Immidiately after FrameMove, the Render method is executed in which you&#8217;re given the opportunity to push all the graphics for the frame through the Direct3d device. In fact, you should <em>only</em> be talking to Direct3D in this function.</p>
<h2>InvalidateDeviceObjects</h2>
<p>This method is called when your direct3d device is about to lose focus. For example, the player is alt+tabbing to another application and/or they&#8217;ve minimized your game or the game is shutting down. You&#8217;re given an opportunity to free up some memory. Note that when the game regains the application focus, <em>RestoreDeviceObjects</em> is called.</p>
<h2>DeleteDeviceObjects</h2>
<p>This method is called by the common framework when your game is shutting down or you&#8217;re changing the direct3d device alltogether. Anything depending on the direct3d basically.</p>
<h2>FinalCleanup</h2>
<p>This method is executed when the game is wrapping up execution. This method should be thought of as being paired with the &#8220;OneTimeSceneInit&#8221; function, so any game-specific object created at that point should be cleaned up here.</p>
<p>That&#8217;s it! If you have any questions or feedback, please leave them here or use our contact form.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wazooinc.com/2009/08/12/directx8-1-common-framework-lifecycle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
