# Quake Army Knife

* Free and open-source software portal
* Video games portal
Quake Army Knife (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 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 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. These are added into an empty space, building the map block-by-block, or can be used in constructive solid geometry functions such as brush-subtraction.
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). During a process called binary space partitioning, brushes are turned into meshes that can be rendered by the game engine.
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, but 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:
| Version | Last release date | Most notable changes |
| 6.4.1 Alpha | September 2003 | Support for Doom 3 and Half-Life 2. |
| 6.5.0 Alpha | July 2006 | Ability to display HL2 materials. Fixed light entity dependency for OpenGL transparency to work feature. Added Quick Object Makers, to quickly create simple geometric shapes. Support for Quake 4. |
| 6.5.0 Beta | December 2007 | OpenGL rendering available in all editor windows. Fixed the Software & Glide lock-up and smearing problems. OpenGL lighting and transparency support. Fixed a whole load of memory leaks. Added QuArKSAS. Initial support for Star Trek: Elite Force II. Ability to save .md3 models. |
| 6.6.0 Beta | May 2021 | Support for Call of Duty 2, Team Fortress 2, Heavy Metal: F.A.K.K.², Prey, Nexuiz, Warsow, Portal and American McGee's Alice. Major support improvements for Star Trek: Elite Force II. Ability to load and save .ase, .stl, .md5 models, Half-Life 1 models and Medal of Honor: Allied Assault models, and load .gr2. |

### 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.