2D in DirectX - Which way should i choose?

Started by
2 comments, last by ravyne2001 18 years, 1 month ago
Hello, this is my first post here. I'm trying a simple 2D game, an isometric tile engine. I don't have any pretension, just doing it for fun, and i know it probably will never be playable, but anyway, it's fun to do it. The question is... the game is gonna be 2D, tiles, a bunch of sprites, and such. I have done two basic aproachs to this, one of them using DirectDraw (easy, but deprecated) and the other one using Direct3D, with sprites being two triangles, and such. This is more powerful, but a lot of more complicated. But a few days ago, i downloaded DirectX SDK February Release, and found a sample, using .NET 2.0 and (i think) DX10, that was about 2D graphics, and looking at code, it included classes like Sprite, and such. It looked like a modern DirectDraw. So the question it... which path should i choose to do my 2D game? DirectDraw? D3D? Any of these two but having a possible port to 2.0 on mind? And also, if anyone has any information about that .net 2.0 2D thing, would be cool if he posts it here. Thanks in advance, and sorry for my english :)
Advertisement
Personally I'd recomend using D3D, DirectDraw has been deprecated and D3D is probably better for 2D anyway. There is a ID3DXSprite interface in unmanged DX and a Direct3D.Sprite class in MDX which can help you get things up and running quickly. Using D3D means you can use stuff like alpha blending, scaling and rotation very easily and it'll also be faster and it's really not that complex (previous versions of D3D may have been more complicated but I only really have experience with D3D9 and (IMO) it's a simple clean API).
I would also personally use Direct3D :).
I always recommend going the Direct3D route, not only is DDraw depreciated, I've found that HW acceleration is spotty, inconsistant and, even when it runs smoothely, the best DDraw card still cannot touch even the lowliest 3D card in features or performance. In your case, the D3DXSprite system sounds perfect since you sound concerned about managing the 3D aspects, and just want an easy, well supported way to get 2D onto the screen.

throw table_exception("(? ???)? ? ???");

This topic is closed to new replies.

Advertisement