Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!

Engines

From Quake Wiki

Overview[edit]

The game engine (a.k.a. Quake engine or just engine) is the 'executable' program you run to actually play Quake. It loads the game's maps/models/skins/etc., figures out what to draw on the screen, responds to your keyboard/mouse input, sends sounds to your sound device, and communicates over the network. The game engine normally resides in the root Quake folder and expects to have access to the ID1 subfolder which contains, at the very least, the files needed to play Episode 1 (normally pak0.pak).

Other common names are "client" or "source port". "Client" is a correct yet overly technical title unless you are talking about a QuakeWorld client. A "source port" would technically be a port of a Quake engine to another architecture like Linux or a console.

Client-server model[edit]

Quake engines operate on a client-server model. Depending on the engine, the client and server can be in the same file, or can be separate.

If they're in the same file, then when you run the engine, the server always runs. The client normally runs, too, unless you did something special to launch the engine in a server-only mode (e.g., for other people to connect to for playing over a network). So when you play a single-player game of Quake, the client portion of your engine communicates with the server portion. When you play a multiplayer game over a network, the client portion of your engine instead communicates with a remote server, which naturally will be subject to speed limits and delays inherent in the network.

If they're separate programs, then you only run the client, and you tell it where a server is running that you want to connect to. A server browser can help you locate servers where you can join a game and play with other people.

Networking and graphics[edit]

Engines generally fall into two categories:

  • "NetQuake" engines: engines with networking code compatible with that of the original Quake engine.
  • "QuakeWorld" engines: engines with networking code compatible with that of the original QuakeWorld engine.

Additionally, all engines use one of two graphics rendering technologies:

  • Software rendering: rendering is done entirely in software, without the help of graphics hardware, as in the original Quake and QuakeWorld engines.
  • OpenGL rendering: rendering is done with the help of graphics hardware, as in the original GLQuake and GLQuakeWorld engines.

QuakeWorld-style networking code and OpenGL-style rendering are standard nowadays in pretty much every first-person shooter, but at the time Quake was released in 1996, both were new technologies.

You will probably want to use an engine with OpenGL support, if your hardware is compatible (pretty much any computer built after 1997 will be). And you will probably want to use a QuakeWorld engine for playing over the Internet. However, for single-player games, especially when you're just getting started, a NetQuake engine may be ideal, for the simple reason that QuakeWorld engines often don't support single-player games.

More information[edit]

Wikipedia has a Quake engine article containing more technical info about Quake engines, and nice diagrams showing all the engines and how they're related.

Official engines[edit]

Instead of messing with these engines, most new Quake users, unless running on very old hardware (pre-1997), should probably start with one of the unofficial engines.

These three are NetQuake engines:

  • QUAKE.EXE aka DOS Quake — for DOS or Win95/98/Me only; software rendering
  • WinQuake — Win32 (Win95 through 11) version of QUAKE.EXE; software rendering
  • GLQuake — Win32 (Win95 through 11) and Linux 2.0 version of QUAKE.EXE; OpenGL rendering
  • Nightdive remaster - Win32/64, KEX Engine version of Quake, comes with enhanced models, enhanced lighting (both of these you can toggle off), and other QOL improvements.

And then there's the original QuakeWorld engine:

  • QuakeWorld — Win32 (Win95 through Vista), Linux 2.0, BSDI 3.0, Solaris 2.5.1; software or OpenGL rendering (clients for both are distributed together)

Mac OS engines[edit]

  • Quake for Mac is the official port of GLQuake 0.97 / Quake 1.09 for the classic Mac OS (not OS X). It was released on CD-ROM in 1997 by MacSoft, now owned by Atari. For multiplayer play, it supports TCP/IP or IPX via AppleTalk or Ethernet. It is commercial software, not free.
  • Quake 1.1 is an unofficial port of both the OpenGL and original software renderer versions of both Quake and QuakeWorld for Mac OS X. It is available for free from the developers, Fruitz of Dojo.

Unix engines[edit]

Quake ports exist for various Unix-like operating systems, such as those based on the GNU/Linux kernel. If you need one of these, check with your particular OS's software package or port archives; chances are, someone has already made it easy for you to install and at least run a port of the basic Quake engine, if not an OpenGL one.

There were a few official, unsupported distributions released around the same time as GLQuake in late 1997:

You probably don't want any of these old distributions; your OS's current package or port archive is the place to look for an unofficial engine that will work with a modern system. %%%

Unofficial engines[edit]

Other engine mods are made by customizing the original id Quake source code. Nearly all of them are based on GLQuake. There quite a few and each one has their different features, fixes, additions, and changes to the original source. Some require very little to do on your part to make them work with Quake. Some of them may not work with your hardware, even if your hardware is very new.

Typically all that is needed to run a modern unofficial port is downloading it and copying id1 folder from an official installation of Quake. Each port should come with a readme detailing the installation process, which may be more complicated if, for example, you want to use the original soundtrack ripped to OGG and engine supports that.

Unofficial engine list[edit]

Many engines were worked on since the original source release and development of many of them since ceased. For this reason there are typically five semi-active engines used today (most of which are FitzQuake descendants): QuakeSpasm (QS), QuakeSpasm-Spiked (QSS), FTEQW, DarkPlaces and Mark V. Feature comparison of the first four is available in the FTEQW File Formats article. Please note that more doesn't necessarily mean better as DarkPlaces is typically recognized as more buggy than alternatives.

A comprehensive overview of unofficial engines for Linux can be found in the Game Engines section of the Linux Quake HOWTO by Stevenaaus.