Sign in to follow this  
nex7

EDI ...mornings wrath...d3d

Recommended Posts

EDI i noticed you had a D3D renderer on the mornings wrath demo... Would you mind explaining how you went about rendering your tiles. Right now I am using Direct3d and im getting really bad frame rates just rendering my terrain. I know im locking and unlocking my vertex buffers for each tile...i know thats bad, i just dont know of another way to do it. Thanks!

Share this post


Link to post
Share on other sites
hey EDI

I was going to switch back to GDI instead of Directx...

so i ran your demo in GDI to see what kind of performace hit i was going to take....

the game ended up being very choppy, quite unlike the directx renderer...

any ideas?

Share this post


Link to post
Share on other sites
Quote:
Original post by nex7
hey EDI

I was going to switch back to GDI instead of Directx...

so i ran your demo in GDI to see what kind of performace hit i was going to take....

the game ended up being very choppy, quite unlike the directx renderer...

any ideas?



Yes. Don't use GDI. Since you are contemplating using GDI, you're on a Windows platform. And since you are in these forums, you are making video games. DirectX was developed pretty much specifically for video games on Windows. So don't shoot for the absolutely lowest common denominator of GDI if you want to pull off a game with any sort of basic technical complexity such as an isometric RPG or pseudo-3D adventure. In this day and age, I would argue that there is absolutely no reason for a game developer of any tier or skill level to aim that low, unless there is an extremely compelling reason to do so. ie, platform limitations of some sort. I'm guessing that such limitations do not exist for you, so there is no compelling reason to not use DirectX.

There is a reason so many billions of dollars have been poured into R&D of advanced graphics hardware: video gamers do not want choppy performance on cutting edge shader-based 3D games, much less choppy performance on old-fashioned 2D ones based on sprites.

Share this post


Link to post
Share on other sites
yes, the basic answer is that GDI, overall is very slow.

it is not designed for making 60FPS games, it is designed for drawing periodicly refreshed UI, and it has a lot of additional logic to make it very flexible, but not very speedy.

given that you are a game developer it is probably a good idea for you to use a game graphics library. weither it is just an API such as OGL or DirectDraw or Direct3D doesnt matter a whole lot, you will encounter problems with each and every one. So it is going to come down to what you really need.

Let's take my current game for instance, it took me about 5 months to develop the engine for this new game, most of it was spent on getting the graphics to work right, Direct3D can be tricky especially if you are new to it, but having a very clear idea of what you need going into it, can save you tons of trouble.

if you really want my help I'm going to need to know what kind of game you're making and specifically the functionality you need.

but overall I am going to suggest you stick with direct3D.

Share this post


Link to post
Share on other sites
If I were you, I'd probably generate the VB for the tileset once, and then use that for the rest of the game. I can't really see a need for locking and unlocking VBs every frame (and definitly not for every tile!) in such a game. Do you have some _really_ dynamic terrain or something? Use Matrices to move around, that's what they are for. ;)

Another thing to consider is putting all (or at least as many as possible) tiles in the same texture, as switching can be expensive.

Index buffers might be your friend here as well..

Also, if you haven't done so already, take a look at SDL (http://www.libsdl.org), it is quite fast and a million times easier to deal with than D3D..

Share this post


Link to post
Share on other sites
I have everything working just fine in direct x now....

Thank you for all of the great replies...

My main reason for wanting something other than directx is that the engine in its current configuration is using dx9 and some of its goodies.... Now its not an overly complex game...actually quite simple...I just didn’t want to go through all of the hoopla of having them install this and that just to run a simple 2d game...but reading the above posts...the point has been clearly made that GDI is dirt slow and i should continue on my current course.


ATM my engine is running a solid 312 fps so i have a bit of wiggle room :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this