SDL is a good shot at providing the equivalent of cross platform DirectX, but it certainly doesn't have all the features you'd want, because who has as much money and resources as MS? The sound stuff is particularly limited,...
For serious games, you'll usually refrain from using the sound features of SDL at all, and simply use OpenAL instead (so does for instance Quake IV). It gives access to virtually the same 3D audio features as DirectX, and even allows games to use fancy EAX hardware features of Creative's soundcards.
For me, SDL is just an excellent cross-platform way of setting up an OpenGL window, which as a bonus provides other nice features as system event handling, timing, threads, input, etc.
As I see it, it's "easier" to make MMORPG game dynamics for at fantasy themed game, because of the focus on melee combat. Latency between clients and the server is more important in a game where there's a lot of aiming and shooting. I have a difficult time imagining 40K with ranged combat like in WoW:
Select opponent with mouse.
Select "fire".
Server calculates whether the projectile will hit or not, based on a %-chance.
Projectile is animated on the client, either as missing or as hitting.
With all the machine guns and stuff in 40K, that would be very strange: A more counter-strike/doom'ish way of fighting would probably work better; which requires a good server-client latency.
Back in 1995 game developers made 3D games using software rendering; then suddenly a company called 3Dfx introduced a dedicated 3D chip called Voodoo Graphics. Hardware acceleration of 3D was no new thing at that time, but 3Dfx was the first who would sell it to normal consumers. In the beginning, everyone thought it was insane to offer that kind of dedicated chip. Everyone was wrong, 3Dfx with their Voodoo Graphics was a massive success; soon all game developers supported 3Dfx's proprietary 3D API "Glide". Then came all the other "conventional" big players of graphics hardware, like ATI, nVidia, and Matrox, and started implementing similar features into their video cards. Microsoft introduced Direct3D to offer a uniform interface to consumer 3D rendering, and video card manufacturers even started to support OpenGL. 3Dfx and their proprietary API slowly faded away.
My best guess is that this is going to repeat. AGEIA have now done what 3Dfx did, introducing a dedicated hardware chip for something that until now has been done in software. They even have their own proprietary physics API.
Soon ATI and nVidia will incorporate similar features into their GPUs, and Microsoft will create a brand new DirectX subsystem called DirectPhysics. And AGEIA will slowly fade away (if they don't learn from 3Dfx's mistakes).
Imagine WoW when the spells have effects on the physics, or interact with each other based on their level and element and alignment
There's a reason why the "physics" of WoW, and MMORPGs in general, are very simplistic; synchronizing complex HL2-class (full rigid-body simulation) between several computers in an ordinary multiplayer game is NOT simple... Now try to do it in a game like WoW, where thousands of clients need to have their physics synchronized. It's a daunting task to say the least.
The thing to note about WoW, is that the game is designed in such a way that client synchronization isn't strictly important; it's playable even when client latencies differ with several hundreds of milliseconds. The only "physics" of WoW is that of the position of the players which can be handled easily on the client-side, and checked easily from the server. If HL2-class physics where applied to WoW, then it would no longer be enough to see the player as a single body, but suddenly he would be consisting of a head, upper arms, lower arms, hands, upper legs, backs, and so on. Try multiplying the bandwidth required with 20. (and that's not considering all the physical bodies of the world that would be cool to interact with). Another thing is that MMORPGs (at least those I know of) are very static in nature - I have a hard time imagining how physics could be integrated into existing gameplay "archetypes".
To summerize: I'd say it is close to impossible with today's hardware and consumer internet connections.
But yeah, personally I think it would be very cool with such a game:)
One problem IMHO, is that SDL tries to be kind-of-good at too many things, but isn't superbly good at anything. Of course it's good at being Open Source, cross-platform, easy-to-learn, yada yada, but fails in so many other areas.
A general problem is that, in many cases, it abstracts the various hardware capabilities at a way too high level. For instance when it comes to the audio part: relying on the application programmer to do all mixing, etc, is probably nice seen from the "simplicity" point of view, but it hides 99% of the features of modern sound hardware entirely; don't you think the reason why people buys nifty Audigy-sound cards, is because they want to listen to cool environmental effects, 3D sounds, etc?
The same could be said about the SDL_net project (I know it isn't officially (or is it?) part of SDL)... the lack of multicasting capabilities might not be a general problem, but I really don't like too much functionality to be hidden for me -- don't ask why;)
From my point of view, SDL is simply a nifty way of initializing OpenGL, managing household threading needs, and retreiving simple user input in a cross-platform way. What about CD-ROM audio? Sure, it's easy, but has anyone used it since the nineties? If you want to do 2D pixel graphics it's cool too, way easier than plain DirectDraw, and just as powerful. But again, almost no (serious) games today use such a thing as non-3D graphics (even for 2D).
DirectX might be bloated, but at least you can access all the features of your hardware. I'd really like to see something similar but cross-platform - then we would probably also see some more serious games able of running on linux.
Okay, enough ranting:) As the title of the thread somehow states, SDL is ideal for people who want an easy way to write some cool graphical stuff that runs on many platforms.
For serious games, you'll usually refrain from using the sound features of SDL at all, and simply use OpenAL instead (so does for instance Quake IV). It gives access to virtually the same 3D audio features as DirectX, and even allows games to use fancy EAX hardware features of Creative's soundcards.
For me, SDL is just an excellent cross-platform way of setting up an OpenGL window, which as a bonus provides other nice features as system event handling, timing, threads, input, etc.
As I see it, it's "easier" to make MMORPG game dynamics for at fantasy themed game, because of the focus on melee combat. Latency between clients and the server is more important in a game where there's a lot of aiming and shooting. I have a difficult time imagining 40K with ranged combat like in WoW:
- Select opponent with mouse.
- Select "fire".
- Server calculates whether the projectile will hit or not, based on a %-chance.
- Projectile is animated on the client, either as missing or as hitting.
With all the machine guns and stuff in 40K, that would be very strange: A more counter-strike/doom'ish way of fighting would probably work better; which requires a good server-client latency.Back in 1995 game developers made 3D games using software rendering; then suddenly a company called 3Dfx introduced a dedicated 3D chip called Voodoo Graphics. Hardware acceleration of 3D was no new thing at that time, but 3Dfx was the first who would sell it to normal consumers. In the beginning, everyone thought it was insane to offer that kind of dedicated chip. Everyone was wrong, 3Dfx with their Voodoo Graphics was a massive success; soon all game developers supported 3Dfx's proprietary 3D API "Glide". Then came all the other "conventional" big players of graphics hardware, like ATI, nVidia, and Matrox, and started implementing similar features into their video cards. Microsoft introduced Direct3D to offer a uniform interface to consumer 3D rendering, and video card manufacturers even started to support OpenGL. 3Dfx and their proprietary API slowly faded away.
My best guess is that this is going to repeat. AGEIA have now done what 3Dfx did, introducing a dedicated hardware chip for something that until now has been done in software. They even have their own proprietary physics API. Soon ATI and nVidia will incorporate similar features into their GPUs, and Microsoft will create a brand new DirectX subsystem called DirectPhysics. And AGEIA will slowly fade away (if they don't learn from 3Dfx's mistakes).
What about this classic:e ries)#Alone_in_the_Dark_3
:)
:D
http://en.wikipedia.org/wiki/Alone_in_the_Dark_(s
Vampires, zombies... What's the difference?
One should also check out number two in the series, which features cool zombie pirates with wooden legs and everything! arrrr!!
and most people in Europe don't give a fuck either :P
And those who do should be tortured to death. Twice.
One problem IMHO, is that SDL tries to be kind-of-good at too many things, but isn't superbly good at anything. Of course it's good at being Open Source, cross-platform, easy-to-learn, yada yada, but fails in so many other areas. A general problem is that, in many cases, it abstracts the various hardware capabilities at a way too high level. For instance when it comes to the audio part: relying on the application programmer to do all mixing, etc, is probably nice seen from the "simplicity" point of view, but it hides 99% of the features of modern sound hardware entirely; don't you think the reason why people buys nifty Audigy-sound cards, is because they want to listen to cool environmental effects, 3D sounds, etc? The same could be said about the SDL_net project (I know it isn't officially (or is it?) part of SDL)... the lack of multicasting capabilities might not be a general problem, but I really don't like too much functionality to be hidden for me -- don't ask why ;)
From my point of view, SDL is simply a nifty way of initializing OpenGL, managing household threading needs, and retreiving simple user input in a cross-platform way. What about CD-ROM audio? Sure, it's easy, but has anyone used it since the nineties? If you want to do 2D pixel graphics it's cool too, way easier than plain DirectDraw, and just as powerful. But again, almost no (serious) games today use such a thing as non-3D graphics (even for 2D).
DirectX might be bloated, but at least you can access all the features of your hardware. I'd really like to see something similar but cross-platform - then we would probably also see some more serious games able of running on linux.
Okay, enough ranting :) As the title of the thread somehow states, SDL is ideal for people who want an easy way to write some cool graphical stuff that runs on many platforms.