What is the average casual game platform?

BlitzMax Forums/BlitzMax Programming/What is the average casual game platform?

Arowx(Posted 2008) [#1]
Hi I've was working on my first Casual Game, only too find that my aging development laptop, a Dell Inspiron 9700 had too much punch in the graphics department and I had created a game that used way too much graphics memory on pre-rendered rotating objects.

So the question is what is the sweet spot for casual games harware?

CPU
Memory
GPU
Graphics Memory
Sound Harware
Operating System

Or even better if you know a web site with this kind of data?

Note to Self: Develop on the best machine you can BUT test on a target platform! ;0)


Czar Flavius(Posted 2008) [#2]
What kind of graphics memory are we talking about here?

Nowadays most people have at least 64mb video memory, even on the lowerest of the low, and if it is less than 64mb then they're probably not gamers, never mind causual gamers :)

But I don't know how much memory your laptop had..

Any recently sold graphics card that was intended to do even a little gaming would be at least 128mb, but don't assume higher.


Grey Alien(Posted 2008) [#3]
I aimed for 32MB of VRAM used in Fairway (I worked out the power of 2 size for each texture and added them all up. In then end though it was about 36MB. Yeah animations take up LOADS of VRAM.

Ideally the game should be OK (if not perfect) on a 1GHz with 256MB RAM on XP with a 32MB VRAM card which supports DX7 (forget OpenGL) on a slow GPU. Any sound hardware should do. If you can make it work on 98/ME with 128MB RAM and with say 500-800MHz CPU (still with a 32MB DX7 card though) then great you have increased your market size by a little bit.


Arowx(Posted 2008) [#4]
About 256Mb on card, game is so smooth on Laptop with 256Mb but really stuttery on PC with 128Mb! So if I can get it down to 64Mb but ideally it should work well on most PC's?

What about dynamically reducing number of aniamtion images depending on VRAM?

Is there a simple way to test VRAM size on startup?


Czar Flavius(Posted 2008) [#5]
I remember in Blitz3D you could check for available VRAM (good enough for this purpose) but not sure what it is on Max.

The stutteriness may or may not be down to the VRAM size.. quite a few 'modern' games can run OK with 128MB so maybe another aspect of the PC, or maybe not.


xlsior(Posted 2008) [#6]
Also: keep in mind that onboard bideo adapters tend to be rather craptacular. Even though they can sometimes access up to 256MB, they actually share your main RAM instead of having dedicated video memory.

system RAM is /much/ slower to talk to than dedicated video memory, *and* any shared memory will no longer be accessible as working memory to your OS/applications, potentially not leaving enough for them.

Just because your app thinks there may be -x- MB of video RAM doesn't mean it's actually half-way usable.


Dreamora(Posted 2008) [#7]
as well, intel GMA900, used in many notebooks and in many onboard mainboard solutions till last year, can only use up to 96MB VRAM ...
so you should aim for that instead of 128MB

and I don't see how you would need 128MB unless you load all the media all the time which is kind of pointless ... load what you need, load the media in the size you need it (instead of twice as large and scaling down etc) and in worst case, do 2 versions, high res and lower resolution, to make it playable on lower VRAM cards.


Grey Alien(Posted 2008) [#8]
Any code I've seen to read VRAM gives inaccurate results I'm afraid.


Czar Flavius(Posted 2008) [#9]
do 2 versions, high res and lower resolution, to make it playable on lower VRAM cards.
I'd agree with this, if your game really is using up this much VRAM. (But I'm still suspicious that it's just a slow card in general holding you back)


Grey Alien(Posted 2008) [#10]
But you couldn't auto-switch to the low res version as you can't reliably detect VRAM so it would have to be a user option and can you rely on them selecting it?


Dreamora(Posted 2008) [#11]
1. On Windows you can actually calculate the accurate amount. DX allows that unlike OpenGL which has no texture management.

Above that:
Well there is a theoretical way: a benchmark application thats run on the first usage of the game. That uses DX and OpenGL both with low and high and lots of data
if the performance for given drivers are the same, go to high of the faster driver.
if they aren't, give the user the choice if high qualy or low, but only if high remained within playable frame rates.

as benchmark you could use one of your most intense scenes.


Russell(Posted 2008) [#12]
If you're fairly clever in your programming, it shouldn't be too difficult to write one source that can compile for 'high-end' and 'low-end' using conditional compiling (or by changing some cleverly used constants in your source). A 'calibration' program could run on first start up and determine which is the best to use (Of course, this may mean having two full versions on the user's PC, depending on which programming path you chose).

I develop on what you might call a 'low end' pc: 64MB video, on board sound (32 channels) and 1Ghz...But I always test on my other PCs to see how it works (higher and lower specs than the development one).

It would be fun to develop for a super high end PC, just for fun, say something like "3.6Ghz processor, 768MB dedicated Video, DX 10 (or OpenGl 2.0), 2GB system RAM and 5.1 sound system Required"... ;)

Russell


Czar Flavius(Posted 2008) [#13]
I think the simplist way is, as Grey Alien suggets, let your user decide. What's the worst that happens if they go heehee I'm purposely going to choose the wrong texture settings? It just goes slow, good for them! :)


BadJim(Posted 2008) [#14]
See how far you can scale down the visuals without affecting the gameplay. Then see what kind of machine runs it and use that as your target 'low spec' platform.

Note that not everyone will have DX9 or a stable OpenGL driver to run your game and many won't bother downloading it just to play your game. So the real answer is often something 1GHz-ish which is likely to have DX9.

Pre-rendering is a bit old hat as you may have noticed. Pre-rendering just to rotate images is especially bad, as even a P200 with Voodoo 3 can do it quickly and efficiently.


Grey Alien(Posted 2008) [#15]
Well actually I'm saying an option may not be good either as you can't expect users to find it and click it unless you offer it on first play and then they may click the wrong one. Basically I'm with BadJim, scale it down as low as possible without it looking crap. Also you should be aiming for DX7 not DX9. I presume you meant pre-rendered 3D rotation (like spinning on the Y axis)


MGE(Posted 2008) [#16]
"1. On Windows you can actually calculate the accurate amount."

Using DX? I've never seen anything in DX7 that gives any real results.


Dreamora(Posted 2008) [#17]
well more real results than blind guess estimations like in OpenGL. Blitz3D gives quite good results even in cases where driver based turbocache / hypermemory is present and B3D is DX7


BadJim(Posted 2008) [#18]
Funny I could've sworn BMax used DX9, but yes, it's DX7. In that case it could go down as far as that P200 with Voodoo 3 I mentioned earlier. That is the low end of course, you can add optional prettiness for the 90% of players using a more modern computer.


Arowx(Posted 2008) [#19]
I've noticed that a lot of low end laptops and PC's include on-board graphics that uses a chunk of ram as graphics memory! How should I allow for this low end setup?


Dreamora(Posted 2008) [#20]
As long as they have sufficient VRAM its no problem.
Simplest way is to get the graphic chip model and compare that against a list of allowed models and series (instr is you friend for ATI and NVIDIA :) ) and if it isn't supported, just mentioned that.
Thought with DX7 quite "no end" system should suffice unless you designed your game with 3D texture sizes on a 2D game :)