Re: Gaming Interface

Previous thread: trouble loading self compiled vanilla kernel by Jonas Svensson on Monday, January 8, 2007 - 2:59 am. (8 messages)

Next thread: [PATCH 001/001] USB MASS STORAGE: US_FL_IGNORE_RESIDUE needed for Aiptek MP3 Player by Dylan Taft on Monday, January 8, 2007 - 4:14 am. (1 message)
From: Dirk
Date: Monday, January 8, 2007 - 4:39 am

Nice day, everyone!

How about having a simple Game API like SDL included in the Kernel and
officially announce the promise to change it only once every couple of
years?

I guess that will make it a lot easier for Game producers to calculate
the costs of porting things to Linux and people won't have to waste time
with win32 interfaces anymore that need more time to get working than it
would take to install win32 on a 2nd partition and run Linux from VMware
or something (After trying WoW, CS and others I know exactly what I'm
talking about).

I believe Game producers are pretty confused and need someone good
looking to talk to them on a presentation or so and tell them: "Here,
LOOK! A interface for Video, Sound, 3D and events in the kernel and it
will not change before 2.8.x. (Or for at least 5 years)."

I think that would help! Simple decision makers need such promises.

Linux Gamers can finally sit in the 1st row and leave all that 08/15
crap and waste of time behind.

That interface could should be (optional) compiled as module of course.
And it should put Audio, Video and Events _together_ in _one_ interface.
Pointing people at ALSA, Device Drivers, etc doesn't work since those
are 2+ interfaces instead of one and people will lean back and be like:
"Uhhhh... if they had all that in only one interface..."

It would also be a correct place to nclude the binary only drivers from
nVIDIA and ATI somehow, since only gaming folks really need those.


I know I'm wrong but the currect solutions suck so much... they made me
subscribe here,
Dirk
-

From: Trent Waddington
Date: Monday, January 8, 2007 - 3:43 am

Call me crazy, but game manufacturers want directx right?  You aint
running that in the kernel.

Trent
-

From: Dirk
Date: Monday, January 8, 2007 - 5:13 am

They want something like DirectX that changes it's API less frequent
than DirectX and that compiles as a module because you don't want to run
it in the kernel.

-

From: Jay Vaughan
Date: Monday, January 8, 2007 - 4:17 am

Whats wrong with just using SDL/OpenGL?  Thousands of games are made 
with SDL/OpenGL, and there are realms of Linux usage where this works 
just fine, especially for games (GP2X, etc).  In case you didn't 
notice, plenty of pro Game Developers use SDL/OpenGL just fine for 
their needs, and get the job done without grumbling and groaning 
about needing to have their hands held through the process.

I fail to see the reason this requirement has to be a 'kernel' 
interface, other than pure sheer laziness and inability to grok on 
the part of the so-called professional Game Developers.  Gaming is 
only *one* kind of application for the Linux kernel - shall we burden 
the kernel with everything everyone wants just because people fail to 
understand the proper way to assemble a Linux-based kit for their 
specific application needs?  (Hint: work with the distro builders.)

Just my .2c, but anyone suggesting that API's be crowbar'ed into the 
kernel "just to make it easier to get what you want from a single 
source" is probably not as familiar with the underlying technology, 
nor the reasons for its structured organization, as they ought to be 
before making such suggestions ..

-- 

;

Jay Vaughan

-

From: Dirk
Date: Monday, January 8, 2007 - 6:04 am

But I don't see top titles ported to SDL/OpenGL. You must take into
account with what kind of people you're dealing with. It's not the pro
Game Develpers who make decisions. It's the people who completely rely
on words who ake decisions. So, if you tell them that there will be a
_official_ API on Kernel level which will be available on all 300+ Linux
distributions they will understand that they're dealing with something
they can rely on. They don't know SDL. And most of these characters
think OpenGL is dead. That's arrogant, I know. They choice about what
stuff they care is made by big words and statements, not by their

That's exactly what I'm talking about. They're lazy and dumb. So they
need something where they can say: "Hey, that is one interface that
doesn't change every couple of month. I can try to wrap my lazy brain

Yes. Exactly. There is already code for very specific tasks in the
kernel. A module that acts as a
i-will-never-change-my-api-and-will-be-available-on-EVERY-linux-because
i'm-part-of-the-kernel wrapper for video, sound and events dedicated to

I'm just guessing that the real problem of Linux gaming is that
developers must get it that there is an official way to port games to
linux w/o toolongdidntread, ever changing API's or as many different
problems as there are distributions.

Porting games to Linux has to be _very_ _easy_.

I have this idea to put such standard API into a kernel (module) because
the kernel, unlike SDL and OpenGL, is available on _every_ Linux
distribution.

That is the _only_ reason why I think it should be in/part of the
kernel. As I said before: Simple decision makers will see a difference
between "Hey, you can port your game using SDL and OpenGL".. or "_Every_
Linux system/distribution has a standard Interface for all needs that
won't change for a long time." They will realize that gaming under Linux
has become _one_ _simple_ problem than a
number_of_dists*different_configurations=number_of_problems problem.

Give them ...
From: Helge Hafting
Date: Monday, January 8, 2007 - 7:09 am

Tough luck then - openGL is the standard gaming interface on linux,
well for the 3D graphichs part at least.  You already have this,
so having a "standard" clearly isn't enough then.

More titles will be ported to linux when linux becomes more
popular as a home platform.  It is that simple.  And then it will
happen no matter what the interface will be.  Although I
believe it will still be opengl - opengl is nice and don't need
to change. Also, the fact that it isn't in the _kernel_ doesn't
Wrong.  This kind of people worry about market share and so
It is wrong - it might be dead _on windows_ because
Then you won't get support here - nobody cares about
1. Linux don't support the lazy and dumb. Won't happen.
2. Even the lazy and dumb can use nice standardized unchanging
    interfaces - provided by a library rather than the kernel.  It is not
Such a thing is nice - but it don't need to be in the kernel. Try
to understand that! An interface set in stone can be provided
by a standard library that all distros pick up. (No distro will
skip an important library, that way they get behind the other distros.)
The advantage of this is that such a library can keep the
game programmers interface constant even when the kernel interfaces
are mercilessly changed. And yes - they _will_ change.  Everytime
that happens, people here laugh at commercial actors getting
in trouble. (Example - the tradition of ruthlessly breaking the binary-only
Sure, and that official way is to use support libraries.  Such
as opengl for 3D, and one of the well-supported sound libraries
Depends on what you port them from!
People even write free games for linux, so it can't be that hard.
Professional game vendors even get paid, so they shouldn't
Every _module_ isn't available on every distribution either,
so that's bad thinking. I think you will find the existing
gaming libraries on any distro aiming at "generic" or "home"
usage.  Specialist distros aiming at "servers", "firewalls",
or "small embedded devices" will ...
From: Dirk
Date: Monday, January 8, 2007 - 8:36 am

Alright. I came to discuss an idea I had because I realized that 
installing Windows and running Linux in VMware is the only _fun_ way to 
play "real" Games and have Linux at the same time.

And everyone who says I'm a troll doesn't like Games or simple things.


Dirk
-

From: l.genoni
Date: Monday, January 8, 2007 - 8:11 am

Please, don't think so. The point is simpler. Linux has its own standard, 
which is a Unix one, openGL on X11 and then SDL. There is a kernel 
component to get 3d acceleration with openGL, which is DRM.
This standard is nice, and openGL is available also on windows, where 
doom3, quake4 and the like use it happily.
There is no point to introduce something different and to change this 
standard.

Luigi

-

From: Jan Dittmer
Date: Monday, January 8, 2007 - 12:31 pm

That's not true, see wine/cedega for a linux direct-x implementation.
Works wonders with most of the current games and copy protections.

Jan
-

From: Dirk
Date: Tuesday, January 9, 2007 - 12:14 am

I tried to get WoW installed with Cedega 5.2.9 for two days now.

Cedega is not a replacement for ports. And it does not encourage ports.


Dirk
-

From: Trent Waddington
Date: Monday, January 8, 2007 - 11:16 pm

We're totally off topic now, but what the hell.. You wanna encourage
ports?  Write a step by step guide on how to most easily port a modern
game from Windows to Linux.  My suggestion would be to use winelib and
include all the workarounds needed to make the game compatible with
the DirectX support in wine.

As far as I'm aware, there is no such guide, so if a games company was
to decide to port their game to Linux (for whatever whacky reason)
they wouldn't even know how much work they have ahead of them.

Trent
-

From: Adrian Bunk
Date: Tuesday, January 9, 2007 - 12:07 am

It does already exist:
  http://winehq.org/site/docs/winelib-guide/index


cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-

From: Trent Waddington
Date: Tuesday, January 9, 2007 - 12:10 am

That's half the guide I recommended Dirk write.. and could do with
some updating.  The other half is how exactly you go about using
DirectX with winelib.  I've seen no guide to *that*.

Trent
-

From: Lennart Sorensen
Date: Tuesday, January 9, 2007 - 9:08 am

Why not start by suggesting using standard api's instead when writing
the original game engine.  That would make porting it easier later.

Well Bioware managed to port neverwinters nights using SDL without that
much dificulty by the looks of it, although it already had opengl in
use.  I believe that is how they did the mac port too.

--
Len Sorensen
-

From: Valdis.Kletnieks
Date: Tuesday, January 9, 2007 - 4:02 pm

When it's installed on 95% of the computers, it's a de-facto standard. 
From: Lennart Sorensen
Date: Tuesday, January 9, 2007 - 4:05 pm

And "de facto" does not make it a real one.  opengl is installed on more
machines that directx.  If installation numbers is what decides it, then
opengl will beat directx easily and obviously means opengl should be the
de facto standard everyone uses.  I think what you meant is that windows
which has both opengl and directx is by far the most common
installation, and microsoft says to use directx rather than opengl on
their systems even though it has both and both work, and ID software
thinks microsoft's direct3d isn't as good as opengl, but that apparently
doesn't actually matter either.

--
Len Sorensen
-

From: Kasper Sandberg
Date: Tuesday, January 9, 2007 - 2:50 am

and thats because you made the wrong choice. world of warcraft installs
and runs perfectly in wine. and if you dont mind using proprietary

-

From: Jesper Juhl
Date: Tuesday, January 9, 2007 - 5:15 am

I'm playing WoW on Slackware Linux 11 with a 2.6.18.6 kernel and wine
0.9.28 and it works just fine.

-- 
Jesper Juhl <jesper.juhl@gmail.com>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html
-

From: Lennart Sorensen
Date: Tuesday, January 9, 2007 - 9:07 am

It seems more like an excuse offered to game companies for not writing
ports.  And then there are the license issues and fights that seems to
have taken place between wine and cedega. :)

--
Len Sorensen
-

From: Adrian Bunk
Date: Monday, January 8, 2007 - 12:57 pm

Open source does not work by telling about some seemingly good idea you 
had and expecting other people to implement your idea.

Open source works by you implementing your idea.

Try it yourself, and you will see the technical problems of your idea
(e.g. porting userrspace code to the stack-limited kernel or crashing 

You talk as if you knew everything about games on Windows, but you seem 
to not even have heard of Wine or Cedega?


cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-

From: Dirk
Date: Tuesday, January 9, 2007 - 12:16 am

I tried to get WoW installed with Cedega 5.2.9 for two days now.


Please don't do this...


Dirk

-

From: Adrian Bunk
Date: Tuesday, January 9, 2007 - 12:00 am

And what should encourage ports?
It's not that all people developing software for Windows were idiots who 
don't know what technologies Linux offers.

Remember Loki as an example that the market for games under Linux isn't 
big enough.

And remember Picasa as a success story for Wine - exactly because a port 
would have required too much effort for developers that were busy with 

cu
Adrian

[1] http://appdb.winehq.org/appview.php?iAppId=1922

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-

From: Trent Waddington
Date: Tuesday, January 9, 2007 - 12:08 am

I understand what you're saying here, but Picasa *is* a port.  They
ship an elf binary that links to winelib and they integrate in native
file pickers for your favourite platform.  If by "port" you mean "GUI
rewrite to use GNOME or KDE" then no, it isn't that, but that doesn't
mean it's not a port.

Trent
-

From: Kasper Sandberg
Date: Tuesday, January 9, 2007 - 2:51 am

they ship a precompiled wine, which runs their default win32 binaries.

-

From: Kasper Sandberg
Date: Monday, January 8, 2007 - 9:40 pm

it really seems like you dont know much about development in general.

first off, sdl havent changed api in long time, atleast nothing that has
broken anything, and secondly, opengl and such ARE a standard, and yes,
opengl require some kernel support, which is there.

no need to have stuff in the kernel that doesent belong there.

and there are even more wonderful things, you see, a third party
application(as in, a game) does NOT require stuff like sdl to actually
be installed on the box, or available in the distributions package
repository. you see, there is something called linking, a game vendor
could simply statically link sdl, or dynamically link it, and bundle.
and as for opengl, that is either there, or not. and if its not there,
it would not be anyway, as it wouldnt be supported on the given system.
unless the distribution is NOT meant for things like opengl.

so in the grand scheme, the things you are suggesting are completely a
wrong solution, and furthermore, a solution to a problem that does not

-

From: Dirk
Date: Tuesday, January 9, 2007 - 12:22 am

If there is no problem with Linux gaming I should shut the hell up and 
start buying all these Linux games I keep hearing about and seeing in 
those TV commercials.


Dirk
-

From: Kasper Sandberg
Date: Tuesday, January 9, 2007 - 2:48 am

From: Helge Hafting
Date: Tuesday, January 9, 2007 - 5:10 am

Come on!  We agree that there aren't many games to buy on linux.
We just disagree a bit on why.
You suggest a standard API in the kernel.  You have been informed
why this can't be in the kernel, and that well-supported standard APIs for
linux games exists already anyway.  Perhaps the documentation could be
improved - you were probably not the only one who didn't know
that opengl+SDL is the way to do games on linux.

The reason you see so few games on linux is _not_ lack of support
for game programmers in linux.  The support is there,
it has been there for a long time - and that
is why we have 3D games like ppracer and quake on linux.

The reason there isn't many commercial games for linux is that
desktop linux is a smaller market than desktop windows.  Linux
is big on servers but few people play games on those.

We could port directx today and there still wouldn't be that many
linux games.  This will change only as home limux becomes more popular.
And then we'll get linux games no matter what the programmers will
have to do to make them work. The problem is market share - not
technology.



Another thing - why worry about those commercial games anyway?
It is not as if linux lack games, the only problem might be how to pay
for them. ;-) 
On debian, the following command counts over 400 game titles:
apt-cache search game | grep -v lib | grep game | wc

Helge Hafting
-

From: Lennart Sorensen
Date: Tuesday, January 9, 2007 - 9:04 am

There is no problem with linux gaming.  There is a problem with game
development companies and their marketing decisions.  Unless you somehow
make linux have 100% compatible directx and able to natively execute
windows code, the game companies aren't going to give a @#$#.  They have
a limited budget and for them it is more important to aim for 99% of the
market than 100% of the market if it means saving 20 or 30% in
development costs.  Even if it saves 5% in development cost, it makes
sense financially.

Some companies of course realize that the installation base does not
always equal the gamer installation base and write portable code in the
first place using abstraction layers where needed, and stick to opengl
and such.  This is why quake, and other titles from ID are ported to
linux and mac and such.  Some companies believe the hype from microsoft
about directx and write for that instead, which makes the games not
portable to mac or linux or anything else.

The problem is not that linux doesn't have any decent stable api for
games.  The problem is that it isn't directx which is what a lot of
companies believe they want to use.

I play neverwinters nights on my linux system.  I have never seen it on
windows.  Linux uses opengl, while I have no idea if the windows version
is opengl or directx or maybe lets you pick (some games offer a choice
of rendering engine).  I do know the game runs great for the most part
even though my hardware is below the minimum specs if I was running on
windows (at least according to the box for the game).

--
Len Sorensen
-

From: Adrian Bunk
Date: Tuesday, January 9, 2007 - 9:51 am

It could also simply be that a developer adding a new feature or fixing 
a few bugs is generating more income than a developer working on a 
Linux port.

And no matter how much money you have, you can't always solve such 

This is no hype, this is reality.

Microsoft has a an enormous market share at the desktop.

DirectX is simply _the_ state of the art technology you have to use in 
some areas of game development if you don't want to make your game 

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed

-

From: Akula2
Date: Tuesday, January 9, 2007 - 2:14 pm

I feel that you are getting confused Linux = linux (kernel)? This
effort is pretty much lies with the distro guys. I have played couple
of gameson the Linux. And tried with wine/winex too (mostly failed due
wine config issues).

One day...I would love to see the only games on Windows I play -
MotoGP & Age of Empires   getting rocked on Linux, but am not sure
whether this happens or not.

I didn't try any commercial wine on Linux.

~Akula2
-

From: Alistair John Strachan
Date: Monday, January 8, 2007 - 7:47 am

This is because you're not looking very hard. If you look at Ryan's ports over 
at http://icculus.org/ many of the games (some he's _paid_ to port) use SDL 
statically linked in. There's no legal or technical problem with this.

Really, what you're talking about already exists. If anything, you need to 
convince the SDL guys (not the kernel guys) to make SDL more comprehensive OR 
write your own multimedia library, perhaps based on or backending to SDL.

As noted elsewhere in this thread, most games use 3D hardware exclusively, and 
only really care about the OS for initialising a video mode and playing 
sound.

Most ports probably suffer the worst from the lack of DirectX APIs on Linux, 
something which the WINE project is trying to solve. Using libwine, one will 
eventually be able to write native Linux applications that use the DirectX 
APIs. Porting should then be very much easier.

Of course, vendors using OpenGL gain Macintosh portability amongst other 
things, and most of the really big titles do have OpenGL render modes, which 
are already largely portable.

-- 
Cheers,
Alistair.

Final year Computer Science undergraduate.
1F2 55 South Clerk Street, Edinburgh, UK.
-

From: Jan Engelhardt
Date: Monday, January 8, 2007 - 1:39 pm

SDL is slow, at least for software rendering (not that I advocate it 
being put into the kernel):

http://forum.zdoom.org/potato.php?t=1913 (hope you can decipher the html table)


	-`J'
-- 
-

From: Tomas Carnecky
Date: Monday, January 8, 2007 - 2:57 pm

A new API would be counter-productive! There's X11/OpenGL for graphics
and OpenAL for sound, both APIs widespread even in the windows world and
also on BSD and all other flavors of UNIX. X11/OpenGL hasn't changed for
years (X11R6 has been released around 1985 IIRC).
The whole point of X11 is that anyone can implement a server, the spec
is open to anyone, and once you write a X11-compliant client it will run
on any UNIX/Linux computer.

Now if you introduce a special API for the Linux kernel, the game
developers would have to create two versions, one for Linux and one for
all other UNIXes. But more realistically, they'd just stick with the
plain old X11/OpenGL/OpenAL design because not everyone will have this
new kernel and they'd still have to release two versions for Linux: one
for the new kernel and one for the older computers.

Linus already stated several times that the kernel ABI is not stable! It
will change, and it's the responsibility of userspace tools/libraries to
provide a stable API.

So, to answer your question: We already have a simple API. One that has
been stable for 10+ years now and won't be changing anytime soon.

tom
-

Previous thread: trouble loading self compiled vanilla kernel by Jonas Svensson on Monday, January 8, 2007 - 2:59 am. (8 messages)

Next thread: [PATCH 001/001] USB MASS STORAGE: US_FL_IGNORE_RESIDUE needed for Aiptek MP3 Player by Dylan Taft on Monday, January 8, 2007 - 4:14 am. (1 message)