Wednesday, November 21, 2007

Unix Gaming History

Some time ago I have written a text about the origins of Unix gaming, and think it would be nice to publish it here, too:

While the roots of the Unix family lays back in 1969, and meantime has become a mature and widespread platform in the hacker culture, Unix-like systems never have been a traditional video gaming platform. Nevertheless, gaming also exist among hackers, and the BSD Games Collection (/usr/games) is a contemporary witness of traditional Unix games, a collection of classic text-based games. Due to Unix's strength in networking, it also has been used as MUD/MUSH server often. Probably the most popular traditional Unix game ever written is Nethack, from which even some graphical clones have been developed nowadays. Indeed, even graphical X11 games usually have a cheesy look.

As the gaming scene evolved in the late 1980's, because of new commodity hardware like VGA with lots of potential for gaming, Unix was rather used for expensive high-quality workstation-oriented graphics, but unsuited for arcade games. That's when the development of Linux started in 1991, which is the epitome of Unix today. Those days Unix's graphic capabilities were limited to an ugly implemented SVGALib with limited hardware support, or the network-friendly and flexible Xlib, which was slow. Some few attempts to establish the upcoming Linux as a gaming platform in the mid 1990's, by porting games like Doom or Abuse (both use SVGALib and X) didn't really break into a new market. Especially Dave D. Tayler did some pioneer work then.

In the mid 1990's the 3D revolution began with the introduction of commodity 3D accelerators, though it took some time to bring the new technology to Unix. Indeed, the new 3D technology heavily relies on the driver support of the manufactures, and due to their mulishness isn't yet supported for Unix-like systems in general. In 1993, Brian Paul started Mesa, a free implementation of the OpenGL specifications, but Daryll Strauss is known as the person who brought 3D graphics to Linux by convincing 3Dfx to let him port Glide. For the first time 3D acceleration was supported by Mesa 2.2 via Glide in 1998.

Since OpenGL doesn't handle presentation devices, it needs to be connected for a proper integration into X. This sort of glue is SGI's GLX, Open Source since 1999. It still needs a suitable driver for 3D hardware acceleration, and Utah GLX was an attempt to extend GLX with hardware acceleration. Indeed, it reached a reasonably good performance, but had intrinsic limitations in its design. Nevertheless, it was the beginning for Linux as a viable gaming platform, and the start for Loki Software (1998-2002) to port some games to Linux. Following Loki's example, Linux Game Publishing was founded in 2001 with the aim to port games to Linux.

The Direct Rendering Infrastructure (DRI) was another attempt to support hardware acceleration, and has overcome Utah GLX's design limitations. It consists of the Direct Rendering Manager (DRM) kernel modules, which provides an interface to the hardware, and a userspace backend for Mesa, which access them. DRI reaches excellent 3D performance on supported hardware, and is supported on Linux, FreeBSD, NetBSD, and Solaris.

Only few professional game developers support Linux as gaming platform these days. Probably the best known developer still is id Software, but others like BioWare also see an opportunity. At this time, development of Unix games is mainly done for Linux by hobbyist of the Open Source culture, and is on its way to produce some very nice free titles, though they usually can't compete with modern games by the industry for several reasons. Due to this situation, over the years an alternative to playing original Unix games by machine emulation has become popular, and makes it possible to play original games for Windows, AMIGA, Super Nintendo, Neo Geo, Playstation, and many more. It is also possible to run Linux on several video game consoles like Xbox, PlayStation, GameCube, and Dreamcast.

1 comment:

Max_Might said...

very nice article :) thx