<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9</title>
    <atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Niners/c4f.Benjamin-Nitschke/Posts/RSS"></atom:link>
    <itunes:summary></itunes:summary>
    <itunes:author>Microsoft</itunes:author>
    <itunes:subtitle></itunes:subtitle>
    <image>
      <url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
      <title>Channel 9</title>
      <link>http://channel9.msdn.com/Niners/c4f.Benjamin-Nitschke/Posts</link>
    </image>
    <itunes:image href=""></itunes:image>
    <itunes:category text="Technology"></itunes:category>
    <description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
    <link>http://channel9.msdn.com/Niners/c4f.Benjamin-Nitschke/Posts</link>
    <language>en</language>
    <pubDate>Sat, 18 May 2013 23:33:35 GMT</pubDate>
    <lastBuildDate>Sat, 18 May 2013 23:33:35 GMT</lastBuildDate>
    <generator>Rev9</generator>
    <c9:totalResults>1</c9:totalResults>
    <c9:pageCount>1</c9:pageCount>
    <c9:pageSize>25</c9:pageSize>
  <item>
      <title>Rocket Commander Tutorials</title>
      <description><![CDATA[<span id="c4fmetadata">
<table border="0" cellspacing="0" cellpadding="1" width="100%">
<tbody>
<tr class="entry_overview">
<td width="50">&nbsp;</td>
<td><span class="entry_description">Welcome to the Tutorials of Rocket Commander. You will learn step by step in ten 30-minute video tutorials how to develop a game like Rocket Commander. This can be your introduction into the world of game development.</span></td>
</tr>
<tr>
<td colspan="2">
<div class="entry_author">Benjamin Nitschke</div>
<div class="entry_company"><a href="http://abi.exdream.com/">Benjamin Nitschke's Blog</a></div>
<br>
<div class="entry_details"><b>Difficulty: </b><span class="entry_details_input">Intermediate</span></div>
<div class="entry_details"><b>Time Required:</b> <span class="entry_details_input">
Greater than 10 hours</span></div>
<div class="entry_details"><b>Cost: </b><span class="entry_details_input">Free</span></div>
<div class="entry_details"><b>Software: </b><span class="entry_details_input"><a href="http://msdn.com/express/">Visual C# Express Edition</a></span></div>
<div class="entry_details"><b>Hardware: </b><span class="entry_details_input"></span></div>
<div class="entry_details"><b>Download: </b>
<ul>
<li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/RocketCommanderSource.msi">Download Code</a>
</li><li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/RocketCommanderv1.1.msi">Download Code</a></li></ul>
</div>
</td>
</tr>
</tbody>
</table>
</span>
<p><img border="0" alt="" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_0.jpg"></p>
<p>Welcome to the Tutorials of Rocket Commander. You will learn step by step in ten 30-minute video tutorials how to develop a game like Rocket Commander. This can be your introduction into the world of game development. If you just want to play a bit, check
 out <a href="http://www.rocketcommander.com/">http://www.rocketcommander.com/</a> and download the game there (10 MB).
</p>
<p>You can also take a quick look at the <a href="http://www.rocketcommander.com/downloads.html">
source code</a> (which is freely available like the game) or get an overview about the project by looking at the Class Overview. There are around 20,000 lines of code and maybe 50 classes. Sounds like a big project, doesn't it? But we will take a look at the
 most important classes and even learn in Tutorial 4 how to write our own graphic engine in less than 30 minutes. If you decide to take a deeper look at the source code after watching the tutorials, it will hopefully help you out understanding a lot of the
 game mechanics because the source code is heavily commented as it should be in professional projects. If you have more questions, want help or meet with other developers starting in game development, visit the
<a href="http://arenawars.krawall.de/com/phpBB2/viewforum.php?f=17">RocketCommander Forums</a>.</p>
<h2><a title="rocketcommander_topic1" name="rocketcommander_topic1"></a>Basic Knowledge</h2>
<p>This tutorial is targeted to people, who already know how to program in C# and have basic knowledge of Managed DirectX. If you are not experienced with .NET and programming languages like C# or VB.NET please start with more basic tutorials and webcasts first
 and return to this one later. If you are looking for Managed DirectX tutorials, start with the ones in the DirectX SDK and check out the many free tutorials available in the internet,
<a href="http://blogs.msdn.com/coding4fun/">Coding4Fun</a> is a good starting point. If you want more links check out the Links, webcasts and Tutorials below.
</p>
<p>This tutorial tries to give you more practical view on coding and games than many other tutorials, which only show you a couple of tricks in 100-1000 lines of code. You can write down this amount of code without many comments and it can still be followed.
 But in bigger projects you need much more documentation, comments and planning. If you reach 20,000 lines of code (or 100,000–500,000 lines in bigger projects), you need more structure, a clean programming style, and a constant amount of refactoring. So what
 is refactoring? You will learn about it along with Unit Testing in the first two tutorials. Refactoring lets you restructure and rewrite your code without changing the functionality to improve maintainability and your coding style, sometimes to improve performance
 too. </p>
<p>There are many open source projects (even games), but most of these projects lack good documentation, have not enough comments in the code, and often there are no tutorials for them. Sadly, many of these projects are canceled or are discontinued. It can
 be interesting to look at open source projects, but for beginners this is often very confusing and not helpful. These tutorials try to fit in between and will give you both a big project with source code and hopefully an easy way in.
</p>
<h2><a title="rocketcommander_topic2" name="rocketcommander_topic2"></a>Installation</h2>
<p>Okay, let's begin. The following steps are also explained in detail in the first video tutorial. If you have any difficulties watch it and follow it step by step. First of all, we need Visual Studio 2005! If you don't have Visual Studio 2005 right now and
 don't have any money to buy the Standard or Professional (or, if you are crazy, rich the Team System version), there is also a free version: Visual C# 2005 Express Edition. It is not as powerful and you can't use any add-ins, but it is good enough for our
 game. You can also use any other version or IDE that supports .NET 2.0. You can freely download Visual C# 2005 Express
<a href="http://msdn.microsoft.com/vstudio/express/visualcsharp/">here</a>.</p>
<p>First of all, start with installing Visual Studio 2005. If you already have it installed, skip this step.</p>
<p><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_1.png" width="490"></p>
<p>You should also install the MSDN help. If you don't do this you can still access the help online, but this makes searches take a much longer time.
</p>
<p>Next you need the DirectX SDK, which you can directly download from the Microsoft DirectX page:
<a href="http://msdn.microsoft.com/directx/">Microsoft DirectX Developer Center</a></p>
<p><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_2.png" width="490"></p>
<p>When installing it, you should select installing the Redistributable in the custom setup step too. You will need it if you want to install your game on other computers. When DirectX is installed you can check out the newest features by taking a look at the
 samples with the DirectX Sample Browser. If you haven't worked much with Managed DirectX before check out the documentation and tutorials.
</p>
<p>Last but not least we need NUnit, which you can get from <a href="http://www.nunit.org/">
http://www.nunit.org/</a>.</p>
<p><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_3.png" width="490"></p>
<p>You may ask, &quot;why do I need NUnit?&quot; Well, Rocket Commander is based on Unit Tests and uses the
<b>Agile Methology</b>. In the first two tutorials I will go into details of what this is all about and give you some examples. In short this means that we don't fully design everything in advance and do incorrect planning because we can't know better when
 inventing new stuff. Instead we do a short concept (see Tutorial 2), but we adjust it dynamically as we go along. Unit Tests in our code allow us to make sure everything still runs as expected even if we have to make drastic changes in design. A lot of mini-test-programs
 inside the code allow us to constantly check features and play around with our engine.
</p>
<p>If you are using Visual Studio 2005 Team System you can also use the Unit Testing features implemented directly in VS there. Alternatively there are also other Unit Testing Frameworks around (e.g., MbUnit, csUnit, etc.) and for Visual Studio 2005 Standard
 and above you can also use TestDriven.NET (a plugin to start Unit Tests from your IDE). For this tutorials we will try to keep things simple and only use very basic features of NUnit.
</p>
<h2><a title="rocketcommander_topic3" name="rocketcommander_topic3"></a>Class Overview</h2>
<p><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_4.png" target="_Top"><img title="Click here for larger image" border="0" alt="Click here for larger image" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_4_thumb.png" width="490"></a></p>
<p><b>(Click image to zoom)</b></p>
<p>This is the project overview. It may be a little bit confusing when looking at it for the first time, but later this graphic will help us out understanding the classes and game engine. The program starts with the
<b>Program</b> class (upper left) and this is where we start with Tutorial 1 too. The class overview and the
<b>Graphic Engine</b> are explained in the following tutorials. You could say that any class that display anything on the screen is derived from
<b>IGraphicObject</b>. For the first couple of tutorials we are happy with just the
<b>Texture</b> and <b>Model</b> classes. We can do quite a lot with DirectX, but abstracting it a little bit more give us the advantage not having to write the same code over and over again. This is very important for our graphic engine.
</p>
<p>The second tutorial also explains the concept of the game. Our understanding of the classes is not very advanced right now, but we take a step back and think about the game itself. In the third tutorial we take a look at the helper classes. In the fourth
 tutorial we will write our own graphic engine in less than 30 minutes. This will help your understanding the graphic engine a lot faster. In the following tutorials we then go into each part of the game until we have the full game together in the last tutorial
 and are ready to write our own modification. </p>
<h2><a title="rocketcommander_topic4" name="rocketcommander_topic4"></a>The Tutorials</h2>
<p><b>Tutorial #1. How do I setup Visual Studio for our project?</b></p>
<p>Explains all required steps to install Visual Studio Express and where to get Managed DirectX (Feb06 or better). But not only that, we will also drive deep into the common tools used in game development, including: CodeRush, FxComposer, 3DSMax8, ZBrush,
 Panda exporter for X-files, Photoshop, Paint.NET. At the end of the tutorial we are going to take a quick look at the project and all classes. Then we write our first
<b>unit test</b> to check out some of the cool features in the engine. The unit test is basically a Model Viewer and shows an animated model from the game in space.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial01.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T1.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://msdn.microsoft.com/vstudio/express/visualcsharp/">Visual Studio 2005 C# Express</a><u>
</u><br>
</li><li>Get the DirectX SDK at the <a href="http://msdn.microsoft.com/directx/">DirectX Developer Center
</a><br>
</li><li><a href="http://www.nunit.org/">http://www.nunit.org/</a><br>
</li><li><a href="http://www.codeproject.com/csharp/autp1.asp">Advanced Unit Testing Article</a>
<br>
</li><li><a href="http://www.devexpress.com/Products/NET/CodeRush/">CodeRush</a> (VS plug-in)<br>
</li><li><a href="http://developer.nvidia.com/object/fx_composer_home.html">FX Composer</a>
<br>
</li><li><a href="http://usa.autodesk.com/adsk/servlet/index?siteID=123112&amp;id=5659451">3ds Max 8</a>
<br>
</li><li><a href="http://blender.org/">Blender</a> as a free alternative <br>
</li><li><a href="http://pixologic.com/home/home.shtml">ZBrush</a> <br>
</li><li><a href="http://www.andytather.co.uk/Panda/directxmax.aspx">Panda DirectX Exporter for 3ds Max</a>
<br>
</li><li><a href="http://www.adobe.com/products/photoshop/main.html">Photoshop</a> <br>
</li><li><a href="http://www.eecs.wsu.edu/paint.net/">Paint.NET</a> as a free alternative<br>
</li><li><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/whatismanagedcode.asp">MSDN Managed DirectX</a>
</li></ul>
<p><b>Tutorial #2. Design and Concept: </b></p>
<p>We are writing the concept for our game. You will see the concept of Rocket Commander before the first line of code was ever written and we go into detail about the concept and classes that were planed back then. We have a lot of great ideas in this phase,
 but we while this step is very important and projects that don't do any concepts are usually doomed, we still want to start coding and see some cool stuff on the screen. So at the end of this tutorial we write another unit test and render an Asteroid in Space
 (just 20 lines of code). Then we extend this idea and render a whole field of asteroids until we get a good understanding what classes are required in Rocket Commander to handle all that for us.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial02.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T2.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://agilemanifesto.org/">Agile Manifesto</a> <br>
</li><li><a href="http://www.martinfowler.com/articles/newMethodology.html">The New Methology</a> by Martin Fowler<br>
</li><li><a href="http://www.agilealliance.org/">Agile Alliance</a> <br>
</li><li>Best Programming Books from my blog: <a href="http://exdream.dyn.ee/blog/PermaLink.aspx?guid=b9646192-c5e7-4173-a643-6773e1ba60b1#BestBooks">
Reviews 2005</a> <br>
</li><li>Book series: <a href="http://www.gameprogramminggems.com/">Game Programming Gems</a>
<br>
</li><li><a href="http://www.amazon.com/gp/product/0735619670/002-0859039-6938400">Book: Code Complete 2</a><u>
</u><br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/1556159005/002-0859039-6938400">
Rapid Development</a> <br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/0201485672/002-0859039-6938400">
Refactoring</a> <br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/0131240714/002-0859039-6938400">
Managing Agile Projects</a> <br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/1590591410/002-0859039-6938400">
Maximizing .NET Performance</a> <br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/0131460994/002-0859039-6938400">
Chris Crawford on Game Design</a><u> </u><br>
</li><li><a href="http://www.gamedev.net/">GameDev.net</a> <br>
</li><li><a href="http://www.thezbuffer.com/">The Z-Buffer: Managed DirectX Resources</a>
</li></ul>
<p><a title="rocketcommander_topic4c" name="rocketcommander_topic4c"></a><b>Tutorial #3. Helper classes:</b></p>
<p>Why do we need them? In this tutorial we learn why it is very useful to write so-called helper classes instead of doing the same thing over and over again. These classes will cut down the amount of code we have to do later by a great extent and will make
 our project much more manageable and easier to understand. We will take a look at the
<b>ElapsedTime</b>, <b>Log</b>, <b>StringHelper</b>, <b>RandomHelper</b>, <b>WindowsHelper</b>, etc. classes. We also write a couple of Unit Tests and see why
<b>Test-Driven Development</b> is so useful.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial03.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T3.png"></a>&nbsp;</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://www.gameprogramminggems.com/">Game Programming Gems</a> <br>
</li><li><a href="http://www.codeproject.com/">Code Project</a><u> </u><br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/1590591410/002-0859039-6938400">
Maximizing .NET Performance</a> <br>
</li><li><a href="http://www.gamedev.net/">GameDev.net and Boards</a> <br>
</li><li><a href="http://www.thezbuffer.com/">The Z-Buffer: Managed DirectX Resources</a><u>
</u><br>
</li><li><a href="http://en.wikipedia.org/wiki/Quaternion">Wikipedia Help about Quaternions</a> (as mentioned in the SpaceCamera class at the end of the tutorial)<u>
</u></li></ul>
<p><b>Tutorial #4. Graphic classes: </b></p>
<p>We learn in just 30 minutes how to write our own 3D Engine with help of <b>Test-Driven Development</b>. We don't just create classes for rendering textures and models, but also for rendering fonts on the screen. For the textures we use DDS-Files and the
 models use the X-File format from Microsoft. This tutorial answers questions like:
</p>
<ul>
<li>How do I render textures directly on screen? <br>
</li><li>How do I render models in 3D? <br>
</li><li>How can I display text on the screen?</li></ul>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial04.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T4.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/RCMyOwnGraphicEngine.msi">MyOwnGraphicEngine.zip</a>: The complete engine from this tutorial<br>
</li><li><a href="http://www.gamedev.net/">GameDev.net &amp; Boards</a> <br>
</li><li><a href="http://www.thezbuffer.com/">The Z-Buffer: Managed DirectX Resources</a>
<br>
</li><li><a href="http://www.amazon.com/gp/product/0672325969/002-0859039-6938400?n=283155">Book: Managed DirectX 9</a>
</li></ul>
<p><b>Tutorial #5. Music and Sound:</b></p>
<p>Introduction to DirectSound and DirectX AudioVideoPlayback classes. These are the base classes for sound (.wav) and music (.mp3) playback. We will also learn in several unit tests how to adjust the volume, stereo balance and the frequency of wav files we
 play back. </p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial05.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T5.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://www.gameprogramminggems.com/">Game Programming Gems (Audio chapters)</a><u>
</u><br>
</li><li>Book:<a href="http://www.amazon.com/gp/product/0672325969/002-0859039-6938400?n=283155"> Managed DirectX 9</a><u>
</u><br>
</li><li>Book: <a href="http://www.powells.com/biblio?isbn=1584502452">Game Audio Programming</a>
</li></ul>
<p><b>Tutorial #6. Shader Introduction (TangentVertex class and FxComposer): </b>
</p>
<p>In this tutorial we are finally getting to the more interesting parts of Rocket Commander: Shaders. We check out some current games and compare some screenshots of scenes with and without shaders. Then we go into detail why shaders are so important for games
 in these days. We learn the differences to the Fixed-Function-Pipeline rendering and go depth into shader Development with
<b>FxComposer</b>. We are also learning about the base classes in our engine and the used
<b>VertexFormat</b>. To make things more clear we create our own shader class and write a simple, but effective
<b>SpecularPerPixel</b> shader with Pixel Shader 2.0.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial06.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T6.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/RCTutorial06.msi">Tutorial6.zip</a>: SimpleShader.fx, Marble.jpg and SimpleShader.cs files from the tutorial<br>
</li><li><a href="http://developer.nvidia.com/object/fx_composer_home.html">FX Composer</a>
<br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/1584503491/002-0859039-6938400">
Programming Vertex &amp; Pixel Shaders</a> <br>
</li><li><a href="http://www.delphi3d.net/articles/viewarticle.php?article=phong.htm">Image for the light calculation (phong shading)</a>
<br>
</li><li><a href="http://www.delphi3d.net/articles/viewarticle.php?article=bumpmapping.htm">Bumpmapping overview</a>
<br>
</li><li><a href="http://en.wikipedia.org/wiki/Dot_product">The Dot-Product explained on Wikipedia</a><br>
</li><li><a href="http://en.wikipedia.org/wiki/Cross_product">The Cross-Product explained on Wikipedia</a>
</li></ul>
<p><b>Tutorial #7. Shaders (Parallax, Instancing):</b></p>
<p>Now we finally get to the advanced shaders. This tutorial will let us produce very stunning effects. At first we do a comparison of today games again and take a look at the used shader techniques. Then we learn step by step the
<b>ParallaxShader</b> used in Rocket Commander. We see both how it was developed in FxComposer and how the class in Rocket Commander works together with the ParallaxShader.fx file. We then write our own
<b>unit test</b> and check out the textures for this tutorial in the engine.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial07.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T7.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/RCTutorial07.msi">Tutorial07.zip</a>: Marble, MarbleNormal, MarbleHeight
<br>
</li><li><a href="http://www.delphi3d.net/articles/viewarticle.php?article=bumpmapping.htm">Bumpmapping and Parallax tips</a>
<br>
</li><li><a href="http://www.monitorstudios.com/bcloward/tutorials_normal_maps1.html">Another bumpmapping tutorial</a><u>
</u><br>
</li><li><a href="http://en.wikipedia.org/wiki/Normal_mapping">Normal mapping on Wikipedia</a><u>
</u><br>
</li><li>Book: <a href="http://www.shaderx4.com/">Shader X 1-4 Programming Series</a> <br>
</li><li>Book: <a href="http://developer.nvidia.com/object/gpu_gems_2_home.html">GPU Gems 1-2</a><u>
</u><br>
</li><li>Book: <a href="http://www.amazon.com/gp/product/1584503491/002-0859039-6938400">
Programming Vertex &amp; Pixel Shaders</a><u> </u><br>
</li><li><a href="http://developer.nvidia.com/object/fx_composer_home.html">FX Composer</a>
</li></ul>
<p><b>Tutorial #8. Post Screen Shaders: </b></p>
<p>To make our scene even better looking we apply so called <b>Post screen shaders</b> to our scene. These shaders will manipulate the final image we have rendered on the screen and make everything appear much more consistent. First of all we start with FxComposer
 again and take a look at existing Post Screen Shaders and then we took a look at the more complex Post Screen Shader in Rocket Commander. We will take a look at
<b>Sepia, Sky cube mapping, Bloom, Glow, HDR und Motion Blur effects. </b>Finally we analyze the shader classes in the engine and test these.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial08.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T8.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li>Book: <a href="http://www.amazon.com/gp/product/1592000924/002-0859039-6938400">
Shaders for Game Programmers and Artists</a><u> </u><br>
</li><li>Book: <a href="http://www.shaderx4.com/">Shader X 1-4 Programming Series</a><u>
</u><br>
</li><li><a href="http://www.gamasutra.com/features/20040526/james_pfv.htm">Gamasutra: Real-Time Glow</a>
<br>
</li><li><a href="http://download.developer.nvidia.com/developer/SDK/Individual_Samples/featured_effects.html">NVidia: Shader Effects</a>
<br>
</li><li><a href="http://download.nvidia.com/developer/presentations/2005/GDC/Sponsored_Day/Writing_w_FXComposer.pdf">Writing Shaders with FX Composer (PDF by NVidia)</a>
<br>
</li><li><a href="http://www.mvps.org/directx/articles/rendering_to_multiple_windows.htm">Rendering to DirectX Textures</a>
<br>
</li><li><a href="http://www.nlgx.com/~colin/demos.html">Shaders and Post Screen Effects with RenderMonkey (ATI)</a>
</li></ul>
<p><b>Tutorial #9. Input and Interface:</b></p>
<p>In this tutorial we will learn how to use the DirectInput classes and how Rocket Commander manages all Keyboard and Mouse input with help of several helper classes. Then we take a quick look at the Menu and User Interface classes in the game. This is usually
 a lot of work and can't be done in 30 Minutes, but we will see again that using some helper classes will greatly improve our productivity. Also reuse code as much as possible, this does not only make the coding easier, but also gives a more consistent look
 and feel to the final product. We take a look at the graphics created by the artists and see how we can manipulate and exchange (often called skinning) them, which is important for our next tutorial.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial09.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T9.png"></a>&nbsp;</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://www.gameprogramminggems.com/">Game Programming Gems</a><u> </u>
<br>
</li><li><a href="http://www.codeproject.com/">Code Project Articles</a> </li></ul>
<p><b>Tutorial #10. Game logic: </b></p>
<p>We have now all our basic elements for our game engine and can finally implement some game logic. Eighty percent of the tutorials did not really explain much of the game principles in Rocket Commander, but how the engine works. To leverage this knowledge
 we will learn how to extent the game. As an example we develop <b>Flower Commander</b>, which is a total conversion of Rocket Commander with just few very simple changes in the code.</p>
<p>As you can see on the screenshots the whole game looks much different, even the main menu looks different. All this is done by just exchanging three or four textures and one model (the flower instead of the asteroids). The game principle changes also a little:
 Instead of evading asteroids, we have to collect flowers now. We are not sitting inside a Rocket anymore, but we are a bee trying to collect honey (sounds crazy, but it is actually fun). Additionally we learn a lot of tricks and tips because the tutorial shows
 you that creating a mod can cause some problems, and instead of ignoring them we will check out what when wrong and learn how to adjust the game to our needs.</p>
<p><a href="http://download.microsoft.com/download/1/8/2/182200e0-cf87-47d6-87a7-32cb36bbfa42/Tutorial10.wmv"><img border="0" src="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/rocketcmd_T10.png"></a>
</p>
<p><b>Links:</b> </p>
<ul>
<li><a href="http://ecn.channel9.msdn.com/o9/c4fcontent/migration/997852/_20RCFlowerCommander.msi">Flower Commander Source Code</a><br>
</li><li><a href="http://www.octanedigitalstudios.com/page4.html">Free Sky Cube Maps</a>
<br>
</li><li><a href="http://www.gamedev.net/">GameDev.net &amp; Boards</a> </li></ul>
<h2><a title="rocketcommander_topic5" name="rocketcommander_topic5"></a>Conclusion</h2>
<p>Our game now consists of: Input, Interface, Game logic, Helpers, Music, Sound, Graphics: Shaders, ParallaxMapping, TangentVertex helper classes, Instancing, Post Screen Shaders, Models, Fonts, Materials, Textures, Lens Flare effects.
</p>
<p>More tutorials might be done at a later point in time. Tutorial #10 mentions a couple of interesting topics: More extensibilities, physics, game screens, manager classes, space camera, player and multiplayer capabilities, etc.</p>
<h2>Further Links</h2>
<p>If you are searching for more .NET or DirectX websites or tutorials, check out the following links:
</p>
<ul>
<li>If you don't have much basic knowledge of programming languages and especially .NET, you should start by reading a C# or .NET Book. If you know C&#43;&#43; or Java, you are pretty close to C# and won't have many problems anyway. There are many C# beginner books,
 just do a search on Amazon.com. <br>
</li><li>The MSDN help system is the biggest and most comprehensive help you can get for .NET and DirectX:
<a href="http://msdn.microsoft.com/">MSDN</a>. <br>
</li><li>The help for DirectX can be found here: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_m/directx/whatismanagedcode.asp">
MSDN Managed DirectX</a>. <i>Important:</i> Don't neglect the DirectX C&#43;&#43; help. Maybe it looks complicated, but there are a lot more samples and documentation, so check it out!
<br>
</li><li>There are a lot of webcasts around on MSDN and other sites; for example, <a href="http://www.digipen.edu/main/Webcast/Introduction_to_2-D_Video_Game_Development">
Learn to write C# the fun way</a> <br>
</li><li>The book about Managed DirectX by <a href="http://blogs.msdn.com/tmiller/">Tom Miller</a>:
<a href="http://www.amazon.com/gp/product/0672325969/002-0859039-6938400?n=283155">
Managed DirectX 9</a> <br>
</li><li><a href="http://www.gamedev.net/">GameDev.net</a> <br>
</li><li><a href="http://www.thezbuffer.com/">The Z-Buffer: Managed DirectX Resources</a><u>
</u><br>
</li><li><a href="http://www.thezbuffer.com/categories/tutorials.aspx">Tutorial-Links at Z-Buffer.com</a><u>
</u></li></ul>
 <img src="http://m.webtrends.com/dcs1wotjh10000w0irc493s0e_6x1g/njs.gif?dcssip=channel9.msdn.com&dcsuri=http://channel9.msdn.com/Niners/c4f.Benjamin-Nitschke/Posts/RSS&WT.dl=0&WT.entryid=Entry:RSSView:56cc048eeb7b4583a82e9e7600d93de9">]]></description>
      <comments>http://channel9.msdn.com/coding4fun/articles/Rocket-Commander-Tutorials</comments>
      <itunes:summary>



&amp;nbsp;
Welcome to the Tutorials of Rocket Commander. You will learn step by step in ten 30-minute video tutorials how to develop a game like Rocket Commander. This can be your introduction into the world of game development.



Benjamin Nitschke
Benjamin Nitschke&#39;s Blog

Difficulty: Intermediate
Time Required: 
Greater than 10 hours
Cost: Free
Software: Visual C# Express Edition
Hardware: 
Download: 

Download Code
Download Code






 
Welcome to the Tutorials of Rocket Commander. You will learn step by step in ten 30-minute video tutorials how to develop a game like Rocket Commander. This can be your introduction into the world of game development. If you just want to play a bit, check
 out http://www.rocketcommander.com/ and download the game there (10 MB).
 
You can also take a quick look at the 
source code (which is freely available like the game) or get an overview about the project by looking at the Class Overview. There are around 20,000 lines of code and maybe 50 classes. Sounds like a big project, doesn&#39;t it? But we will take a look at the
 most important classes and even learn in Tutorial 4 how to write our own graphic engine in less than 30 minutes. If you decide to take a deeper look at the source code after watching the tutorials, it will hopefully help you out understanding a lot of the
 game mechanics because the source code is heavily commented as it should be in professional projects. If you have more questions, want help or meet with other developers starting in game development, visit the
RocketCommander Forums. 
Basic Knowledge
This tutorial is targeted to people, who already know how to program in C# and have basic knowledge of Managed DirectX. If you are not experienced with .NET and programming languages like C# or VB.NET please start with more basic tutorials and webcasts first
 and return to this one later. If you are looking for Managed DirectX tutorials, start with the ones in the DirectX SDK and check out the many free tutorials ava</itunes:summary>
      <link>http://channel9.msdn.com/coding4fun/articles/Rocket-Commander-Tutorials</link>
      <pubDate>Mon, 06 Nov 2006 09:17:00 GMT</pubDate>
      <guid isPermaLink="false">http://channel9.msdn.com/coding4fun/articles/Rocket-Commander-Tutorials</guid>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/997852_100.jpg" height="75" width="100"></media:thumbnail>
      <media:thumbnail url="http://ecn.channel9.msdn.com/o9/c4f/images/997852_220.jpg" height="165" width="220"></media:thumbnail>      
      <dc:creator>Benjamin Nitschke</dc:creator>
      <itunes:author>Benjamin Nitschke</itunes:author>
      <slash:comments>22</slash:comments>
      <wfw:commentRss>http://channel9.msdn.com/coding4fun/articles/Rocket-Commander-Tutorials/RSS</wfw:commentRss>
    </item>    
</channel>
</rss>