So much to draw, so little time.

Started by
1 comment, last by CoolMike 23 years, 8 months ago
I have an idea for a great space strategy game (like pretty much everybody else) and it requires the use of many, many ships being drawn on the screen at the same time, some ships being quite large. It will probably be turn-based, so speed is not extremely critical. I will be programming this game using either GDI or DirectDraw - not Direct3D or OpenGL. My goal is to make it run on fairly old machines (maybe even sub-P166''s). My first idea was to use sprites of ships, and rotate them on the fly. But then I thought of another idea - just design the ships using groups of shapes, namely circles, triangles, rectangles, and lines. Then the ships could be as big as I want without needing massive amounts of video RAM. So, what I want to know is this: * How can I draw lots and lots of polygons/basic shapes on the screen reasonably fast (using DirectDraw or GDI)? * Is there any other way besides plotting individual pixels? Is it even possible to draw hundreds of poly''s on the screen resonably quickly without hardware acceleration? I could use advice on how to do this in DirectX or GDI, and also your opinions on which API would be better and the feasability of this entire scenario.
Advertisement
I forgot to mention this: The look for the ship''s will resemble those from another game - Critical Mass by Sean O'' Connor. My ships, however, will be much larger hopefully. Critical Mass runs very acceptably on very old machines (like 386''s) and uses GDI, I think. If you want to see an example of the kind of thing I am talking about, go to his website and download the demo (it is only 250k or so). Also, it is a fun little game and only costs $20.

www.spto.demon.co.uk/critical.html
Sprites, line, circles, polygons - all those are really just pixels when it comes down to it. The major slowdown with all graphics is when you move memory (vid->vid excluded). And especially when your moving from the video memory to the system memory (just don't do this ). Okay, so you might have to blit less if you do it with circles and such (the surrounding transparent area that is, on the other hand overlapping things will probably be blitted twice). Now, if you don't want to require a videocar with 16 Mb RAM, try sticking it all into sys memory and use a backbuffer in the system memory. This actually isn't all that slow (Not with MMX at least ). Consider using 8-bit mode also, almost twice as fast as 16-bit and consumes less memory. And those palette effects...hehe

As for rotating the sprites...why not just keep graphics for the ship seen from say, 8 diffrent angles?

"Paranoia is the belief in a hidden order behind the visible." - Anonymous

Edited by - Staffan on August 17, 2000 4:27:16 PM

This topic is closed to new replies.

Advertisement