
Valve's GDC Talk: Porting Source to Linux [pdf] - fafner
https://developer.nvidia.com/sites/default/files/akamai/gamedev/docs/Porting%20Source%20to%20Linux.pdf
======
ZeroGravitas
This isn't my area but, they appear to be saying that by using OpenGL instead
of Microsoft's equivalent, not only do they get Linux support and a stepping
stone to mobile support, they can also use more up-to-date code that Microsoft
doesn't support on XP (highlighting China as a place where they have modern
machines running the old operating system) _and_ get a 20% performance
improvement even when going through a translation layer.

That's a very interesting result.

~~~
bitwize
I'm actually surprised that there isn't more support for a native Linux
version of Direct3D. It is by far the better of the two APIs, both in terms of
ease of use and more closely conforming to the model used by video hardware
itself. Since the future of remote Linux desktops is going to be based on
Microsoft's RDP rather than X, it makes sense for the open source community to
adopt a better Microsoft technology when it comes along.

~~~
btian
>surprised that there isn't more support for a native Linux version of
Direct3D

There is no surprise. D3D is proprietary while OpenGL is open standard.

>It is by far the better of the two APIs

I highly disagree. Do you have any examples?

>Linux desktops is going to be based on Microsoft's RDP

What?? I've seen plenty of VNC in the wild, but yet to see any RDP

~~~
CamperBob2
_I highly disagree. Do you have any examples?_

OpenGL is a dog's breakfast of an API. It's everything an API shouldn't be --
stateful, verbose, and committee-driven. Just take a look at Valve's .PDF.

An OpenGL programmer spends a large part of his/her time trying to maintain a
mental model of the underlying driver's state and behavior. And God(s) help
you if you step off the path used by popular applications and game engines.
You can expect combinatorial bugs out the wazoo, again because the API and
driver layers are so stateful.

I agree with the grandparent -- it's well past time that a D3D-like API was
adopted by other players. I've used OpenGL since the Quake 1 days and I've
never understood why so many people sing its praises. The days when D3D was an
inferior API are more than a decade behind us.

~~~
dman
One reason to sing opengl's praises - cross platform.

~~~
bitwize
That's bullshit. In practice different GPU parts support different subsets of
OpenGL's shader model, leading to broken graphics depending on the GPU. This
is a huge problem in, for example, Android games, where you have to test on
just about every device to see what works and what doesn't.

OpenGL is cross-platform because it's legacy. It is primarily of interest to
outdated CAD software vendors, because that's who's driving the API specs,
hence why it took so long for the fixed-function pipeline to finally be
dropped. Modern CAD vendors, such as Autodesk, render through a Direct3D
pipeline.

~~~
jra101
The Android issue is entirely caused by shitty drivers. Pretty much all mobile
hardware after the original iPhone fully supports OpenGL ES 2.0 shaders which
haven't changed since inception.

------
gioele
And today I learned about the existence of cGDB (a curses frontend for GDB,
<http://cgdb.github.com/> ). It seems very nice and I agree with what is said
in one slide of the Valve talk:

«* gdb: debugging from 1970

* cgdb: debugging from 2000»

~~~
wladimir
cgdb looks promising. I really, really liked the Turbo Debugger in the 90's.
No debugger has offered me the same experience since. It was fast, the text-
based windowed interface allowed efficiently jumping to assembly as well as to
the source, view registers, editable hex dumps of memory, view watchpoints
etc.

gdb is super-powerful but was a bit of a setback interface-wise because
everything has to be done on a plain command line. And the GUI-based wrappers
around it don't appeal to me much (don't know why, the ones I tried felt
somewhat clunky).

~~~
narrator
Eclipse on Linux has great C programming support including interactive
debugging using the CDT (C development toolkit) plugin. I used it to
interactively debug operating system code running in a virtual machine on my
Linux box recently and it worked great.

~~~
cabernal
You might be interested in the Eclispe Linux Tools project[0], which
integrates a lot of popular Linux profiling and debugging tools with Eclipse.

[0]<http://www.eclipse.org/linuxtools/>

------
noahl
It's not directly related to games, but I was very surprised to see their
graph of operating system usage. In the last few months (which, admittedly,
are not at all typical), their Linux usage increased by 1% every one to two
months. At that rate, it would pass OS X use by April. It would be really cool
if these numbers made other companies, including non-game ones, become more
serious about Linux development.

~~~
ecuzzillo
Steam for Linux just came out of beta, and they marketed that fact fairly
heavily.

~~~
skeletonjelly
By merely signing in on the Linux beta you got a tux hat for TF2. Adoption
would have been pretty heavily affected by this.

------
aspensmonster
>Why port? >Linux is open

Well, GNU/Linux may be open overall, but the NVIDIA drivers and in-house dev
tools that are making all the magic happen certainly aren't.

------
spacelizard
The real question is, can we expect a FOSS release of old (or new) valve code
any time soon? It seems natural given their modder-friendly nature and their
shift towards GNU/Linux. Plus, it's about time someone else followed Carmack's
example.

~~~
keypusher
Their approach has generally to release their tools and SDK so others can
build using their tools. I don't think they have much interest in releasing
the code, but they have always wanted (and benefited from) the community
taking their tools and engine and building cool stuff.

~~~
spacelizard
I think they should have an interest in it. The toolchain they publish is
notoriously out of date and suffers from poor documentation. Why not let the
community work on it? There seems to be demand for it.

~~~
TazeTSchnitzel
Perhaps they could release the source for GoldSrc, considering it isn't used
by any of their current games.

------
carl689
While I understand why, I still find it a bit funny seeing Windows screenshots
on a Linux porting pdf.

~~~
endianswap
We're a pretty Windows-centric shop, I often see great effort to do OSX/Linux
development via some convoluted toolchains just to be able to do the brunt of
the work on Windows in Visual Studio.

------
rplnt
Is there a video/audio for this talk? Or can we expect it?

~~~
thristian
This was a talk given at GDC, so it will no doubt end up on
<http://www.gdcvault.com/> sooner or later - but it will very likely be behind
a paywall.

~~~
sverrejoh
A $495 paywall, non the less. Probably a good buy for many, but a little out
of reach for hobbyists.

~~~
glaze
Sometimes they release old videos for free, but it can take years.

------
jiggy2011
The point about China is interesting, if this gets China to start switching to
Linux on the desktop then MS has real problems.

I wonder why they are mainly using XP in china? Is it just that 7/8 are more
difficult to pirate?

~~~
TazeTSchnitzel
Perhaps there is a lot of software written for XP, many computers can't run
Vista or 7, and there is little incentive to upgrade anyway? Those would be my
guesses.

------
fulafel
Telemetry definitely sounds neat. anybody know about pricing?

------
martijnh
than you for writing were, rather than was

