Quake Army Knife

Quake Army Knife (aka QuArK), is a free and open-source program for developing 3D assets for a large variety of first-person shooters, such as video games using the Quake engine by id Software or the Torque engine.

Overview
QuArK is released under the GNU General Public License and has the ability to edit maps (either directly or through an intermediate compiler process), and can import, export, manipulate and convert models, sounds, textures and various other game assets, or create any of these assets from scratch. It is also possible to move or change dynamic game objects without the need to recompile the whole map which makes the fine-tuning of details quicker. QuArK uses external compilers (like Q3Map2) to produce the actual level-file used by the game. These compilers can be fully configured using their command-line parameters, and once done, QuArK remembers these settings so they can be used every time.

The interface is based upon VCL and includes a multitude of flyover hints and other forms of in-program documentation. It also offers multiple editor layouts, including 2D wireframe and 3D textured views, where it is possible to see how the map or model will look in-game. This view can be rendered with a built-in software, Glide, OpenGL or Direct3D renderer. Views have three modes: wireframe, solid color and textured, and supports transparency and lighting in OpenGL mode.

It is possible to add plug-ins, written in Python, to extend the capabilities of the editor, or to make changes to the official Python files to alter the way QuArK's functions work. More information about this can be found in the QuArK Infobase.

QuArK itself has very low system requirements, although a lot of additional resources are taken up by the loaded game data. That amount depends on the game-mode selected and the size and complexity of the map or model being edited. QuArK supports the Win32 platform, including Windows 95, 98, ME, NT 4, 2000 and XP. It also runs on 64-bit operating systems (in 32-bit mode), Windows Vista and higher, and it can run under Unix-based platforms by using the Wine compatibility layer.

Map making process
In QuArK, multiple types of objects can be used to construct a map, of which the basic building block is a brush. A brush is defined by a set of planes, with the volume they enclose forming the brush. Brushes can be primitive shapes (such as cubes, spheres and cones), pre-defined shapes (such as staircases), or custom shapes (such as prisms and other polyhedra). These are added into an empty space, building the map block-by-block.

Brushes are converted to a format the game engine can use using a process called binary space partitioning. During this process, brushes are turned into meshes that can be rendered by the game engine. Often brushes are restricted to convex shapes only, as this reduces the complexity of the binary space partitioning process. However, using CSG operations, complex rooms and objects can be created by adding, subtracting and intersecting brushes to and from one another. Additionally, brushes can be used as liquids or as an area trigger.

To assist, more advanced features are available, including constructive solid geometry functions such as brush-subtraction.

Additionally, for engines that support it, Bézier surfaces can be used to create curved surfaces. QuArK also has a built-in leak finder in order to prevent holes in the map. Items can be added to a map simply by selecting them from a list of available entities, and their properties can be edited once they are placed in the map.

Usage and popularity
QuArK is one of the three most notable level editors for Quake, together with Radiant and Worldcraft. QuArK is one of the two most popular editors for Quake II, GtkRadiant being the other. QuArK is the most popular tool to access WAD files. QuArK is probably the second most popular tool for level editing for Half-Life, after the official Valve Hammer Editor. QuArK is also used as a mapping tool in scientific studies.

History
QuArK started out as a Delphi program called "Quakemap", written by Armin Rigo in 1996. Initially it could only edit maps for Quake, but editing capabilities for QuakeC, sounds and compiled maps were added in version 2, which was released in October 1996.

In 1997 a contest was held to rename the software and QuArK, which stands for "Quake Army Knife", was selected. It is named so in reference to the game engine series it supported, the Quake engines, and for Swiss Army knife, because it could not only edit maps, but included a model editor and texture browser as well. Version 3.0 was the first release under this name.

QuArK soon expanded to support Hexen II with version 4.0, and Quake II not much later. With the release of version 5.0 in 1998, Python support was added for plugin capabilities.

The latest stable version of QuArK was 6.3, released in January 2003. However, since then many new alpha and beta versions have been released that have many new features, and include support for many new games. A small (and incomplete) overview of the major releases since 6.3:

Ports
There were plans to make a C++ version of QuArK that reuses the existing Python files, plans to port the program to macOS and Linux, and plans to do a complete rewrite of QuArK in C++ and Python, but development on all these projects has ceased.

Utilities
QuArK comes with several stand-alone utilities:
 * QuArKSAS: The QuArK Steam Access System, or QuArKSAS, is a command-line program that allows the user to extract files from the Steam filesystem.
 * grnreader.exe: Used to convert .gr2 files into QuArK-loadable .ms files.
 * NVDXT: Nvidia's DXT converter, used to create .dds files.

Unofficial packages
There are several unofficial packages available:
 * 3D Development Pack is a custom installer to allow people to quickly and easily develop a 3D game using QuArK. It combines QuArK, Lazarus and GLScene.
 * Quark For GLScene is an install for QuArK that includes OpenBSP as the default compiler and doesn't need Quake installed.
 * The Garage Games website offered a custom installer, which will install QuArK with some additional files so it's ready to go and configured for Torque: Torque Game Engine Documentation.