Microsoft DirectX SDK (November 2007) Released

Microsoft have just Released the DirectX SDK (November 2007 Release).


Included in this release is a small naote that as of March 2008 the DirectX SDK will support Visual Studio 2008, and will drop support for Visual Studio 2003.


The one thing that you will find is that several components of the SDK have been removed.


The DirectX SDK No Longer Contains…

The DirectX SDK no longer contains the following components:

  • Direct3D8 and all of the earlier versions
  • Direct3D RM
  • DirectAnimation
  • DirectMusic
  • DirectInput7 and all of the earlier versions
  • DirectPlay
  • DirectPlayVoice
  • DirectX8-era HRESULT conversion routines
  • Managed DirectX samples and documentation

Developers wanting to use these components will need to download the August 2007 DirectX SDK, available from MSDN.

The REDIST and Web DXSetup have not been affected by these removals.


Here are the Direct Links to the Downloads…



 


Cross Post from www.virtualrealm.com.au

XNA Tutorial – Fading in a Splash Screen Logo

In my previous article we put together a small base application that could be used as a splash screen in an XNA Based Application; with today’s article we are going to add a nice fade effect to the code. For this article we are going to perform a fade on the logo texture only, this will allow you to have a normal background setup and just fade the logo over the top.


To start with load up the previous example and make sure that it is running. If you have not completed the base application here is a link to the article. (XNA Tutorial – Creating a Splash Screen)


We are going to perform the fade using the alpha channel of the logo and Color of the texture. When you normally use a Color you would use the Color Name to set it up i.e. Color.White, or you could use the full RGB values. Below is a small section of code that shows some of the different ways you could set up a Color.


[code language="C#"]
Color color = Color.White;
Color color = new Color(new Vector3(255, 255, 255));
Color color = new Color(255, 255, 255);
[/code]


But you will find that the Color system also takes a forth value for the Alpha channel.


[code language="C#"]
Color color = new Color(new Vector3(255, 255, 255, 255));
Color color = new Color(255, 255, 255, 255);
[/code]


This is what we are going to use to fade the logo. When using this value of 0 means that the Texture will be 100% transparent, and a value of 255 will show the texture as 100% solid.


To fade the logos texture I want to keep a base color and only adjust the Alpha Channel of the texture for this I have put together a small function, add the following function to the bottom of the main game class.


[code language="C#"]
public Color FadeColor(Color baseColor, float FadeValue)
{
Color tempColor;
tempColor = new Color(baseColor.R, baseColor.G, baseColor.B, (byte)FadeValue);
return tempColor;
}
[/code]


Next we will need to add the following Globals just under the logoRotationAngle call.


[code language="C#"]
float       logoFadeValue;      // Current Value of the Fade for the Logo
float       logoFadeSpeed = 60.0f; // Speed at which the Fade will happen
[/code]


This will be the Current Fade Value for the logos Texture, as well as the speed at which the logo will fade. The next stage is to add some code to the Update call for the application.


Add the following code to the main Update call in the Games main class.


[code language="C#"]
float timeDelta = (float)gameTime.ElapsedGameTime.TotalSeconds;


if (this.logoFadeValue < 255)
{
this.logoFadeValue = this.logoFadeValue + (timeDelta * this.logoFadeSpeed);
}
else
this.logoFadeValue = 255;
[/code]


The code above sets up a constant time value that we can use to smoothly animate our logos fade. The next few lines actually do the fade, what I does is slowly update the fade value until it reaches 255 (Solid) once there it will stay there.


The final stage is to change the Draw call for the application so that it will utilize the fade code we have just added. Change you spriteBatch.Draw line to look like the following.


[code language="C#"]
this.spriteBatch.Draw(this.logoTexture, this.viewportCentre,
     null, FadeColor(Color.White, this.logoFadeValue), this.logoRotationAngle, this.logoCentre,
     1.0f, SpriteEffects.None,0.0f);
[/code]


You will notice that all we change was the call to the Sprites Color; here is where we add the FadeColor call so that we can change the Color value as the game animates.


When you have finished here you should be able to now run the application and see your logo fade from nothing to a solid image. If you would like to speed up or slow down the fade all you need to do is change the logoFadeSpeed value to a different value.


That’s it for this one, hope someone finds this useful.


Cross Post from www.virtualrealm.com.au

XNA Tutorial – Creating a Splash Screen


I am currently working on a small collection of projects, what I am finding is that I want to put a splash screen onto each application. This splash screen would display my logo and any of the partner logos for the application before the application starts.
In doing this I also saw that there are not that many articles or tutorials being posted, maybe the little bit of a slump is due to the fact the everyone is busy or they are just waiting for the release of XNA 2.0. So I have decided to try and post a small series of articles that show different ways of displaying the Splash Screen and some different effects that can be applied to it. Over the period of the articles if you think of some other effects please post them and I may add them to the list.


This is the first in the series, and there for each of the following articles will be using this small application as a base. Note that the examples that I am going through will not be in the form of a component or a system that you can plug into any application. What I will be doing is creating small applications that show the effects and the methods to complete those effects. You should then be able to modify your code using these effects. But in a short period I will be going through the process of adding a splash screen or integrating this base application into the Game State Sample supplied on the Creators Site.


To start the base application create a new Windows based game, for the purpose of this article I called it Splash_01. Now that we have the main base of the application created we will need to setup some common changes to the application.
The first is to change the screen size so that it has a good wide screen look to it; you will find that this is also the same size screen that the game state sample uses. This is done by adding the following lines of code to the game applications main constructor.


[code language="C#"]
// prefer a resolution suitable for both Windows and Xbox 360
graphics.PreferredBackBufferWidth = 853;
graphics.PreferredBackBufferHeight = 480;
graphics.ApplyChanges();
[/code]


With this example I want to be able to draw the logo for the splash screen at the centre of the screen, to do this we need to know where that centre is. This can be done by adding the following global just under the declaration for the content and GraphicsDevices Managers.


[code language="C#"]
Vector2 viewportCentre;
[/code]


And then adding the following just under the code to change the games screen size.


[code language="C#"]
this.viewportCentre = new Vector2(this.graphics.GraphicsDevice.Viewport.Width / 2, this.graphics.GraphicsDevice.Viewport.Height / 2);
[/code]


Now that the base has been setup we really need to draw the logo. With this ample and the ones moving forward, I would like to be able scale, rotate and do other things to the image. To do the basic functions I am going to need so simple global set up. Add the following globals just underneath the viewport declaration we added.


[code language="C#"]
SpriteBatch spriteBatch;


Texture2D   logoTexture;        // Texture for the Logo
Vector2     logoCentre;         // The Centre of the Logo Texture
float       logoRotationAngle;  // The Rotation Angle of the Texture Image
[/code]


Of course in the last step I added the SpriteBatch call, without this we would not be able to display the logo and perform the tasks going forward. With the globals set and the Device created the next stage is to setup and load the content.


The first stage in Setting up the content is to actually add the logo image, with this application add a new folder to the game using the solution explorer and call it “Content”. Next inside that folder add another folder called “Textures”. The Textures folder will be holding all of the textures that we are going to be using for the application. In future articles I will be adding other folders to the application to store different types of content files, these could include sprite fonts, audio, and effects.


Add you logo Image to the Textures Folder. This could be any logo that you want to display in the Splash Screen.


At this stage we will also be setting up the Centre of the logo that we are going to draw. Add the following code to the LoadGraphicsContent call in the application.


[code language="C#"]
this.logoTexture = content.Load<Texture2D>(@"Content\Textures\Logo_01");
this.logoCentre = new Vector2(this.logoTexture.Width / 2, this.logoTexture.Height / 2);
this.logoRotationAngle = 0.0f;
               
this.spriteBatch = new SpriteBatch(this.graphics.GraphicsDevice);
[/code]


The above code loads the logo image into the Texture variable, and then we find the centre of that texture and set the rotation to a 0 angle.
The Final step is to add the Draw code to the application, add the following code to the Draw call for the Application.


[code language="C#"]
this.spriteBatch.Begin(SpriteBlendMode.AlphaBlend);


this.spriteBatch.Draw(this.logoTexture, this.viewportCentre,
     null, Color.White, this.logoRotationAngle, this.logoCentre,
     1.0f, SpriteEffects.None,0.0f);


this.spriteBatch.End();
[/code]


The first line of code sets up the sprite batch so that we will utilize the Alpha Channel of the image (This will help us to see the background through the Image). The next line draws the actual sprite onto the screen. With this call we are passing the Texture to the call as well as the viewport centre for the position, but we are also passing the rotation angle of the sprite and the centre of the Logo’s Texture. There are some other values being passed to the call but for the moment we do not need to worry about them, just trust me they are there for a reason.


When drawing the Sprite you have the choice of several overloads, the most common is the Spritebacth.Draw(Texture, Position, Color) but with the above we are going to change the origin of the sprite so that when we pass a position to the call the sprite will be drawn so that the origin we have set up is drawn at the position we pass. This comes in handy when rotating sprites, there is more information on this in the documentation that ships with the XNA Framework System.


Ok that’s it for the first Application; this application is going to be used as a base for a series of articles so keep it safe. If you run the application now you should be presented with a wide screen application that has your logo in the centre of the screen.


Until next time Thanks and if you have any thoughts or comments please post a comment.


Cross Post from www.virtualrealm.com.au

Imagine Cup 2008 – Now includes a Game Development Category

The Imagine Cup is back on again, and for the first time the Competition includes a Game Development Category.


“Game Development

As video games are becoming a major part of mainstream entertainment the opportunity to do something socially responsible with the medium has arrived.  This year’s “Xbox 360 Games for Change Challenge” will represent the first time a game development category has been available during the Imagine Cup.  This year’s challenge will be the ultimate test of a student’s creative and technical skills as they create a game that is not only entertaining but has a social message about creating a sustainable environment.  Utilizing Microsoft’s ground breaking new XNA Game Studio Express, competing students from around the world will have the chance to gain international exposure for their games.  Not only will cash prizes be awarded, these winners will then have an opportunity to come to Microsoft and present their entry to the Microsoft games management team for possible inclusion as a download in the popular Xbox LIVE Arcade service or MSN Games Web site. The first place team, or individual, will also win the opportunity to become an apprentice at Microsoft’s Interactive Entertainment Business as part of its internship program. We’re announcing the winner next spring 2008 at the worldwide finals in Paris, France. Game Development is a game contest briefed by Games for Change and XNA Technology team.”


For more information on the Imagine Cup, please visit the Website. Just in case you do not know what the Imagine Cup is here is a brief snippit from the main website.


“The Imagine Cup is one way Microsoft is encouraging young people to apply their imagination, their passion and their creativity to technology innovations that can make a difference in the world – today. Now in its sixth year, the Imagine Cup has grown to be a truly global competition focused on finding solutions to real world issues.”


 


Cross Post from www.virtualrealm.com.au

SNEngine – XNA Based Game Engine

Sneftrup is currently working on an XNA based engine for his Imagine Cup Entry, at the moment there is not much to talk about but as soon as he feels the engine is ready for the public he plans on releasing it.


“I’m currently working on a game engine in XNA that going to be the engine used for my Imagine Cup game. I’ve named it SNEngine, (SNeftrup Engine), and it’s my first attempt at building a complete game engine. I’m using XNA, and so far, this is the current features of SNEngine.

  • Basic scene control using a scenegraph
  • Skyboxes
  • Multiple cameras
  • Input handling using a simple input manager

As soon as I have something I deem ready for the public, I will release my SNEngine.”


 Good luck with the project and good luck with your Imagine Cup Entry.


Here is a Direct Link to the Post


Cross Post from www.virtualrealm.com.au

3D Physics Engine for XNA in Progress

Nick Gravelyn has been waiting for a while for a 3D physics system for his XNA Projects, but it looks like the wait has just been too long.


“I’m sick of waiting for a 3D physics engine to hit for XNA. For 2D, there’s Farseer, Jello Physics, and ChipmunkXna to at least get you going. But in 3D we really don’t have anything. Sure on PC you can use one of the managed wrappers for ODE or Newton. And there is the BulletX engine, but last time I checked that out, which was a while ago admittedly, the API was, in my opinion, horrendous and it seems like work on it is going pretty slowly.”


To prove that he has got at least a working system he has also droped us a small video, Great work Nick keep it up and I am looking forward to seeing the end product.


Here is a Direct Link to Nick’s Post.


Cross Post from www.virtualrealm.com.au

Book Review – XNA Game Studio Creator’s Guide

 


XNA Game Studio Creator’s Guide


By Pat McGee and Stephen Cawood



Link to Amazon


Over the last few weeks I have been lucky enough to have the chance to read the book “Microsoft XNA game Studio Creators Guide” by Stephen Cawood and Pat McGee. I found that the book excellent and went into the details of using the game studio system very well. I feel that for a beginner that is starting their travels with XNA, this book would be a good start.


With the Book you have the ability to download the Source code from the books companion website. This code is easy to read and understand, it has also been sorted out will into different folders and stages so as not to confuse the new developer.


I do not want to dive into reviewing the complete chapter breakdown of the book and dig into each and every sample, but what I will say is that I feel that the chapters and content are laid out well and are easy to follow. You will find that if you do follow the book from Chapter one through to the end you will be presented with the complete process.


But if you are like some and search the book for a chapter or topic you are interested in you will not be disappointed. This book is set out in a way that you are able to pick up a chapter and go through it with out being hindered. You will find that the examples normally start from a citrating point that you can continue on from, or start from a base project that is also included in the sample source code.


One of the bonuses I did find in the book is a chapter on using MilkShape 3D. MilkShape 3D is a small affordable application that was developed by Chumbalum Soft and can be used to design your models for your XNA Applications. The author goes through the basic functions of the application to show you how to design a Model, perform some basic animations with it, and then to finally load and use the model inside an XNA Application.


For those who are new to 3D or even 2D game programming the author has also included couple of chapters on some basic vector and matrix calculations. These chapters will help you get started, but I do suggest that you pick up a book that explains it deeper if you want to get into the more advanced topics.


Overall I found that the book is complete and would be a good start to any beginner, as well as being a good reference for any intermediate XNA game developer. I did find that going through the book I was able to pick up some different approaches to performing some tasks. Some of these would not have been the way I would have gone, but none the less they work. I personally would have liked to see a little bit more on Game Components and Game Services as I feel that these are a handy group of systems that can be used with the XNA Framework and Game Studio.


Thanks to Pat ans Stephen for a great book,


Glenn “Mykre” Wilson
Microsoft XNA/DirectX MVP.


 


Amazon Book Information.


Link to Amazon.

Book Description


Bring your gaming visions to life with Microsoft XNA Game Studio Express


Create complete 3D games using Microsoft XNA Game Studio Express and this hands-on guide. Written by experienced game developers, Microsoft XNA Game Studio Creator’s Guide details the fundamentals of great game programming and offers detailed examples.


Inside, you’ll learn to program a game engine, write shader code, create and animate 3D models, and add fluid motion and special effects. You’ll also find out how to launch ballistics, add realistic scenery and terrain, and integrate lighting and textures. Step-by-step tutorials on underlying C# code and explanations of vector and matrix techniques are included.


  • Build and dynamically update XNA game windows and custom 3D objects
  • Learn scintillating animation techniques
  • Create lifelike skyboxes, textures, lighting, and shading effects
  • Program shaders using high-level shader language
  • Develop single- and multi-player games
  • Generate and code terrain with height detection
  • Construct impressive graphics using sprites, multi-texturing, and blending
  • Integrate audio, game dashboards, and score tracking
  • Develop realistic collision detection, ballistics, and particle effects
  • HaHHhhndle keyboard, mouse, and game controller input
  • Create static *.fbx and animated Quake 2 models and control them in code

About the Author


Stephen Cawood is a former program manager at Microsoft Corporation. He has written several gaming titles.


Pat McGee is a faculty member and course developer at the British Columbia Institute of Technology. He is a game programmer.


Product Details


  • Paperback: 456 pages
  • Publisher: McGraw-Hill Osborne Media; 1 edition (June 25, 2007)
  • Language: English
  • ISBN-10: 007149071X
  • ISBN-13: 978-0071490719
  • Product Dimensions: 9.1 x 7.3 x 1.1 inches
  • Shipping Weight: 1.7 pounds

Cross Post from www.virtualrealm.com.au

Gamefest 2007 Presentations are Now Online

For those of you like me who whee not able to attend this years Gamefest, the presentations are now all online (Well most of them). With the information contained you will be able to start getting yourself ready for the release of XNA 2.0.


Included in the presentations is a small intro to some of the new features of the XNA 2.0 system as well as a small look at the networking systems that are planned to be included.


Here is a Direct Link to the Presentations. Note that note only do the presentations include XNA Content, they also included content from all areas of Microsoft Game Development.


Cross Post from www.virtualrealm.com.au

XNA Toolkit – New Collection of XNA Tools by Nick G

Nick Gravelyn has just released a small set of tools for the XNA Framework, he has called this tool set “XNA Toolkit“. At the moment there are only two tools included in the set but it is a good start.


The first tool is a “Spritefont” File Generator that will assist you in creating those xml files to define your sprite fonts, and the second is a class generator that will wrap around your .fx files and generate the c# classes.


“Currently the two applications are the EffectClassGenerator and XNAFontCreator. XNAFontCreator is a small WinForms application I wrote to assist in generating those pesky .spritefont XML files. It lets you choose a font from a list, customize all the properties, and then of course saving and loading. The application also has a built in favorites list (saved as text file in the user’s My Documents folder) so you can easily remember fonts you like using.

The EffectClassGenerator is another nifty app. It works by you dragging in any .fx file. The application will then generate a C# class to wrap that effect file. It builds an enum to use for selecting techniques (no more string garbage when switching techniques) as well as use EffectParameters with properties to get and set values (no more string garbage when setting parameter values). It’s a very nice tool if you want to make sure you are keeping garbage low and avoiding typos when working with effects.”


Cross Post from www.virtualrealm.com.au

New XNA Blogger – Using XNA with VB.Net

Going through my normal searches for new XNA Goodies I cam across a new blogger that is working on some video tutorials that will assist a VB.Net programmer get started with XNA. Just note that this is not a tutorial set on how to convert your programming skills over to C#, it is a set of tutorials that uses VB.Net and XNA.


 Direct Link to the Blog Site.


Current List of Tutorials



For another resource on VB.Net programing and XNA check out Alans Site.


Cross Post from www.virtualrealm.com.au