Categories

Navigation

MVP

Microsoft MVP (since 2006) in the XNA/DirectX category

Tag cloud

Ajax (8) All (206) Arena Wars (21) Boo (4) BroodWar (8) Conferences (1) Development (44) Game Development (142) IronPython (3) Lost Squadron (17) Lua (6) meinSport.de (4) Other (150) Polynapping (12) Programming (156) Racing Game (7) Reviews (76) Rocket Commander (49) Silverlight (10) SQL (1) StudiHelp.de (2) XNA (40)

On this page

My day at the CeBIT 2008
All XNA Games converted to XNA 2.0 from Rocket Commander to the Racing Game.
Pics from my new office in Hamburg
Converting XNA 1.0 Projects to XNA 2.0
SQL Tools for synchronizing databases
German: Arbeitsbedingungen in der Spielebranche
Fixing the 'Could not load file or assembly 'xunit, Version=7.10.25.1028'' error
Videos about Web 2.0 and Santa Claus
Silverlight 1.0 RC and 1.1 Alpha Refresh released
Silverlight Error Codes Explained!
Xna Project Changer Tool (with VS 2008 support)
RegionAddin to fix collapsing and expanding regions in Orcas and IronPython region support!
MVP again!
CodeRush has now VS Orcas support
Arena Wars Reloaded Website launched
StudiHelp.de Ads in Second Life
Article in Wired about Dungeon Quest from the GDC 2007
StudiHelp.de Beta Launches
Silverlight and I spotted A Racing Game Mod: Cyber Car
My XNA book is out and XnaProjects.Net launches
XNA Racing Game downloads now available on creators.xna.com
Annoying Files Remover Tool
SearchDotNet, a new search site just for .NET Developers
ASP.NET Ajax Template support in Visual Studio Orcas
Installing Visual Studio Orcas March CTP and getting Addins like CodeRush to work with it
Impressions from the CeBIT 2007
The Dungeon Quest Game
Rest of GDC Pics
After the GDC
GDC Day 4 - The Game is done
GDC 2007 - Dungeon Quest - Day 3
Dungeon Quest - Day 2
GDC 2007 - Dungeon Quest - Day 1
San Francisco Day 1
Some new Arena Wars Reloaded pics
The GDC (Game Developers Conference) 2007 in San Francisco
Skeletal Bone Animation and Skinning with Collada Models in XNA
Welcome to my new blog
XNA News
XNA Shooter Game
Your Christmas Present: Rocket Commander XNA
German developer price: Deutscher Entwicklerpreis 2006 - Pics
XNA Game Studio 1.0 released
Canyon Commander Mod for Rocket Commander released!
That leaked XNA Racer Video on YouTube
Bye Seattle, Back to Germany!
Seattle Day 5 - Another rainy day
Seattle Day 4 - From a tourist point of view
Seattle Day 3 - XNA Presentations and Meeting ZMan and Jason Olson
Seattle Day 2 - Second day at Microsoft
Seattle Day 1 and XNA Video and Canyon Commander
Seattle Day 0
Flying to the USA to visit the XNA Team
XNA Game Studio Express Beta 2 released
Long time, no see
Quick Tips for XNA Beta 1 (aka My Own XNA FAQ)
XNA Game Studio Express Beta1 Released
More pics from the GC 2006
Getting XNA to work in Windows XP x64
Games Convention 2006 in Leipzig Germany - Day 4
Games Convention 2006 in Leipzig Germany - Day 3
Games Convention 2006 in Leipzig Germany - Day 2
Games Convention 2006 in Leipzig Germany - Day 1
AbiTrafficMonitor v1.4 Update
Windows XP x64 Experiences
XNA Game Studio Express announced
AbiTrafficMonitor Tool
CR_Commenter v1.7 Update
New Pizza Commander finished and Quicksand entertainment goes online
Top 10 Most Useful Tools
Working with DLinq, Linq and Xml
And another Mod: Virus Commander, this time made by a player
I got an Microsoft MVP Award :)
Pizza Commander goes commercial
Fussball Commander released
Article in german dot.net magazine
Modern Web Design
DirectX June2006 and testing Vista Beta 2
Having fun with C# 3.0 (LinQ CTP May 2006) and CR_Commenter v1.6 Update
Playing around with Atlas and Google Maps
Gamestar/dev 2006-03 Title Story
Game Competitions
Zombie Quest - A new free 2D Adventure
Links for the Webcasts
New look for www.exDream.com
Doxygen rulez!
Reminder: Rocket Commander webcasts next week.
Freifunk-Hannover
Pizza Commander released!
Visual Studio 2005 SDK V2 (April 2006) released
New Rocket Commander Mod: Fruit Commander and other cool Tools
English Rocket Commander Tutorials are finally up on Coding4Fun
DirectX SDK April 2006 and Quo Vadis conference pics
Quo Vadis April 6.-8. 2006
All kinds of XBox News
CeBIT 2006 Pictures
Flower Commander V1.1 available and Coop Commander Preview Video
Rocket Commander V1.1 avialable now and www.RocketCommander.com launched
Coding4Fun.de Launch with the Rocket Commander and www.RocketCommander.com coming soon
CeBIT 2006 in Hannover
Coop Commander, New Arena Wars boards and Polynapping Update
Coop Commander - More screenshots
More Commanders
NormalMapCompressor v1.4
DirectX 9 SDK February 2006
3ds Max 8 Service Pack 1 fixes finally IGame
How to disable the "Loader Lock" debug window in Visual Studio 2005 when using Managed DirectX
Another crazy post at GameDev.net
CR_Commenter Update v1.5 and testing out the Boo Language
The year 2005 - Reviews of Games, Movies, Software and Programming Books
Merry Christmas and a Rocket Commander Video
c# is getting more and more accepted in the game programming community
Moving to Managed DirectX for .NET 2.0
Rocket Commander Beta 2
Rocket Commander Beta-Test
German developer price: Deutscher Entwicklerpreis 2005 - Pics
German developer price: Deutscher Entwicklerpreis 2005
Article in gamestar/dev magazine
Rocket Commander: Week 3
Visual Studio 2005 Express Editions for free!
Rocket Commander: Week 1
New Project: Rocket Commander
Moving to DasBlog v1.8
Generating Xml data from Xml Schemas
CR_Commenter Update v1.4
My experiences from the PDC, Los Angeles and Hollywood
NormalMapCompressor v1.3 and PDC information
The Trick with Mesh.ComputeTangent
Raid explained.
Google Talk?
Pics from the Games Convention
NormalMapCompressor - An useful tool to automatically compress your normal maps.
EuroVernichter v1.3 Update and NormalMapCompressor sneak preview
New Fancy Guide for Installing Visual Studio Team Foundation 2005 Beta2
A new more effective keyboard layout for programmers
Lost Squadron, Day 19: Shoot'em'up
www.ArenaWars.net was hacked :(
Whats going on?
I'm only the second search entry at google
Trying out Google ads
Turn on Mondays, the new internet radio show by the dotnetrocks makers
Arena Wars v1.2 released and I'm very tired
What the hell is going on with Halo2 and GTA?
Arena Wars v1.2 Beta2 now available
Arena Wars v1.2 Beta released
Gmail in da house
Cool tools
My Bookmarks
Contact
Welcome to my Blog WebSite

Archive

Popular

My Bookmarks
CR_Commenter Update v1...
Contact
A new more effective k...
Getting XNA to work in...
How to write a CodeRus...
NormalMapCompressor v1...
English Rocket Command...
Migrating ASP.NET VS20...
The year 2005 - Review...
Rocket Commander V1.1 ...
New look for www.exDre...

Blogroll

Projects

Arena Wars (2004)

Rocket Commander (2006)

Pizza Commander (2006)

Rocket Racer (2006)

Coop Commander (2006)

Flower Commander (2006)

Fruit Commander (2006)

Euro Vernichter (2003)

Lost Squadron (2005)

Zombie Quest (very simple 2D Adventure, 2006)

Freifunk Hannover project (GoogleMaps support)

Older projects (2000 and earlier)

MeinSport.de - German Sport Community Site

About

About me: Contact

Send mail to the author(s) Email:

Total Posts: 213
This Year: 9
This Month: 0
This Week: 0
Comments: 403
Made with

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

RSS 2.0 | Atom 1.0 | CDF

My brothers

netfreak.de

mirkman.de

Sign In

 Saturday, March 08, 2008
Saturday, March 08, 2008 10:55:37 PM UTC (  |  |  |  )
Sorry about all the delay, I wrote 4 blog posts already in this week, but did not finish them up (was always too tired to post them). I will post them in the next few days. Instead this blog post is just about today.

The day started with the Community GetTogether Event from Microsoft on the CeBIT, where all the MVPs, CLIP, RDs, Student Partners, Codezone-Experts and Microsoft Evengelists from Germany met. Last year I could not attend the CeBIT or the Community GetTogether in Germany because I was on the GDC 2007 in San Francisco and wrote the GDC Dungeon Quest game there ^^

The first session was about Internet Explorer 8 Beta 1. Download it here if you want to try it out, it got some nice features for developers and other things like Activities and Webslices, which sound nice, but you will have to wait until more websites actually support them. The browser does not convince me yet. Maybe the presentation was not that great, many webpages did not look ok and the browser crashed several times, it also looks pretty much the same as IE7. I'm still using Firefox 2 (and 3 for playing around a bit) a lot more than any other browser, especially thanks to great addons like FireBug.

Anyway, after another session about Students in Germany and their lack of .NET knowledge and other things like how many do wash their clothes themselfs, the nice girl in front of me from Microsoft reminded me to take some photos myself :) Got ya, haha.


In between the sessions I met with my good friend Luo Yu (see photo, he is an amazing graphic artist and works with me on a couple of projects) and an ex-intern of mine Stefan Kraus from BiteTheBytes.com (see website link for more information, no photo here ^^). Stefan is involved in some interesting projects, some smaller games and especially his Cloddy Technology, which was created by him and 2 other friends to render huge 3D landscape areas with high performance in a unlimited amount of detail (well, after asking what that means it turns out it is limited by doubles ^^).


I sat through another session of the GetTogether Event, this time by my good old compadre Dirk Primbs about Visual Studio 2008. He has a lot of webcasts links on his blog, check it out if you want to see some german sessions :) Otherwise you should definately check out the Mix08 Session Videos from Las Vegas, I find the Video with the fake Elvis asking people about Silverlight 2.0 the funniest.

After some networking and meeting Microsoft people I joined with the other guys and walked through some CeBIT halls. Nothing special about the halls or people, it was very packed as always on Saturdays.


And as you can see here, if you look into this absolutely normal looking device and put these absolutely non-freaky glasses on, you can see some non-ugly animated figure telling waving at you in 3D. But beware, after a minute you might get some headaches and you have of course keep your head still and only look from a certain angle and distance. Man, when do they ever stop producing this bullshit? It is always the same kind of device in the last 10 years and no one buys it or really wants it.


Ok, here we see one of the exhibitors of the Games Convention 2008 throwing some stuff into the crowd .. wait a second, we are not on the Games Convention yet, this is still the CeBIT, but ok, it is Saturday and the people do not care where the presents are coming from. Fun to watch as always, and we have to ignore the fact that 10 years ago I was one of those guys too wanting to get a free ball pen I would never use.


These guys are building a freaking looking robot and have certainly not seen the new Terminator series yet. They are actually from the TU Chemnitz (a university) and it was a tournament where the robots had to play a game with tennis balls to catch some rings and score some points. Not as brutal as the Robot Wars (tv series), but certainly amazing work from students and a lot of participants. Nice athmosphere building and testing these robots by the way, there were many tables like this.


And here we see one of the teams testing their robot. And you can see me not having any useful camera, the robot was not even moving fast ^^ I should buy some better equipment for the next event I go to (next one will probably be the MVP Summit in a month).


Ok, we are back to the throwing useless stuff into crowd part!


And this is the huge booth of the T-Com/Telekom (together with IBM and SAP one of the biggest and best looking booths) where a lot of sessions were hold in the so called "Trendforum". You can watch all the videos from the CeBIT Trendforum here, some of the sessions are in english and the speakers are very good and have some interesting topics. I did not watch any of them there, but once my brother told me about it and gave me the link I watched some videos and were very pleased with them, especially the one from Nicholas Carr (author of book The Big Switch) about the changes in moving from local servers to a "world computer".


Big cars and small womans (that is what Luo told me as I took this picture) should also be on all fairs. Do we remember where this was? No, not really!


The Samsung booth was also very big, but I could not spot any new exciting big monitors. But there were a lot of small devices, headsets, mp3 players and other stuff that does not really interest me that much these days. I'm currently in the "I got all I need"-mode :)


And here you can see the plan of one of my new cities, just that is not by me and in fact some big company in Asia planing a new city part this way. Looks nice (is about 50cm x 50cm small).


This was really strange. We went on the Microsoft booth and just behind all the Xboxes and games there was a bakery. You could actually get some biscuits and bread after filling out a form about some IT questions.


And while we are on the Microsoft booth we thought about the question if Bill Gates might need some extra money to become the richest man on the world again after losing his first place the first time after 13 years this week. Maybe all Microsoft employees should start collecting some money for Bill :) This nice lady was trying to convince people to get active in the Microsoft Student Partner program, but I guess I'm already too old (oh my).


And here you can see me sitting down for a minute and happy that we can go home soon (hey, I'm a programmer sitting around all day, I'm not used to walking that much) :)


But we are not done yet, let take a look at this IBM server with 64 hard disks up to 500 GB, in total something like 30 TB storage space. You can even stack up (well, not on top of each other, just side by side in a big room) 6 of those beasts if that is not enough for you. But as we have learned from the webcast from Nicholas Carr above we won't need that much power in the future, just use the servers that are already in the internet. Other than that these things are not really cheap, I prefer building my own server setup.


In hall 18 there was a really loud band singing "Sex Bomb" and they actually did a good job. After spending some minutes there our ears almost explode and we went outside to cool off. Poor guys spending all those days in that booth (Trekstor actually, hey I remembered something).


And finally the ride back in a train full of people. We even took an early train, I do not want to know how full the later trains have been. Ok, time to finish up my other blog posts. I hope you enjoyed these pictures.
 Monday, February 11, 2008
Monday, February 11, 2008 11:48:36 PM UTC (  |  |  |  |  |  |  |  |  )
Even when I did not post much last week I was very busy converting all the old XNA 1.0 games to XNA 2.0. I did not only convert all projects (8 games in total, see below), but I also tested them extensively on Windows XP, Vista (32 and 64 bit) and the Xbox 360. Additionally a lot of usability improvements have been implemented in the games, for example the XNA Shooter is now much easier (was almost impossible to even reach 50% of the level) and a lot more fun due better balancing. The XNA Racing Game has now a better physic engine and will not longer let the car fly out of the track or leave ground in loopings. Due the better input control and fixed physics the cars drive now much faster and it is more challenging to complete the tracks in shorter time frames.

Games in this article:
Please read my previous post about Converting XNA 1.0 games to XNA 2.0 for all technical tips. All the games can also be found on http://XnaProjects.net, but I will also make them easier accessible on this blog soon, which has an update overdue (need to clean up the left and right sides) ^^

Thanks to the great VS2005 support of XNA 2.0 all games have now just one single solution file, which works on Windows and the Xbox 360. The projects can be opened in XNA Game Studio 2.0 and Visual Studio 2005 without having to convert the files over and over again like in the past. The Icons for all games were also improved. Lets take a look at the Icons (.ico files) on Windows:


For the Xbox 360 game icons the .png files (usually named GameThumbnail.png) are used:


Ok, let's take a look at the games and what has changed for them. Most games are pretty much the same as for XNA 1.0, but a lot of smaller bugs were fixed and they have been tested more.

  • Chapter1Game: This application is not really a game, but a test project to check out if XNA 2.0 is properly working on both Windows and the Xbox 360. It is from the first chapter of my book "Professional XNA Game Programming". BTW: The second edition of the book is coming out soon, there are 3 more chapters about Multiplayer game programming and a cool new role playing game.

  • Xna Pong: Xna Pong is a simple clone of the favorite pong game from 1978. It is just a few hunderd lines of code and should be very easy to understand.

    This game is from the book "Professional XNA Game Programming" by Benjamin Nitschke. For more information read chapter 2. (2008-02-10: Now updated to XNA 2.0)

  • Xna Breakout: XNA Breakout is a simple Breakout/Arcanoid game based on the XNA Pong game from the previous chapter.

    It is fully described and covered in Chapter 3 of my book "Professional XNA Game Programming". The code is quite short and should be easy to understand. (2008-02-10: Now updated to XNA 2.0)

  • Xna Tetris: This is a simple, but highly addictive Tetris game. You can control the blocks with your cursor keys, aswd or a game pad and the game works both on Windows and the Xbox 360. Reaching levels above 5 is really hard. My highest level was 9, try to reach more :) (2008-02-10: Now updated to XNA 2.0)

    This game introduces the helper classes (chapter 4 of my book) and makes more use of unit testing and game components in XNA.

  • Rocket Commander Xna: XNA port of the famous Rocket Commander game. The game principle stayed the same, but the controls were a little bit simplified to make it more fun on the Xbox 360.

    If you want to learn more about the Rocket Commander game, check out its official website www.RocketCommander.com and check out the Video Tutorials on Coding4Fun by MSDN. (2008-02-10: Now updated to XNA 2.0, also supports very big resolutions now and runs faster on the Xbox 360)

  • Xna Shooter: Shoot'n'up game specifically created for my book "Professional XNA Game Programming". It features full HDTV support, runs on Windows and the Xbox 360, 5 weapon types, 5 enemy types, a powerful ship and some power ups. It is quite fun to play and it gets harder and harder the longer you play. Based partly on the Rocket Commander XNA engine, but also features lots of new effects and shaders. (2008-02-10: Now updated to XNA 2.0, also much easier and balanced)

    This game and the racing game are the most improved. The game works now much better in high resolutions and on the Xbox 360. But most importantly the game is now much easier, balanced and more fun. Additionally a level percentage is now visible on the bottom and more EMP bombs can be picked up to make it easier at the end of the level.
  • Xna Racing Game: XNA Racing Game Starter Kit I wrote for http://creators.xna.com. More information and more downloads can be found on http://XnaRacingGame.com. It runs best on the Xbox 360 in HDTV (1920x1200), but it also runs fine on the PC. (2008-02-10: Now updated to XNA 2.0, driving also improved a lot, better tested on Xbox 360 and fixed some issues).

    Following things were improved: Shadow mapping on very big resolutions works now (crashed before), more options for lower quality settings, fixed physics, car now always stays on the road, fixed loopings, cars are much faster now, winning conditions work better now, and fixed several other bugs.
  • Dungeon Quest GDC: And finally the Dungeon Quest XNA Game, which was developed in just 4 days on the GDC 2007 at the XNA Contest. Dungeon Quest GDC is a relatively complex 3D role playing game (at least for just 4 days of work). An early version even supported coop multiplayer on the Xbox 360 via splitscreen. The game was developed by Benjamin Nitschke (abi.exDream.com) and Christoph Rienaecker (WAII). (2008-02-10: Now updated to XNA 2.0). This is NOT the full Dungeon Quest game (see www.DungeonQuestGame.com for that), this is just the GDC version.

    Please note that the level was reduced to allow loading on the Xbox 360 (which otherwise crashes with an OutOfMemoryException), the game is not fully playable, only the first part is implemented. You can also press F2 to toggle the Options menu and some minor bugs were fixed. But this game is no longer supported, I will not improve it anymore! Please check out the new Dungeon Quest game from www.DungeonQuestGame.com, which is coming in a month or so.
Have fun with all the games :)
 Friday, February 01, 2008
Friday, February 01, 2008 4:50:16 PM UTC (  |  |  |  |  )
As I briefly mentioned before one of my companies (realis communities) moved to Hamburg and we got a nice new office directly at the Alster sea in the city.

Here are a few pictures to give you an impression. We work here for a few weeks now and are now setteled in.


This is my desk, as you can see, there are a "few" monitors there (and all of them quite big, ranging from 24 to 19 inch). I mainly look at the big 24" in the middle, but also use the other two. On the left side is my laptop, it is not always there, but it is useful from time to time if I need another PC for testing something. But even with this large space (I control everything with 1 keyboard and mouse via the program Synergy), I still have so many overlapping windows. After reading this article (Joining The Prestigious Three Monitor Club) from Jeff Atwood at CodingHorror.com I thought the more space you have the less overlapping windows you should have. But it is more like the more space you have, the more programs you have opened up :) I still use Switcher quite a lot to find the program windows again.


Ok, back to the office, this is one of the other rooms where most of my colleagues sit, currently most of them are away shooting some new video for meinSport TV. They are all nice guys, but you know, no programmers, do I have to say more?


Then there is finally the view out of the window, its still winter, but all that water from the Alster is comforting.

Next I will shoot some photos of my setup at home (more PCs, less monitors, but big ones ^^). I hope this does not bore you.
Friday, February 01, 2008 12:32:32 AM UTC (  |  |  |  |  |  |  |  |  )

When I wrote this (a little bit each day while working on converting the old XNA projects) I was very aware about the disappointment of my blog readers about the fact that I did not blog much in the last couple of months, especially on XNA. I not only got a lot of emails about that, but also quite a lot of questions, especially since XNA 2.0 was released. I made yet another promise to myself to change that and finally blog more, maybe not only when something very interesting pops up, but instead about the everyday issues I run into.

Some Notes about XNA 2.0: More solid, lots of little new features, networking, while it may not be a very complete solution, at least it is now possible on the Xbox 360 and overall I have the feeling even more people are interested in XNA than a year ago. Plus the guys at the XNA Team doing a great job and are constantly improving the XNA Creators Club website for us game programmers and artists :)


Several people had problems using the old XNA 1.0 code of my games and make them work with XNA 2.0, so here is a little help in case you want to convert XNA 1.0 projects to XNA 2.0. You will also notice this if you go to any XNA community site as most samples will still be in XNA 1.0 and not work out of the box in XNA 2.0, and many of those will probably never be changed since they are not longer actively being developed.

For most games almost all of the code can stay unchanged, you just have to poke at a few things that have changed in the framework or were improved. More information about converting projects can be found here (read this first, this article is based on the stuff there). You can also use the Cross-Platform Game Project Converter from XNA 2.0 to add a Xbox 360 project to your existing Windows XNA project without having to create a separate project (it is helpful, but I used pretty much the same trick for all of my XNA 1.0 games anyway).

Let's go through the steps:

  1. Either use the XNA project conversion utility (can be found on the XNA Creators Club website) or just create a new XNA 2.0 project in VS 2005.

  2. If you created a new project, drag all source code files into the project and seperate the content files out and put them all in the existing Content directory (only there the content pipeline is activated). If you just converted a project and the content files did not move, move them yourself to the content directory. Gladly all my projects with more than 5 content files had a special content directory anyway, so no need to change anything content-wise for them. If you don't want some of the files to be compiled to .xnb files, you have to change the build action from "compile" to "content" (and then use the "copy to output directory" switch) or to "none" if you want them to be ignored like for .wav files, which are automatically processed by the .xct (XACT) file for you.

  3. Find the line content = new ContentManager(Services); and replace it with Content.RootDirectory = "Content";. If you do that, get rid of the content manager in your game class since you can now use the build-in Content property to access the underlying Game content manager. In case you don't want to do that or if you need an extra variable, replace the above line with content = new ContentManager(Services, "Content");. Both ways will make sure all the content is now loaded from the content directory instead from the main directory of the application. In more complex XNA games you can also change the BaseGameDirectory to the content directory, but then you would also have to move all other resource files to this directory (config files, save games, levels, etc.). It is usually a good idea to separate the compiled (.xnb) content from the content the user can change (config, levels, etc.), so I suggest just redirecting the content directory of the content manager.

  4. Replace the LoadGraphicsContent(bool) method with LoadContent, remove all the if (loadAllContent) commands (was never false anyway, just let the content of the if loop stay) and also remove the call to base.LoadGraphicsContent(bool) (does not do anything like all the Load or Unload methods in the XNA Game class, they are just empty virtual methods). You can also ignore this and the next step since it will only generate depreciated warnings, but I suggest cleaning up your source code whenever an opportunity like this presents itself. I also added some missing region blocks to the code and some comments here and there were they were missing.

  5. Finally delete the UnloadGraphicsContent method unless it did anything beside base.Unload and base.UnloadGraphicsContent. In my XNA games the UnloadGraphicsContent usually looked like this and can be safely removed now (at least if nothing else is in there):
  6. /// <summary>
    /// Unload graphic content if the device gets lost.
    /// </summary>
    /// <param name="unloadAllContent">Unload everything?</param>
    protected override void UnloadGraphicsContent(bool unloadAllContent)
    {
      if (unloadAllContent == true)
        content.Unload();

      base.UnloadGraphicsContent(unloadAllContent);
    } // UnloadGraphicsContent(loadAllContent)


  7. In case you load sound and music via the AudioEngine, you have to change the directory to the content directory too, which will not be done automatically for you since you load the .xct file directly in the AudioEngine constructor. Basically just exchange the following code:

    audioEngine = new AudioEngine("YourSound.xgs");
    waveBank = new WaveBank(audioEngine, "Wave Bank.xwb");
    soundBank = new SoundBank(audioEngine, "Sound Bank.xsb");

    with:

    audioEngine = new AudioEngine("Content\\YourSound.xgs");
    waveBank = new WaveBank(audioEngine, "Content\\Wave Bank.xwb");
    soundBank = new SoundBank(audioEngine, "Content\\Sound Bank.xsb");

       
  8. In case you have used the StorageDevice and specifically the ShowStorageDeviceGuide helper method, it is gone now in XNA 2.0. I had it in some helper classes, but never actually used it. In case you want to show a save game dialog (or some network game select dialog for example), please follow the XNA 2.0 help instructions to do this asynchronously now.

  9. In case you use any ResourceUsage enum, replace it with TextureUsage instead or remove it if the issue is not texture related. You can also safely remove any ResourceManagementMode.Automatic parameters, which are not longer supported. Everything is now automatic anyway. Just if you have been using ResourceUsage.RenderTarget you will need to change the Texture2D class to a ResolveTexture2D class in order to archive the same behaviour as before. Some calls to the device (e.g. ResolveBackBuffer) have also changed and require a ResolveTexture2D now. You may also want to check if you have any manual texture management or disposing, which you can remove or simplify.

  10. For simpler games (2D) games you should be done now. More complex games using render targets and other features that have changed in XNA 2.0 will require some more changes, but after you have done them once (or know where to change what) this is also a quick process.

The following only applies to the RocketCommanderXna, XnaShooter and XnaRacingGame engines, but you might find similarities with other XNA games and the converting process:

  1. First of all make sure the old XNA 1.1 code gets compileable by going though the changes mentioned above (e.g. replacing ResourceUsage with TextureUsage or BufferUsage) and removing everything that does not exist anymore (like ResourceManagementMode.Automatic). If a method is non-existent in XNA 2.0 like ResolveRenderTarget, comment it out and remember where it happened.

  2. You might go through other issues, but you have to come back to the RenderTarget issue. This took the most time in the converting process for me (probably half of all my issues come by something related to changes with RenderTargets in XNA 2.0). For that reason always make sure that rendering to textures still works while you make changing. I always used the TestCreateRenderToTexture unit test inside the RenderToTexture class to figure things out.

  3. Additionally to making some changes in the BaseGame class (loading content via LoadContent, using the base.Content instead of creating a new content manager, etc.) I also removed all the RenderTarget helper methods and fields from the BaseGame class (SetRenderTarget, ResetRenderTarget, etc.) and moved them into the RenderToTexture class. While this makes the code more clean and restructured by making a few more fields private, if you do not call the new InitializeDepthBufferFormatAndMultisampling of the RenderToTexture class the calls to SetRenderTarget and ResetRenderTarget will not work correctly and will not restore the default depth buffer (which has to be remembered first). If you get the following exception it means the DepthBuffer Device.DepthStencilBuffer was set to null, but is obviously still used. In order to fix that make sure the remDepthBuffer variable is set to a correct value in the InitializeDepthBufferFormatAndMultisampling method!

  4. An error has occurred during the Clear operation while trying to clear the depth or stencil buffer, no DepthStencil