Geeks With Blogs



Add to Technorati Favorites

An Archived Managed World This blog has moved to

Well, I was able to squeeze in _some_ coding time last night and this morning. The update to Managed DirectX is all finished. It's kind of nice to see FPS should up from 90 fps to around 550 :).

All in all, it took about three hours to upgrade from GDI+ to Managed DirectX. Boy am I glad that I wrote the infrastructure the way I did. After a quick refactoring (making it so the IGraphicsService implementation rendered the Sprite rather than the Sprite itself), all I had to do was implement a new Direct3dGraphicsService and change the ServiceLocator to use an instance of that instead of the GdiGraphicsService it was using before. Viola! I'm now in Managed DirectX land. I love when to make a change like that, all you have to do is add another class rather than comprehensively changing your existing code.

Unfortunately, I'm still at the hotel in Seattle so I can't commit my changes to my Subversion repository yet (boy does that feel weird; I guess I'm used to committing often when I make small functional changes).

Now I believe I'm in a position to sustain for the long haul (as in, the system can grow to handle a particle engine and the like rather than having to find clever ways around the fact that GDI+ is not hardware accelerated).

So, what are the next steps?

1) Resolve a bug around Spaceball creation (sometimes the Spaceballs are created in the walls). This should be easy as it is simply limited the spawn area by the dimensions of the Spaceball being created.

2) Add "lives" to game. You will start out with three lives and the game will be over when you have no lives yet (currently, you only really have one life). I will probably re-implement my TaskMaster here to handle delayed spawning.

3) Create "invisible time" for two seconds when a new Spaceball is spawned. Currently, if a Spaceball just happens to spawn where you are: BLAMO! Game over. Just a little annoying, to say the least. I want to fix this.

Once those are done, I figure I will either "beautify" the Menu screen, or I will start adding in more enemies and gameplay mechanics (like Ship power-ups and such). Currently, I'm leaning towards adding some more gameplay mechanics as I would rather get those down and fleshed out before making the various screens look good (which I can always do at the end). Basically, I want to prevent myself from spending so much time make it look pretty that the gameplay suffers.

DirectX Rant #1 - The errors. They're horrible. If I accidentally try to Draw a Sprite before calling Begin(), please just tell me that "Begin must be called first" or something like that. Whoever thought that "<INSERT MAGIC NUMBER HERE> D3DERR_INVALIDCALL" is a useful error should be SHOT on sight.

Visual C# Express Thoughts - I agree with George, here. In this case, no news is good news. I work with Visual Studio at work and the fact is that I have hardly noticed that I'm _not_ working with it at home. The only difference for me is that I'm missing ReSharper, but that is _only_ because I've been too lazy to install it yet :). You gotta love a quality IDE that doesn't get in your way and has so much functionality to it!

Posted on Sunday, June 4, 2006 7:09 AM Game Development | Back to top

Comments on this post: Spaceballs - Day 18 - Upgrade from GDI+ to Managed DirectX

# re: Spaceballs - Day 18 - Upgrade from GDI+ to Managed DirectX
Requesting Gravatar...
Boy I wish I was married to you... "Honey lets have a weekend in Seattle. If you are really good I'll let you watch me code. And this won't be any of that 'safe' coding either cos I don't have subversion."
Left by ZMan on Jun 04, 2006 4:16 PM

# re: Spaceballs - Day 18 - Upgrade from GDI+ to Managed DirectX
Requesting Gravatar...
haha! Actually, all the time that I did spend coding (only 2-3 hours in total) was after the wifey had already gone to sleep. We did some of the normal tourist-y stuff the rest of the time (like going to the top of the Space Needle, etc.)
Left by Jason Olson on Jun 04, 2006 6:10 PM

Your comment:
 (will show your gravatar)

Copyright © Jason Olson | Powered by: