View Full Version : 3D Hardware for 2D. Is it worth it?
Gnatinator
01-31-2005, 10:26 PM
Hey guys. I want your opinions on taking advantage OpenGL for 2D games.
Is it really worth using the GPU even if it means cutting out the percentage of users without the required OpenGL hardware?
Thanks.
- Gnat
Raptisoft
02-01-2005, 01:45 AM
When thinking about something like this, look to the masters: Popcap. They moved their graphics over to 3D, but still support 2D for older computers. I believe they only have a small user base that have machines poor enough to require software processing, but cover them nonetheless.
baegsi
02-01-2005, 02:16 AM
Well, the questions remains if a small indie developer should try to compete with Popcap who have outgrown the indie status long time ago.
luggage
02-01-2005, 02:38 AM
Look to PrinceC's threads regarding uptake of OpenGL and make a decision based on that. 50% of users not being able to run your game?
If you were going to use 3d for 2d, then go for as low a version of DirectX as you can for windows. At most DirectX 8, DX9 uptake isn't there yet.
Try and keep your D3D calls away from your game code. We used a simple API for our engine. So calls like Image_Load returned an image structure. This made it trivial to convert to different versions of DirectX, libraries, etc.
James C. Smith
02-01-2005, 07:18 AM
... if it means cutting out the percentage of users without the required OpenGL hardware?
It’s not the hardware that the problem. It’s the software. Even old low end machines have decent 3D hardware (good enough for 2D games anyway.) The problem is that working OpenGL drivers are often not installed. As luggage points out, there are many existing discussions about this on this forum. I just wanted to make sure you understand that using 3D acceleration hardware is a software problem not a hardware problem. Much of the software problem can be avoided by using DirectX 7 or 8 if you must. There are also potential solutions to the OpenGL software problem mentioned in other recent optics. (In other words, you can use OpenGL and ship with a utility to help install working drivers)
princec
02-01-2005, 10:34 AM
It was 35% of Windows and 1% of OSX users. 50% of Linux users (so who cares?). And this is not forgetting that the overlap between "potential customers" and "people without OpenGL drivers" is not anywhere near 100%.
Cas :)
luggage
02-01-2005, 11:16 AM
My mistake - 35% of potential customers won't even be able to run your game.
princec
02-01-2005, 11:48 AM
No, that's still not right, and you're deliberately being obtuse.
35% of Windows machines will not be able to run the game. This has nothing directly to do with customers. I would still dearly like to find out what the correlation is.
Cas :)
luggage
02-01-2005, 11:59 AM
Everyone is a potential customer.
Hamumu
02-01-2005, 12:16 PM
Not the Amish.
Say... you're doing somewhat hardcore-ish twitch games. People who like to play those games are more likely to have usable drivers, because most of these games require em. But you could also argue that those people with broken drivers might be more willing to buy the game, because there are less games which work on their machines.
So you could assume that switching to software rendering might also reach those 35%, but it doesn't. Giving up acceleration means that your game will need more cpu power. Easily 2-10 times more... that will also take it's piece of the cake. Therefore you might end up with even less potential customers then before. Someone *might* upgrade the drivers, but it's really unlikely that anyone out there would upgrade the cpu (=whole system usually) for a shareware game.
You could use DX. Right. But then you would lose the mac (and the rather unimportant linux) crowd. Duh. That doesn't sound too appealing...
What does that mean sales-wise? Who knows? I think the genre is a major factor, which should be taken into account for rule of thumb guesstimates. I would like backing that up with hard data, but I can't. All I can do is cross my fingers and hope it's really the best decision. After all those opengl problems will disappear in the (not to distant) future with those (hopefully correctly) working windows default drivers.
Just ask yourself some questions. Is it arcade? Hardcore? Is mac support generally a problem or just around the corner? Does the game really need acceleration (eg scrolling, transparency, rotations etc)?
If you know the answers... it's pretty straightforward, isn't it?
svero
02-01-2005, 06:00 PM
Not the Amish.
You're not targeting the underground amish game market? Man with major oversites like that no wonder sales are down.
Screwball
02-01-2005, 08:21 PM
You're not targeting the underground amish game market? Man with major oversites like that no wonder sales are down.
Barn Flux ?
willm
02-10-2005, 05:41 AM
I use OpenGL to render the board in Chess Commander. Technology wise, it is simple to implement and works well.
Im not sure where the 50%, or 35% figure comes from. I dont think it represents an equivelent loss in sales. The people that cant run accelerated OpenGL have old machines and are less likely to be buying games in the first place. If you are running OpenGL in fullscreen and only using 2D, you can run your game on quite ancient machines (in PC terms). Running on a desktop is a different story unfortuantely, and is quite dodgy on first generation cards.
Ideally you would have an OpenGL renderer and a software renderer. You would sacrifice a bit of quality doing it in software, but - depending on the game - you can get equivelent results. Using MMX, can give you fast blending and effects if you dont mind excluding early Pentiums..
Pallav Nawani
02-10-2005, 09:23 AM
This would depend on the type of the game, but in general, 3D is the way to go. Lot of new games, even puzzlers are now using 3D API, even if its just for alpha blending. Having developed 2 arcade games (http://www.ironcode.com) without 3D acceleration, I now think that at least for games with fast gameplay, 3D is a must. Alpha blending, anti aliased fonts greatly improve the polish on your game, and for just that reason only using 3D API's is a must. In both my games, I was unable to use alpha blending the way I wanted to use it, I did not manage to use anti aliased fonts, I could not have nice flare like effects, etc.
Now, it can be said that using 3D API will restrict the number of potential users, but on the other hand, using it will make the game a lot more saleable. Just look at Ricochet & Breakquest for example. If you want to use resolutions equal to or higher than 800x600, there is no way you will get an acceptable frame rate without 3D acceleration (At least on lower end PCs).
willm
02-10-2005, 09:35 AM
This would depend on the type of the game, but in general, 3D is the way to go. Lot of new games, even puzzlers are now using 3D API, even if its just for alpha blending. Having developed 2 arcade games (http://www.ironcode.com) without 3D acceleration, I now think that at least for games with fast gameplay, 3D is a must. Alpha blending, anti aliased fonts greatly improve the polish on your game, and for just that reason only using 3D API's is a must. In both my games, I was unable to use alpha blending the way I wanted to use it, I did not manage to use anti aliased fonts, I could not have nice flare like effects, etc.
It is practical to do such blending effects in software. Although it will push your minimum spec up a bit. See Ping Ball, which is entirely rendered in software.. (http://www.pingball.com). Sorry for shameless plug! ;)
Of course it depends on the game. For me it was practical because I had a background with a single grid of alpha blend sprites and a few particle effects. Anything with significant overdraw and framerate would suffer.
Raptisoft
02-10-2005, 09:38 AM
There's a stylistic way to do fast alpha blending, if you only care about edge anti-aliasing. If you put a thickish black outline around ALL your characters, then your blend at the edges needs to only DARKEN and not actually blend. It's computationally a lot faster.
Jim Buck
02-10-2005, 09:39 AM
I don't know about BreakQuest, but all the Ricochet games are software-rendered. The developer posts in these forums and has talked extensively about how he did it. The fact that it was software rendered was a huge factor in its success. After Ricochet, they released Wik and the Lost Souls which used 3d acceleration. Once they heard of all the problems that many people were having with running it, they ended up integrating their software-rendering technology into that game as well.
Yeah, it's nice to use an elegant 3d api and all. But there are so many problems with going that route, depending on the game, it behooves the developer to have a software-based solution.
My game will have both hardware and software rendering, and it's 3d. Hence, my choice of using the Quake2 engine - the software renderer in that is top-notch.
Pallav Nawani
02-10-2005, 09:51 AM
It is practical to do such blending effects in software. Although it will push your minimum spec up a bit. See Ping Ball, which is entirely rendered in software.. (http://www.pingball.com). Sorry for shameless plug! ;)
That's the point: It will push up the minimum spec. My game riotball has quite a bit of blending (all done in software), but will be unplayable on anything less than a celeron 333 (I developed riotball on this machine). Movement gets slightly jerky sometimes.
Don't worry about your plug: Here's one from me :D : Go to my website and download Natwarlal, its a free winboard chess engine, ELO around 2250. Maybe you can use it in chesscommander!
Pallav Nawani
02-10-2005, 09:56 AM
There's a stylistic way to do fast alpha blending, if you only care about edge anti-aliasing. If you put a thickish black outline around ALL your characters, then your blend at the edges needs to only DARKEN and not actually blend. It's computationally a lot faster.
That's a neat trick, thanks for letting me know.
I don't know about BreakQuest, but all the Ricochet games are software-rendered. The developer posts in these forums and has talked extensively about how he did it.
I am interested in knowing about it. Any links to a relevant discussion?
Jim Buck
02-10-2005, 10:01 AM
I am interested in knowing about it. Any links to a relevant discussion?
Search on all of James C. Smith's threads. The developer of BreakQuest also posts on here, so he can also confirm/deny how he's rendering.
willm
02-10-2005, 10:15 AM
Don't worry about your plug: Here's one from me :D : Go to my website and download Natwarlal, its a free winboard chess engine, ELO around 2250. Maybe you can use it in chesscommander!
Neat! Since it free, I'd love to put it on ChessCommander.com - but it doesn't support 'remove' for taking back a move. Any chance you could implement this feature?
Would you consider joining my affiliate program? Seems like a perfect partnership - I could do an installer with Natwarlal set as the default engine. I'd set your commision to 40% :)
Pallav Nawani
02-10-2005, 10:25 AM
Neat! Since it free, I'd love to put it on ChessCommander.com - but it doesn't support 'remove' for taking back a move. Any chance you could implement this feature?
Would you consider joining my affiliate program? Seems like a perfect partnership - I could do an installer with Natwarlal set as the default engine. I'd set your commision to 40% :)
Sure I can. And since our discussion is getting OT for this thread, I will PM you regarding this from now on.
NuriumGames
02-10-2005, 11:08 AM
I don't know about BreakQuest, but all the Ricochet games are software-rendered.
BreakQuest is software-rendered, see here for more info:
http://www.nurium.com/phpBB01/viewtopic.php?t=49
But I'm also looking for a 3D accelerated 2D graphics library as my custom blitters use lots of memory and are not really that fast (hardware is always much faster) at least not fast enought to get full-screen 640x480x24 scroll with a 'normal' machine.
Pallav Nawani
02-10-2005, 11:36 AM
BreakQuest is software-rendered, see here for more info:
http://www.nurium.com/phpBB01/viewtopic.php?t=49
But I'm also looking for a 3D accelerated 2D graphics library as my custom blitters use lots of memory and are not really that fast (hardware is always much faster) at least not fast enought to get full-screen 640x480x24 scroll with a 'normal' machine.
Ah well. I was wrong on both counts. Such is life :)
willm
02-10-2005, 11:37 AM
BreakQuest is software-rendered, see here for more info:
http://www.nurium.com/phpBB01/viewtopic.php?t=49
But I'm also looking for a 3D accelerated 2D graphics library as my custom blitters use lots of memory and are not really that fast (hardware is always much faster) at least not fast enought to get full-screen 640x480x24 scroll with a 'normal' machine.
Kudos on BreakQuest, great game. Sub-pixel sprites work really well, I think I'll try implementing them myself!
James C. Smith
02-10-2005, 01:10 PM
all the Ricochet games are software-rendered...The fact that it was software rendered was a huge factor in its success
That may be over stating the issue. Ricochet is all software rendered which proves it is possible. And I believe it was a factor in the success. But it is hard to tell how big a factor it was. I think saying it was a huge factor may be a little much. I preach that software is possible and desirable. But not all desirable things are worth the effort. It is also desirable to finish your game in a reasonable amount of time and add lots of cool features to it. You have to balance it all out.
For the record: Ricochet Lost Worlds runs at 800X600X16 bit, does lots of alpha blending, and runs well on a 400 MHz computer. Big Kahuna Reef runs at 800X600X24 bit, does even more alpha blending plus scaling and tinting and sub pixel dest rendering, and run well on a 400 MHz machine. Wik runs at 800X600X24 bit, does lots of alpha, scaling, rotating, and sub pixel dest and runs well on a 400 MHz machine. None of these games use Direct3D, OpenGL, or any 3D hardware acceleration. They used Direct Draw to get a point to video memory and do page flipping. Everything else is done is software.
Sparks
02-14-2005, 08:16 AM
Hi,
without denying the obvious success and thus "proof of concept" of the named games: any computer having been installed in the last 5 years has at least
a GeForce-2-compatible 3D accelerator, right ?
I mean, except for laptops.
Savant
02-14-2005, 08:21 AM
That would be nice to believe, but I don't think that's the case, no.
Sparks
02-14-2005, 08:42 AM
Well, whats the base computer a casual game should be designed for ?
I mean, the last computer I built myself 4 years ago had a TnT2 gfxcard in it, which did pretty decent Dx7 games.
And so I assume that a year before that the Riva128 or tnT1 or Voodoo 2
were standard (year 2000).
At the time I was working in a small game company and Black&White just appeared etc.
So I guess, if You do not support 3D hardware, You should also not aim at any CPU faster than 233 Mhz, just because my oldest machine here is a '97 233 Mhz Pentium 2 that came with a Matrox Mystique 220 (which *already* did 3D games like G-Police, Resident Evil etc). So that was 8 years ago.
Conclusion: if You are targetting non-3D hardware, Your target platform
is a Pentium 2 300 Mhz, 64 MB RAM, Matrox-like gfxcard.
Which also means that resolutions like 800x600 already become a bit problematic, and I also suppose these customers still have drivers from 1998 in their machines...
Personally, I am rather targetting a 800 Mhz CPU, 64 MB RAM, TnT2/Dx7/Dx8
machine, which leaves me enough technical space for 3D games and performs well with any 2D games up to 1024x768x32b...
opinions ?
Well, it's not a hardware problem - it's a software problem. The unusable default (or simply outdated) drivers are to blame. It's really hard to find PCs without some kind of acceleration these days.
Y'know... there are people out there who see something on their screen and think that everything is working perfectly fine. That's the whole problem.
Diragor
02-14-2005, 09:57 AM
I think basing your target specs on what you personally own or have owned is a bad idea. For instance, since the original Voodoo came out all of my computers have had a mid- to high-end (for consumers) 3d card in them. That can hardly be expected of the general population. I replaced my TNT2 just before Quake III was released but my parents' computer has a TNT2 in it right now (mine, actually). All of my 3d cards have been serious gamer cards from 3dfx (RIP), NVidia and later ATI - also not to be expected when cheesy hardware is standard on the cheaper retail systems. The only really good hardware stats I've seen are Valve's surveys, for which the respondents consisted of mostly hardcore gamers, not necessarily the target market for anybody in here.
Having said all of that, I don't have a better idea.
FlySim
02-14-2005, 10:08 AM
I think there are alot of machines out there with the Intel graphics chips.
For most desktop Dells, thats the default graphics. They are really fill rate limited.
My target is a 800MHz with the Intel crap or 500MHz with GForce2.
James C. Smith
02-14-2005, 10:10 AM
any computer having been installed in the last 5 years has at least a GeForce-2-compatible 3D accelerator, right ?
The question is, is your target audience computer literate enough to install new video drivers? It is almost safe to assume they have a “GeForce-2-compatible 3D accelerator” but it is much less safe to assume they have working software to let you access the hardware. You should be okay if you use an old 3D API (like Direct 3D 7) or if you are confident that your target audience is willing and able to install new version of Direct X and/or video drivers. Using Open GL or DirectX 9 means that your game will not work “out of the box” for many causal users. They will have to tweak with things they don’t like to mess with before the game will work. My mantra is “3D hardware acceleration is not a hardware issue, it is a software issue.” It doesn’t matter if they have the hardware unless they have the software to support it. And many do not. The fact that it can be fixed easily with a software download does not make the problem go away. Many "casual" users are not willing or able to do that. But if you aren't targeting the casual users than this shouldn't be as much of a problem.
I am using DX8 hardware to write my 2D game. I wish I could use pure 2D and still have the desired effects (rotation, scaling, alphablending, tinting), but it is too much work for me to set it up like that and get it to run fast. Maybe someday i'll take up SDL and integrate AntiGrain to get good results, then I will write 2D games pure software. Right now though, I use HGE, and it was easy for me to get the game going, because I spent the time working on the game instead of technology. Would be nice if someone released a 2D engine that is crossplatform and has the 2D capability mensioned above.
A lot of basic new computers sold today don't have seperate graphics cards, they usually use integrated ones and then they have to share the system memory.
Nonz.
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.