SDL-1.2 x SDL-1.3 advice

Hi All,

I’m working on a game and I’d like some advice after seeing this page: http://unity3d.com/webplayer/hardware-stats

My goal is to support the widest public possible. My first thought was to use SDL-1.2 without OpenGL, but after making some tests and realizing quite some people have CPUs worst than mine I thought it would be better to use SDL-1.3 and require OpenGL to easy the preassure on the CPU.

But then I saw how many people have old 3D cards. Now I don’t which way is best: use SDL-1.2 without OpenGL and risk poor performance on old CPUs or use SDL-1.3 and risk having problems on old 3D cards. Yeah, I know SDL-1.3 is not production-ready, but this is a risk I’m willing to take if it’s the best path to follow.

My game is not graphics-intensive – it’s more like a choose your own adventure book – but I’d like to have some eye candy for the players. Full screen fades, particle systems and such. But I can think of replacements if OpenGL is not the best route. I know I should test on real hardware to make a decision, but I don’t have access to old hardware and I’d really preffer to work on something I’ll use rather than writing code for profiling.

Any help will be appreciated.

Thanks,

Andre

PS: I’ve compiled SDL_image-1.2.10, SDL_mixer-1.2.11 and SDL_ttf-2.0.10 for SDL-1.3.0-6091 on Windows with gcc 4.5.0. They’re not fully tested but they passed some basic tests. If someone has a host where I can put them available for download please let me know.

Message-ID:
Content-Type: text/plain; charset=“us-ascii”

Hi All,

I’m working on a game and I’d like some advice after seeing this page:
http://unity3d.com/webplayer/hardware-stats

My goal is to support the widest public possible. My first thought was to
use SDL-1.2 without OpenGL, but after making some tests and realizing quite
some people have CPUs worst than mine I thought it would be better to use
SDL-1.3 and require OpenGL to easy the preassure on the CPU.

But then I saw how many people have old 3D cards. Now I don’t which way is
best: use SDL-1.2 without OpenGL and risk poor performance on old CPUs or
use SDL-1.3 and risk having problems on old 3D cards. Yeah, I know SDL-1.3
is not production-ready, but this is a risk I’m willing to take if it’s the
best path to follow.

My game is not graphics-intensive – it’s more like a choose your own
adventure book – but I’d like to have some eye candy for the players. Full
screen fades, particle systems and such. But I can think of replacements if
OpenGL is not the best route. I know I should test on real hardware to make
a decision, but I don’t have access to old hardware and I’d really preffer
to work on something I’ll use rather than writing code for profiling.

Any help will be appreciated.

Thanks,

Andre

How many windows do you want? At this point, I’d say that your choice
should probably be based on that.

However, don’t rule out OpenGL (whether with SDL 1.2 or 1.3/2.0)
unless you just don’t want to learn it yet. I have a single core ~1Ghz
cacheless Celeron with only motherboard graphics and it can do (at
least old) OpenGL. The really old (mid 90s, as I best recall) graphics
cards didn’t use OpenGL (though a decent amount used a simplified
derivative), but everything newer should be able to do at least the
first version of OpenGL.> Date: Tue, 13 Dec 2011 01:21:09 +0000

From: andre at leiradella.com
To: “SDL Development List”
Subject: [SDL] SDL-1.2 x SDL-1.3 advice

How many windows do you want? At this point, I’d say that your choice
should probably be based on that.

Good point, but in my case it’ll be just one window.

However, don’t rule out OpenGL (whether with SDL 1.2 or 1.3/2.0)
unless you just don’t want to learn it yet. I have a single core ~1Ghz

Having to learn OpenGL now would be a show stopper for me, but I know enough of it to make a 2D game. It’s really just a matter of graphic effetcs versus hardware compatability and performance.

cacheless Celeron with only motherboard graphics and it can do (at
least old) OpenGL. The really old (mid 90s, as I best recall) graphics
cards didn’t use OpenGL (though a decent amount used a simplified
derivative), but everything newer should be able to do at least the
first version of OpenGL.

Yeah, I remember playing with a Voodoo card back in the time. The API was named Glide, wasn’t it? There was also a “MiniGL” layer on top of it that I used to play Quake. Oh memories…

I think OpenGL will be the best choice for me. I don’t need anything advanced, just accelerated blitting with scaling and rotation and regular blending modes for particles. I.e. no shaders.

Thanks for the advice.

Andre

PS: I’ve compiled SDL_image-1.2.10, SDL_mixer-1.2.11 and SDL_ttf-2.0.10 for
SDL-1.3.0-6091 on Windows with gcc 4.5.0. They’re not fully tested but they
passed some basic tests. If someone has a host where I can put them
available for download please let me know.

I’ve just compiled SDL_sound-1.0.3 with all decoders enabled except Quick Time. If you want a zip with all the DLLs let me know.

Cheers,

Andre

If you want to support the widest audience, don’t use OpenGL. On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.On 2011-12-13 02:21, andre at leiradella.com wrote:

My goal is to support the widest public possible. My first thought
was to use SDL-1.2 without OpenGL, but after making some tests and
realizing quite some people have CPUs worst than mine I thought it
would be better to use SDL-1.3 and require OpenGL to easy the
preassure on the CPU.


Rainer Deyke

This is wrong on so many levels…On Fri, Dec 16, 2011 at 11:40 AM, Rainer Deyke wrote:

If you want to support the widest audience, don’t use OpenGL. ?On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.

This is wrong on so many levels…

If you want to support the widest audience, don’t use OpenGL. On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.

Over the summer, I used a borrowed Linux laptop. No OpenGL development
libraries. I suppose the computer could have had hardware accelerated
OpenGL drivers, although I seriously doubt it. I guess I’ll never know,
because I wasn’t able to compile and run any OpenGL programs.

In the autumn, I installed Linux on my main computer. The latest stable
Debian. I managed to install the OpenGL development libraries, so I can
confirm that my computer now has software-emulated OpenGL, but no
hardware acceleration.

I also installed Windows XP, service pack 3, on another hard drive on my
main computer. Windows did not recognize my graphics card. I installed
the third party drivers, and now I have hardware accelerated OpenGL
under Windows.

So that’s zero out of three computer/OS combinations with working
hardware-accelerated OpenGL out of the box.On 2011-12-17 14:07, Vittorio Giovara wrote:

On Fri, Dec 16, 2011 at 11:40 AM, Rainer Deyke wrote:


Rainer Deyke

This is wrong on so many levels…

If you want to support the widest audience, don’t use OpenGL. On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.

Over the summer, I used a borrowed Linux laptop. No OpenGL development
libraries. I suppose the computer could have had hardware accelerated
OpenGL drivers, although I seriously doubt it. I guess I’ll never know,
because I wasn’t able to compile and run any OpenGL programs.

In the autumn, I installed Linux on my main computer. The latest stable

Debian. I managed to install the OpenGL development libraries, so I can
confirm that my computer now has software-emulated OpenGL, but no hardware
acceleration.

I also installed Windows XP, service pack 3, on another hard drive on my
main computer. Windows did not recognize my graphics card. I installed
the third party drivers, and now I have hardware accelerated OpenGL under
Windows.

So that’s zero out of three computer/OS combinations with working
hardware-accelerated OpenGL out of the box.

That’s the thing, if you’re smart enough to go a hardware store and buy a
graphics card, install it yourself, then you probably know “drivers” are
and that you need to install them manually. On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).
Either way, even the less “Linux-aware” didn’t install a graphics card and
think Linux would immediately have drivers for it – they searched online
and what do you know – Linux drivers for their AMD/NVidia card.

At this point, Linux on x86 hardware has OK support for OpenGL out of the
box. If you use even a reasonably old laptop/desktop, you probably will get
nouveau, radeon, or intel drivers for NVidia, ATI/AMD, and Intel graphics
respectively. These are all open source, all supported by DRI, and all have
various degrees of OpenGL support. They also cover 90%+ of the GPU. If you
install Windows 7, odds are it has a old driver for them, and if it does,
by the time you run Windows Update you will (e.g. I got a driver for
GeForce 240 via Windows Update).

Telling people to use software rendering in 2012 means one of two things:

  1. Your platform isn’t likely to have a graphics accelerator
  2. You enjoy academic exercises

Software rendering can do a lot of cool things and the total lack of
dependence on GPU hardware is admirable, but I think at this point in
technology, it is misplaced. Your experiences don’t actually map to the
reality of the situation:
a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

As it so happens, I installed Linux on 4 computers recently and 4/4 had
OpenGL out of the box. 4/4 also had intel/amd/nvidia graphics chips. I
don’t know what kind of crappy laptop you must have been using to not get
OpenGL support, or maybe you picked a distribution that doesn’t believe in
recent drivers (cough: Debian-stable), but people are shipping Linux with
desktops running with *compositors *by default now, meaning they use the 3D
parts of the chip to do cool desktop effects. I think that speaks volumes
to the less-than-experimental nature of OpenGL on Linux.On Sat, Dec 17, 2011 at 8:59 AM, Rainer Deyke wrote:

On 2011-12-17 14:07, Vittorio Giovara wrote:

On Fri, Dec 16, 2011 at 11:40 AM, Rainer Deyke wrote:


Rainer Deyke

_____________**
SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/**listinfo.cgi/sdl-libsdl.orghttp://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

+1 - Patrick said this better than I could’ve w/o resorting to “you don’t
know what the hell you’re talking about, do you?” :slight_smile:

-VijayFrom: sdl-bounces@lists.libsdl.org [mailto:sdl-bounces at lists.libsdl.org] On
Behalf Of Patrick Baggett
Sent: Saturday, December 17, 2011 8:12 AM
To: SDL Development List
Subject: Re: [SDL] SDL-1.2 x SDL-1.3 advice

On Sat, Dec 17, 2011 at 8:59 AM, Rainer Deyke wrote:

On 2011-12-17 14:07, Vittorio Giovara wrote:

This is wrong on so many levels…

On Fri, Dec 16, 2011 at 11:40 AM, Rainer Deyke wrote:

If you want to support the widest audience, don’t use OpenGL. On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.

Over the summer, I used a borrowed Linux laptop. No OpenGL development
libraries. I suppose the computer could have had hardware accelerated
OpenGL drivers, although I seriously doubt it. I guess I’ll never know,
because I wasn’t able to compile and run any OpenGL programs.

In the autumn, I installed Linux on my main computer. The latest stable
Debian. I managed to install the OpenGL development libraries, so I can
confirm that my computer now has software-emulated OpenGL, but no hardware
acceleration.

I also installed Windows XP, service pack 3, on another hard drive on my
main computer. Windows did not recognize my graphics card. I installed the
third party drivers, and now I have hardware accelerated OpenGL under
Windows.

So that’s zero out of three computer/OS combinations with working
hardware-accelerated OpenGL out of the box.

That’s the thing, if you’re smart enough to go a hardware store and buy a
graphics card, install it yourself, then you probably know “drivers” are and
that you need to install them manually. On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).
Either way, even the less “Linux-aware” didn’t install a graphics card and
think Linux would immediately have drivers for it – they searched online
and what do you know – Linux drivers for their AMD/NVidia card.

At this point, Linux on x86 hardware has OK support for OpenGL out of the
box. If you use even a reasonably old laptop/desktop, you probably will get
nouveau, radeon, or intel drivers for NVidia, ATI/AMD, and Intel graphics
respectively. These are all open source, all supported by DRI, and all have
various degrees of OpenGL support. They also cover 90%+ of the GPU. If you
install Windows 7, odds are it has a old driver for them, and if it does, by
the time you run Windows Update you will (e.g. I got a driver for GeForce
240 via Windows Update).

Telling people to use software rendering in 2012 means one of two things:

  1. Your platform isn’t likely to have a graphics accelerator
  2. You enjoy academic exercises

Software rendering can do a lot of cool things and the total lack of
dependence on GPU hardware is admirable, but I think at this point in
technology, it is misplaced. Your experiences don’t actually map to the
reality of the situation:
a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

As it so happens, I installed Linux on 4 computers recently and 4/4 had
OpenGL out of the box. 4/4 also had intel/amd/nvidia graphics chips. I don’t
know what kind of crappy laptop you must have been using to not get OpenGL
support, or maybe you picked a distribution that doesn’t believe in recent
drivers (cough: Debian-stable), but people are shipping Linux with desktops
running with compositors by default now, meaning they use the 3D parts of
the chip to do cool desktop effects. I think that speaks volumes to the
less-than-experimental nature of OpenGL on Linux.


Rainer Deyke


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

That’s the thing, if you’re smart enough to go a hardware store and buy a
graphics card, install it yourself, then you probably know “drivers” are
and that you need to install them manually.

Yes, I do. Old PCs in family have a tendency to get handed down to
the less technically inclined, so it’s quite possible that my mother
could end up with a PC with a graphics card without knowing what drivers
are or how to install them.

On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).

This does not reflect the reality of the typical Windows end user. I
know graphics cards need drivers and you know that graphics cards need
drivers, but we’re programmers.

At this point, Linux on x86 hardware has OK support for OpenGL out of the
box. If you use even a reasonably old laptop/desktop, you probably will get
nouveau, radeon, or intel drivers for NVidia, ATI/AMD, and Intel graphics
respectively. These are all open source, all supported by DRI, and all have
various degrees of OpenGL support. They also cover 90%+ of the GPU. If you
install Windows 7, odds are it has a old driver for them, and if it does,
by the time you run Windows Update you will (e.g. I got a driver for
GeForce 240 via Windows Update).

I can’t run Windows Update because my main computer has no internet
connection. I’m using a crappy proprietary usb stick that connects to a
mobile phone network for my internet connection. In order to get a
internet connection at all, I have to go upstairs, and the proprietary
software makes it impossible to forward the internet connection across
my LAN. I would get broadband, but the cables just don’t exist. Yes,
it sucks, yes, it’s an unusual situation, but it’s also a reality that I
need to deal with every day.

This also explains why I am stuck with Debian Stable. Moving to Testing
would require an internet connection.

Telling people to use software rendering in 2012 means one of two things:

  1. Your platform isn’t likely to have a graphics accelerator
  2. You enjoy academic exercises
  1. You want to support the widest possible range of computers, like the
    original poster.

If software rendering was more difficult than OpenGL, then you might
have a point, but SDL 1.2 ships with highly optimized software blitters
that are adequate for most 2D applications.

a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

All of these (except b) are probably true, but beside the point. Most
major distributions is not the same as all. Why limit your audience any
more than necessary?

As it so happens, I installed Linux on 4 computers recently and 4/4 had
OpenGL out of the box.

Great, that’s 4/7 computers with OpenGL out of the box if you combine
your experience with my experience. All seven of these computers
support software rendering out of the box.On 2011-12-17 17:11, Patrick Baggett wrote:


Rainer Deyke

That’s the thing, if you’re smart enough to go a hardware store and
buy a
graphics card, install it yourself, then you probably know “drivers” are
and that you need to install them manually.

Yes, I do. Old PCs in family have a tendency to get handed down to
the less technically inclined, so it’s quite possible that my mother
could end up with a PC with a graphics card without knowing what
drivers are or how to install them.

Agreed, also outside of the use case I said. Your mom didn’t explicitly
buy a graphics card, hence she probably didn’t know how to install a
driver for it.

On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go
out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).

This does not reflect the reality of the typical Windows end user. I
know graphics cards need drivers and you know that graphics cards need
drivers, but we’re programmers.

People who buy printers know their printers need drivers. I used to work
IT for the School of Nursing – even they knew “when you add stuff to a
PC, it needs drivers”. And these are little old ladies who don’t know
the first thing about PC hardware or OS kernels. This same phenomenon
occured in computer stores – people who loves video games talked about
how they wanted to download drivers for “moar FPS!!!1”. I wouldn’t say
it is common knowledge, but I don’t think people are absolutely
oblivious either. Unless they used a Mac all their life. Just kidding.
/troll :wink:

I can’t run Windows Update because my main computer has no internet
connection. I’m using a crappy proprietary usb stick that connects to
a mobile phone network for my internet connection. In order to get a
internet connection at all, I have to go upstairs, and the proprietary
software makes it impossible to forward the internet connection across
my LAN. I would get broadband, but the cables just don’t exist. Yes,
it sucks, yes, it’s an unusual situation, but it’s also a reality that
I need to deal with every day.
And again, your experiences != rest of the world. That’s why this is so
hard to make judgement calls on. You want to talk about your situation,
but we’re talking about the situation around us. It doesn’t matter if
YOU don’t have internet access and can’t download drivers, it matters if
the target audience can. One user vs the rest of the world. Don’t take
my word on it? Try Valve’s “Steam”. They’ve got quite literally tens of
millions of people online playing games. Of those games, how many do you
think require hardware acceleration to run? I’d venture > 90% if not
more. You know what, go look for yourself.

http://store.steampowered.com/hwsurvey

99.26% have DX9 SM2 or better hardware (translates to OpenGL 2.x). If he
were to release on the Steam platform, he’d be including only a
/fraction/ of the remaining 0.74% who either a) have cards that are
hardware acclerated but are fixed function (e.g. GeForce 4 MX) or no
drivers at all (software rendering). Dude, seriously, just let it go.
Most people really do have hardware acceleration.

  1. You want to support the widest possible range of computers, like
    the original poster.

Yes, I suppose, but you sacrifice a large number of things. If he just
wants "really-portable-2D-mission-critical-works-out-of-the-box-accept-
no-substitutes-no-exceptions, then by all means, 640x480 software
rendering of sprites. I think it is unnecessarily limiting, but hey, I
can’t argue with the absolute statement that “it allows a wider
audience”, I just can’t comment on how /much/ wider an audience it buys
you for basically limiting your game to low resolutions, 50% alpha
blends, and few sprites.

If software rendering was more difficult than OpenGL, then you might
have a point, but SDL 1.2 ships with highly optimized software
blitters that are adequate for most 2D applications.

a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

All of these (except b) are probably true, but beside the point. Most
major distributions is not the same as all. Why limit your audience
any more than necessary?
Because having a wider audience isn’t always the point. Sometimes
"making a cool game" is. To each their own.
Quake runs on anything with an FPU pretty much. But it is yesterday’s
faint memory of news. Anyways, I’m sure you’re never going to be
convinced, so I’ll let it lie, but I still contend that you are giving
bad advice based on your current situation.

PatrickOn 12/18/11 21:25, Rainer Deyke wrote:

On 2011-12-17 17:11, Patrick Baggett wrote:

I can’t run Windows Update because my main computer has no internet
connection. I’m using a crappy proprietary usb stick that connects to
a mobile phone network for my internet connection. In order to get a
internet connection at all, I have to go upstairs, and the proprietary
software makes it impossible to forward the internet connection across
my LAN. I would get broadband, but the cables just don’t exist. Yes,
it sucks, yes, it’s an unusual situation, but it’s also a reality that
I need to deal with every day.
And again, your experiences != rest of the world.

Sure, it’s just one sample point, but your own experiences are just as
anecdotal. Unusual situations exist all around us.

Try Valve’s “Steam”. They’ve got quite literally tens of
millions of people online playing games. Of those games, how many do you
think require hardware acceleration to run? I’d venture > 90% if not
more. You know what, go look for yourself.

That’s what we call a self-selecting sample. Steam focuses on the
hardcore gamer market. Most of their games require 3D acceleration, so
most of their audience has 3D acceleration, which in turn removes the
incentive to support software rendering on Steam.

Check out some of the casual gamer sites, and you’ll find that the
statistics are skewed in the other direction.

Yes, I suppose, but you sacrifice a large number of things. If he just
wants "really-portable-2D-mission-critical-works-out-of-the-box-accept-
no-substitutes-no-exceptions, then by all means, 640x480 software
rendering of sprites. I think it is unnecessarily limiting, but hey, I
can’t argue with the absolute statement that “it allows a wider
audience”, I just can’t comment on how /much/ wider an audience it buys
you for basically limiting your game to low resolutions, 50% alpha
blends, and few sprites.

I think you are underestimating what software rendering can do on a
semi-modern computer.

Because having a wider audience isn’t always the point.

To the original poster, having a wider audience is the point. He
already mentioned that his game isn’t graphics-intensive.On 2011-12-18 14:26, Patrick Baggett wrote:

On 12/18/11 21:25, Rainer Deyke wrote:


Rainer Deyke

Hey Guys,

I’m really enjoying this discussion, it’s really giving me a lot a food for thought. Thanks.

I can’t run Windows Update because my main computer has no internet
connection.

Well, this would leave you out of my target audience :slight_smile:

Seriously, the game will be available for download, so you must have an Internet connection in order to get it, which would make it possible for you to install/update the video drivers.

Check out some of the casual gamer sites, and you’ll find that the
statistics are skewed in the other direction.

Do you have links for those statistics? My impression is that casual games uses hardware acceleration nowadays, though I don’t know if they require it to function.

I think you are underestimating what software rendering can do on a
semi-modern computer.

I’m pending to the OpenGL side because I’m worried what the software rendering performance would be on, as you call, semi-modern computers. As I said in the original post, the game won’t be graphics-intensive, but if OpenGL is the way to go I can think of many things to make it more visually attractive.

And all this also makes me think about the game’s acceptance. What would be better, having a more compatible game that may end up looking as a last-decade game or a visually richer one that leaves some people with incompatible hardware out of the equation?

Thanks again,

Andre

Hardware acceleration is so common today that I think most users would
think something is broken if it wasn’t working. Try installing xp on
new machine, notice how bad the GUI lags and every window tears until
the drivers are installed, anyone who will play a game will know
something is wrong even if they do not know what is wrong. All
manufacturers ship machines with the drivers installed, people buying
graphics cards will get a disc in the package, and also bought them
for a reason. Windows 7 almost always installs working graphics
drivers during a new install and most people doing a new install know
to get windows updates.

In my own personal experience I have noticed that even most phones
have hardware accelerated graphics. The quantity of people with
properly working GPUs is so high that Google Chrome, Opera and
internet explorer are all using GPU acceleration to render web pages
faster. This is a lot of anecdotal evidence that hardware acceleration
is common enough for most groups trying to reach a wide audience.

I am trying to reach the largest audience as well. To me this means
giving up on the less than 1%(according to the Steam link) of people
who play game with a software renderer and target phone and console
users. There is no way you will be able to ship a game in wiiware or
the PSN without hardware acceleration. All of the gaming consoles have
working 3d acceleration. To get your game on phones you will either
have to write a scaled down version of your game, or you will need to
use hardware acceleration. Those are my needs though and may not match
yours.On Mon, Dec 19, 2011 at 6:23 AM, wrote:

Hey Guys,

I’m really enjoying this discussion, it’s really giving me a lot a food for thought. Thanks.

I can’t run Windows Update because my main computer has no internet
connection.

Well, this would leave you out of my target audience :slight_smile:

Seriously, the game will be available for download, so you must have an Internet connection in order to get it, which would make it possible for you to install/update the video drivers.

Check out some of the casual gamer sites, and you’ll find that the
statistics are skewed in the other direction.

Do you have links for those statistics? My impression is that casual games uses hardware acceleration nowadays, though I don’t know if they require it to function.

I think you are underestimating what software rendering can do on a
semi-modern computer.

I’m pending to the OpenGL side because I’m worried what the software rendering performance would be on, as you call, semi-modern computers. As I said in the original post, the game won’t be graphics-intensive, but if OpenGL is the way to go I can think of many things to make it more visually attractive.

And all this also makes me think about the game’s acceptance. What would be better, having a more compatible game that may end up looking as a last-decade game or a visually richer one that leaves some people with incompatible hardware out of the equation?

Thanks again,

Andre


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

  • Joe Toppi
    (402) 714-7539
    BlackTopp Studios Inc.
    Lead Software Developer
    Toppij at BlackToppStudios.com

Well, I’ve been a linux nerd for ages and ages and have only just
gotten around to writing any OpenGL code ( I have a little game that
uses only the OpenGLES 1.2 stuff so that it works on my iphone and on
linux.

Basically, I’ve never had serious problems getting accelerated 3d
working on linux, infact, ubuntu normally gives you this out of the
box ( remember all that compiz stuff last year? ) If you can find the
time to invest in learning OpenGL then it wil pay dividends back to
you 100 fold, You’ll be able to target pretty much anything be it
linux, windows, OSX, android or iphoneOS.

Standards are the key thing here, you have OpenGL and a vast vast
array of documentation and examples freely availible, make use of them
:)On 17 December 2011 16:19, Vijay Varadan wrote:

+1 - Patrick said this better than I could’ve w/o resorting to “you don’t
know what the hell you’re talking about, do you?” :slight_smile:

-Vijay

From: sdl-bounces at lists.libsdl.org [mailto:sdl-bounces at lists.libsdl.org] On
Behalf Of Patrick Baggett
Sent: Saturday, December 17, 2011 8:12 AM
To: SDL Development List
Subject: Re: [SDL] SDL-1.2 x SDL-1.3 advice

On Sat, Dec 17, 2011 at 8:59 AM, Rainer Deyke wrote:

On 2011-12-17 14:07, Vittorio Giovara wrote:

This is wrong on so many levels…

On Fri, Dec 16, 2011 at 11:40 AM, Rainer Deyke ?wrote:

If you want to support the widest audience, don’t use OpenGL. ?On both
Windows and Linux, getting hardware-accelerated OpenGL may require
installing third-party drivers, which most people are not willing to do.

Over the summer, I used a borrowed Linux laptop. ?No OpenGL development
libraries. ?I suppose the computer could have had hardware accelerated
OpenGL drivers, although I seriously doubt it. ?I guess I’ll never know,
because I wasn’t able to compile and run any OpenGL programs.

In the autumn, I installed Linux on my main computer. ?The latest stable
Debian. ?I managed to install the OpenGL development libraries, so I can
confirm that my computer now has software-emulated OpenGL, but no hardware
acceleration.

I also installed Windows XP, service pack 3, on another hard drive on my
main computer. ?Windows did not recognize my graphics card. ?I installed the
third party drivers, and now I have hardware accelerated OpenGL under
Windows.

So that’s zero out of three computer/OS combinations with working
hardware-accelerated OpenGL out of the box.

That’s the thing, if you’re smart enough to go a hardware store and buy a
graphics card, install it yourself, then you probably know “drivers” are and
that you need to install them manually. On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).
Either way, even the less “Linux-aware” didn’t install a graphics card and
think Linux would immediately have drivers for it – they searched online
and what do you know – Linux drivers for their AMD/NVidia card.

At this point, Linux on x86 hardware has OK support for OpenGL out of the
box. If you use even a reasonably old laptop/desktop, you probably will get
nouveau, radeon, or intel drivers for NVidia, ATI/AMD, and Intel graphics
respectively. These are all open source, all supported by DRI, and all have
various degrees of OpenGL support. They also cover 90%+ of the GPU. If you
install Windows 7, odds are it has a old driver for them, and if it does, by
the time you run Windows Update you will (e.g. I got a driver for GeForce
240 via Windows Update).

Telling people to use software rendering in 2012 means one of two things:

  1. Your platform isn’t likely to have a graphics accelerator
  2. You enjoy academic exercises

Software rendering can do a lot of cool things and the total lack of
dependence on GPU hardware is admirable, but I think at this point in
technology, it is misplaced. Your experiences don’t actually map to the
reality of the situation:
a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

As it so happens, I installed Linux on 4 computers recently and 4/4 had
OpenGL out of the box. 4/4 also had intel/amd/nvidia graphics chips. I don’t
know what kind of crappy laptop you must have been using to not get OpenGL
support, or maybe you picked a distribution that doesn’t believe in recent
drivers (cough: Debian-stable), but people are shipping Linux with desktops
running with compositors by default now, meaning they use the 3D parts of
the chip to do cool desktop effects. I think that speaks volumes to the
less-than-experimental nature of OpenGL on Linux.


Rainer Deyke


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Talking about fast blitters, I’ve been doodling with cairo, and it uses
pixman. There is also liborc (the son of liboil), and babl/gegl.

Makes me wonder, if reusing work from there won’t be beneficial to SDL
(software rendering). Some of the code for pixman blitting seems very
advanced (well to my eyes, I might be wrong after all).

Just givin my 2 cents.On 12/18/2011 7:25 AM, Rainer Deyke wrote:

On 2011-12-17 17:11, Patrick Baggett wrote:

That’s the thing, if you’re smart enough to go a hardware store and
buy a
graphics card, install it yourself, then you probably know “drivers” are
and that you need to install them manually.

Yes, I do. Old PCs in family have a tendency to get handed down to the
less technically inclined, so it’s quite possible that my mother could
end up with a PC with a graphics card without knowing what drivers are
or how to install them.

On Linux, there is this certain
expectation that the moment you boot it, all drivers should be present,
where on Windows, the expectation is opposite: you are expected to go out
and dig up all of your driver CDs (anyone remember reinstalling Win98?).

This does not reflect the reality of the typical Windows end user. I
know graphics cards need drivers and you know that graphics cards need
drivers, but we’re programmers.

At this point, Linux on x86 hardware has OK support for OpenGL out of the
box. If you use even a reasonably old laptop/desktop, you probably
will get
nouveau, radeon, or intel drivers for NVidia, ATI/AMD, and Intel graphics
respectively. These are all open source, all supported by DRI, and all
have
various degrees of OpenGL support. They also cover 90%+ of the GPU. If
you
install Windows 7, odds are it has a old driver for them, and if it does,
by the time you run Windows Update you will (e.g. I got a driver for
GeForce 240 via Windows Update).

I can’t run Windows Update because my main computer has no internet
connection. I’m using a crappy proprietary usb stick that connects to a
mobile phone network for my internet connection. In order to get a
internet connection at all, I have to go upstairs, and the proprietary
software makes it impossible to forward the internet connection across
my LAN. I would get broadband, but the cables just don’t exist. Yes, it
sucks, yes, it’s an unusual situation, but it’s also a reality that I
need to deal with every day.

This also explains why I am stuck with Debian Stable. Moving to Testing
would require an internet connection.

Telling people to use software rendering in 2012 means one of two things:

  1. Your platform isn’t likely to have a graphics accelerator
  2. You enjoy academic exercises
  1. You want to support the widest possible range of computers, like the
    original poster.

If software rendering was more difficult than OpenGL, then you might
have a point, but SDL 1.2 ships with highly optimized software blitters
that are adequate for most 2D applications.

a) There are TONS of supported graphics cards on Windows
b) People don’t expect to use Windows immediately after it loads, they
install drivers
c) Linux has decent OGL driver support for the big 3: intel, amd, nvidia
d) Most major distributions ship with these drivers by default
e) Most major distributions provide free updates for these drivers

All of these (except b) are probably true, but beside the point. Most
major distributions is not the same as all. Why limit your audience any
more than necessary?

As it so happens, I installed Linux on 4 computers recently and 4/4 had
OpenGL out of the box.

Great, that’s 4/7 computers with OpenGL out of the box if you combine
your experience with my experience. All seven of these computers support
software rendering out of the box.

Well in such case, what one does is to have a fallback. It’s nuisance,
as SDL is already a “fallback” (in very good sense) for what’s in
general missing, but once you get around it, it’s not that big piece of
a code.

There are at least few good software OpenGL renderers, that are probably
fine for usage in 2D games, especially if alpha-blending is done by
using grids & masks, rather than actual blending (very old school, but
Halo I think did for the old Xbox).

I have a project that uses cairo, SDL, and among others even glfw (glut,
SDL alternative for OpenGL only), and it works even on arm cpus with
Linux, such as the SmartTop/SmartBook from Power-developers.org (Efika MX)On 12/19/2011 3:10 AM, Rainer Deyke wrote:

On 2011-12-18 14:26, Patrick Baggett wrote:

On 12/18/11 21:25, Rainer Deyke wrote:

I can’t run Windows Update because my main computer has no internet
connection. I’m using a crappy proprietary usb stick that connects to
a mobile phone network for my internet connection. In order to get a
internet connection at all, I have to go upstairs, and the proprietary
software makes it impossible to forward the internet connection across
my LAN. I would get broadband, but the cables just don’t exist. Yes,
it sucks, yes, it’s an unusual situation, but it’s also a reality that
I need to deal with every day.
And again, your experiences != rest of the world.

Sure, it’s just one sample point, but your own experiences are just as
anecdotal. Unusual situations exist all around us.

Try Valve’s “Steam”. They’ve got quite literally tens of
millions of people online playing games. Of those games, how many do you
think require hardware acceleration to run? I’d venture > 90% if not
more. You know what, go look for yourself.

That’s what we call a self-selecting sample. Steam focuses on the
hardcore gamer market. Most of their games require 3D acceleration, so
most of their audience has 3D acceleration, which in turn removes the
incentive to support software rendering on Steam.

Check out some of the casual gamer sites, and you’ll find that the
statistics are skewed in the other direction.

Yes, I suppose, but you sacrifice a large number of things. If he just
wants "really-portable-2D-mission-critical-works-out-of-the-box-accept-
no-substitutes-no-exceptions, then by all means, 640x480 software
rendering of sprites. I think it is unnecessarily limiting, but hey, I
can’t argue with the absolute statement that “it allows a wider
audience”, I just can’t comment on how /much/ wider an audience it buys
you for basically limiting your game to low resolutions, 50% alpha
blends, and few sprites.

I think you are underestimating what software rendering can do on a
semi-modern computer.

Because having a wider audience isn’t always the point.

To the original poster, having a wider audience is the point. He
already mentioned that his game isn’t graphics-intensive.