PDA

View Full Version : Indie Gaming Requirements


Sean Doherty
08-31-2004, 06:17 PM
I am kind of undecided on the minimum hardware requirements for my game. I understand that Indie games should normally have low minimum hardware requirements. However, since my game is does not fall into the standard Indie Genre, I was thinking about "bumping" the minimum requirements.

So far I pretty sure that the graphics engine will be based on DirectX 9.0c; but I have no idea how far to push the graphics requirements. At first, I was thinking about limiting the models to standard textures of 512 by 512. However, I been experimenting with bump maps and specular texture and I was wondering if this would destroy performance and my potential market.

I have discovered that a single 512 by 512 texture is not large enough for a large model such a command carrier. Basically, if the area of the object on the screen is larger than the texture map, you start to loss resolution in the image. Have said that, I have three video cards and they all have a maximum resolution of 2048 by 2048; so would there by a problem moving up some of my texture sizes.

Here are so inputs for the questions below:

- Game is a real-time space strategy game.
- Maximum amount of ships in a combat zone should be less than 10 (there may be more if you include fighters).
- Ship sizes vary for assault fighters to command carriers the size of the "Tiger Claw".

Here are my questions:

1) What is the largest texture map you would recommend?
2) How many texture maps per model?
3) Would you use bump maps for your models?
4) Would you use specular maps for your models?

Extended Questions:

5) Would you use normal maps instead of bump maps?
6) Would you use shadders?

PoV
08-31-2004, 06:41 PM
Common Valve Survey response:

http://steampowered.com/status/survey.html

Something worth considering is what's your target download size. It'd be cool if your game to use shaders and bump/normal maps, but according to that survey, a lot hardcore gamers don't even have DX9 cards (36% maybe), and most of those people would rather play counterstrike than any other game. I know you don't want to hear it, but I still gotta suggest you make your game scalable, such that it's still playable without shaders (or at least with PS1 hardware).

1. 512x512 is a nice big size
2. 1 is common
3. Maybe
4. Not likely, I'd go with a per face group or material specularity value rather than a whole map, if I'd do specularity at all

Sean Doherty
08-31-2004, 07:21 PM
Thanks POV,

From the survey it looks like most of those cards can support a lot more than a 512 by 512 texture? Especially for things like sky box?

GameStudioD
08-31-2004, 07:43 PM
1) I would say go for 1024x1024 as the max.

From what I have seen, texture size will not affect performance too much (some may not agree with me). The surface area of the screen being rendered affects performance more. So a model that takes up a 200x100 area on the screen should render at about the same speed with a 512x512 or 1024x1024 texture. Use big textures sparingly because of memory requirements.

2) 1, especially if you will use big textures.

6) DirectX Vertex and Pixel Shaders are awesome. PoV's suggestion is good to turn them off and on. I have an ATI 7500 on my laptop and the 9.0c samples with shaders wont even run.

MirekCz
08-31-2004, 11:29 PM
It very much depends who you're targetting.

If you want to make an AAA title, it's obvious you will need everything a graphic card can give you to get good game visual quality.. but indie isn't rather targetting for such high-spec machines.

1)Texture size has no importance. 100% of cards produced in last few years (i mean real 3d accelerators) can have texture size up to 2048x2048... the question is, how much memory will your textures eat? Will you target a 32?64?128mb card?
If you use more memory on card for textures and primary/secondary buffers then available, performace will drop quickly. Noone cares if that's 10*2048x2048 or 160*512x512 textures.
I think every card with 32+mb of ram has support for 2048x2048 textures, so that's pretty much what you can use, if needed.

2)As much as you're allowed by vidmem. On a per model basis you usually use one texture... but if you need and have the ressources (vidmem) you can use more. The proper way to make your game run best on many systems is to keep all textures in high-res (going for example for a 128mb card) and at download time downsize them according to videocard mem (ie half texture size for 64mb card and 1/4 texture size for 32mb card)

3)sure
4)sure
5)sure
6)sure

The question is:
a)How many cards will handle your game? (especially points 5/6 will cut out all cards older then 2 years or so)
b)How much time you will need to implement propertly everything and prepare all models etc.

You need to choose between graphic excellence, your available ressources (time/money) and your target audience.

I would go for:
-min. 32mb+ vidcard (well, maybe 16mb too... but that would probably start to look v.poor) Like I said, use high-res textures that look great on 128mb card and downsize them for 64/32 mb cards...
-bumpmaps turned on/off (depending on card speed/capabilities)
-no pixel shaders (it would be superb to have them, but you cut out much of your audience... unless you care only about hardcore gamers, then it's acceptable) Best would be to allow them if possible, but that of course takes time to implement two versions of your renderer... you can start without them and eventually once your game is ready (or in beta) add some special effects using pixel shader (only for ps-capable cards of course)

I'm mostly impressed with great particle effects in space games, so I guess you should put much effort into creating them. They don't need pixel shaders and can create some excellent visual effects on a wide variety of cards.


PS.On the texture front, make some calculations..

Let us assume you have 10 ships, 5 types of fighters, 4 types of some bigger transporters and 1 large ship.

5 fighters, each with 512x512 texture=5*1mb=5mb
4 transporters, each with 1024x1024texture=5*4mb=20mb
1 large ship, 2 1024x1024 textures = 2*4mb=8mb
2 maps of a nearby planet 1024x1024 texture =2*4mb=8mb
10 smaller maps (background star systems) 512x512=10*1mb=10mb
5mb of additional textures (used for all kind of effects)

Together - 56mb + mipmaps (1/3 size) ~ 75mb
So you have got still some space left for bumpmaps and front/back buffers (on a 128mb card)

Now if you have got a 64mb card, you cut all texture size width/height by half (so texture size is 1/4 of high-detail version).

In practice 75mb->20mb (we will not cut down effect textures here)
lot of space left for bumpmaps and front/back buffers

For 32mb cards you do the same, but probably you won't use bumpmaps.. so you're left pretty much with 20mb of textures and 12mb of space for front/back buffers

That's assuming pretty tought conditions. (that all the ships are visible on screen and are really close to camera).
In practice you might notice that you can still get very good performace with high-res textures on 64mb card and only use low-res textures for 32mb cards.

The magic behind it is in agp link. It's pretty fast and doesn't create big performace drops as long as you transfer small amounts of textures with it.
If you need to transfer 100mb of data each sec, everything will work great (for example at the beggining of a sec you look one way and see 5 ships, then you rotate 180degrees and see the other 5 ships.. you never need all textures at the same moment.. so you only transfer slowly new textures into vidmem (of the ships/objects behind you) and push out not needed textures from vidmem (of the objects that were visible at the beggining).

You get huge performace drop only when you start to transfer textures each frame (ie on one scene you see 60mb of textures and have only 32mb card.. you need to transfer all the textures each frame via agp link.. even with 30frames per second it means 30*60=1800Mb/sec transfer.. that hurts :)

formfarbeminze
09-01-2004, 12:05 AM
some random thoughts that came into my mind while reading this thread:

- where are your strengths in the graphics area? are you good in doing textures? are you good in programing graphical effects?

- maybe your game has a long life-span, maybe you plan to do the whole 'games world' thing with mods, community etc et al? so maybe you can 'wait' until everybody has direct9 installed, because the peak of success will come later anyway?

- gameplay is more important than eye-candy.

- some graphic styles get 'hurt' by scaling and loosing of resolution more than others.

- you can sell via cd, so put everything into the package!

i hope this was inspiring or helpfull in some other way.

Sean Doherty
09-01-2004, 05:53 AM
Are there any issues with making bumpmap texture smaller than the model texture? For example, a model with 1024 by 1024 texture could have a bump map that was 512 by 512 or even 256 by 256.

Also, do textures these days really have to be a power of 2 or is it good enough that they are divisable by 2?

Cogin
09-01-2004, 06:26 AM
Well Doom3 has different sizes for texture, bump and normal maps...

Sean Doherty
09-01-2004, 06:29 AM
Well Doom3 has different sizes for texture, bump and normal maps...

I guess it looks ok? :) Would you go as low as 256 by 256 for bumpmaps?

Nemesis
09-01-2004, 08:13 AM
these days really have to be a power of 2 or is it good enough that they are divisable by 2?
To my knowledge most cards expect textures dimensions being a power of 2. They need not be squares.. for example 256 x 512 is fine. However, restricting to squares will confirm to a wider range of 3d cards. AFAIK virtually all common 3d cards require dimensions to be exact powers of 2 and not simply multiples of 2.

Mark Sheeky
09-04-2004, 06:07 AM
Would you go as low as 256 by 256 for bumpmaps?

Some of my shadow maps are 16x16 and they look fine! When combining textures, the base colour component is the important one. Experiment. If you are using a gradient for example then you can use texture filtering to automatically gradient a 2x2 texture and it looks just fine.

On another note; anyone got any idea on CPU requirements? Would 1.5ghz or more be bad nowdays?

Mark
Cornutopia Games
http://www.cornutopia.net
Sound Effects For Game Developers
http://www.indiesfx.co.uk

princec
09-04-2004, 06:18 AM
I rarely see computers under 1GHz these days amongst friends, colleagues and family - particularly computers that are ever used by game playing types.

Cas :)

ggambett
09-04-2004, 07:02 AM
I have discovered that a single 512 by 512 texture is not large enough for a large model such a command carrier.
Does that ship really have THAT much different areas? Remember that any number of triangles can map to overlapping areas of the texture!

Another trick : use a low-res texture (say 256x256) for the "boring" parts of the surface (ie, metal with little scratches or whatever), maybe even reused across many ships, and another texture for the detailed parts (windows, signs,...)

Also remember that more than one material may share a texture. For example, you don't need a texture for shiny things and other for opaque things - just use two different materials with the same texture but with different specular exponents and that kind of thing.

1) What is the largest texture map you would recommend?
We're using 512x512.
2) How many texture maps per model?
In our case, 2, doing something like I described above.
3) Would you use bump maps for your models?
4) Would you use specular maps for your models?
5) Would you use normal maps instead of bump maps?
6) Would you use shadders?
No. We are targeting low-end cards and low-end computers. There are lots of nice effects which can be done without getting to fancy technically (you can do wonders toying with multitexturing, blend modes, and multiple passes)

Reactor
09-05-2004, 06:47 AM
"I have discovered that a single 512 by 512 texture is not large enough for a large model such a command carrier. Basically, if the area of the object on the screen is larger than the texture map, you start to loss resolution in the image."

We didn't like the usual look of starships, like when you pull right up close to one in a game and see the texture go ultra low-res (even with detail textures), so I used a combination of 256 and 512 textures for each ship, and tiled them across each surface. From a distance, things do repeat a little, but up close, you get maximum detail. So, what textures you use, and what sizes should be tailored (along with the other considerations people have mentioned) to what look you're after, plus viewing distance, etc. Best thing, in my opinion, is to experiment, and see what one you like best visually for the memory and speed tradeoff.

"On another note; anyone got any idea on CPU requirements? Would 1.5ghz or more be bad nowdays?"

Is that 1.5Ghz AMD, P4, Celeron or Duron? I guess either way, it's still quite good, mainly because graphic cards are taking a lot of the strain off the cpu at the moment. I've had my 1.5AMD for quite a while now, and I can run Doom 3 at 800x600 quite fast with a mid level graphics card. I think I'l be using it for a while yet. Thing is, if you're targeting low end guys, you will find that most aren't even up at a Ghz yet. However, if you're aiming for the hardcore guys (or at the midrange area, as we are) 1.5 is about standard.