Quake engine#Speeding up the rendering.2C and rendering order
{{Short description|Video game engine developed by id Software}}
{{Use mdy dates|date=August 2021}}
{{multiple issues|
{{more citations needed|date=May 2016}}
{{original research|date=May 2016}}
}}
{{DISPLAYTITLE:Quake engine}}
{{Infobox software
| name = Quake engine
| logo =
| screenshot =
| caption = Quake (1996) powered by Quake engine.
| collapsible =
| developer = id Software (John Carmack, Michael Abrash, John Cash)
| replaces = Doom engine
| replaced_by = Quake II engine, GoldSrc
| latest release version = 1.09
| latest release date = {{Start date and age|1999|12|21}}
| discontinued = yes
| repo = [http://github.com/id-Software/Quake github.com/id-Software/Quake]
| programming language = C, Assembly (for software rendering & optimization)
| platform = DOS, AmigaOS, Microsoft Windows, macOS, Linux, Nintendo 64, Zeebo, Xbox One, Xbox Series X/S, PlayStation 4, PlayStation 5
| license = GNU GPL-2.0-or-later
}}
File:Nexuiz (screenshot 04).jpg, running on a modified Quake engine]]
The Quake engine (part of id Tech 2) is the game engine developed by id Software to power their 1996 video game Quake. It featured true 3D real-time rendering. Since 1999, it has been licensed under the terms of GNU General Public License v2.0 or later.
After release, the Quake engine was immediately forked. Much of the engine remained in Quake II and Quake III Arena. The Quake engine, like the Doom engine, used binary space partitioning (BSP) to optimise the world rendering. The Quake engine also used Gouraud shading for moving objects, and a static lightmap for non-moving objects.
Historically, the Quake engine has been treated as a separate engine from its successor, the Quake II engine. Although the codebases for Quake and Quake II were separate GPL releases,{{cite web |title=Quake engine GPL release |url=https://github.com/id-Software/Quake |access-date=May 24, 2020 |website=GitHub}}{{cite web |title=id Tech 2 GPL release |url=https://github.com/id-Software/Quake-2 |access-date=May 24, 2020 |website=GitHub}} both engines are now considered variants of id Tech 2.{{cite web|url=http://www.idsoftware.com/business/idtech2/|title=id Tech 2 page|publisher=id Software|archive-url=https://web.archive.org/web/20080917045739/http://www.idsoftware.com/business/idtech2/|archive-date=2008-09-17}}
History
{{Further|Quake (video game)#Development}}
The Quake engine was developed from 1995 for the video game Quake, released on June 22, 1996. John Carmack did most of the programming of the engine, with help from Michael Abrash in algorithms and assembly optimization. The Quake II engine (id Tech 2.5) was based on it.
John Romero initially conceived of Quake as an action game taking place in a fully 3D polygon world, inspired by Sega AM2's 3D fighting game Virtua Fighter. Quake was also intended to feature Virtua Fighter-influenced third-person melee combat. However, id Software considered it to be risky, and it would've taken longer to develop the engine. Because the project was taking too long, the third-person melee was eventually dropped.{{cite magazine|magazine=Next Generation|issue=30|date=June 1997|pages=9–12|title=Does John Romero Still Enjoy Shooting People?|url=https://archive.org/stream/NextGeneration30Jun1997/Next_Generation_30_Jun_1997#page/n9/mode/2up}}{{citation|title=Edge|issue=45|date=May 1997|quote=My original idea was to do something like Virtua Fighter in a 3D world, with full-contact fighting, but you'd also be able to run through a world, and do the same stuff you do in Quake, only when you got into these melees, the camera would pull out into a third-person perspective. It would've been great, but nobody else had faith in trying it. The project was taking too long, and everybody just wanted to fall back on the safe thing – the formula.}}
Derivative engines
Image:Quake - family tree.svg illustrating derivations of Quake engines |alt=]]
On December 21, 1999, John Carmack of id Software released the Quake engine source code on the Internet under the terms of GPL-2.0-or-later, allowing programmers to edit the engine and add new features. Programmers were soon releasing new versions of the engine on the net. Some of the most known engines are:
- GoldSrc – The first engine to be created by Valve. It was used in the Half-Life series, and gave rise to the Source and Source 2 engines. The Xash3D projects, as well as the FreeHL and FreeCS ports,{{Cite web |last=Larabel |first=Michael |date=2017-11-10 |title=FreeCS: Aiming For An Open-Source Counter-Strike Implementation |url=https://www.phoronix.com/news/FreeCS-Open-Counter-Strike |access-date=2024-07-14 |website=Phoronix}} use Quake source code in part to recreate this engine, even with a wrapper for running the game.{{cite web|url=https://www.gamingonlinux.com/2020/08/half-life-absolute-zero-mimics-half-lifes-original-vibe-run-it-on-linux-with-xash3d-fwg/|title=Half-Life: Absolute Zero mimics Half-Life's original vibe, run on Linux with Xash3D FWGS|author=BTRE|date=2020-08-03|access-date=2024-07-15|website=GamingOnLinux}}{{cite web|url=https://boingboing.net/2022/03/09/play-the-original-half-life-in-the-browser.html|title=Play the original Half-Life in the browser|first=Rob|last=Beschizza|date=2022-03-09|access-date=2024-07-16|website=Boing Boing}}
- DarkPlaces – A significantly modified engine used in several standalone games and Quake mods.{{cite web|url=https://www.linuxlinks.com/darkplaces/|title=DarkPlaces – Quake modification|date=2023-10-29|access-date=2024-07-16|first=Steve|last=Emms|website=LinuxLinks}}{{cite web |url=https://icculus.org/twilight/darkplaces/ |title=DarkPlaces Homepage |website=icculus.org |access-date=November 6, 2017}} Although the last stable release was on May 13, 2014, it has received numerous updates through its SVN repository since then.{{cite web|url=http://svn.icculus.org/twilight/trunk/|title=Darkplaces subversion repository|website=svn.icculus.org|access-date=August 9, 2019}} Its home page was hosted on Icculus.org until 2021, when the engine switched to a Git repository hosted on GitHub.{{Citation|title=darkplacesengine/darkplaces|date=June 14, 2021|url=https://github.com/darkplacesengine/darkplaces|publisher=DarkPlaces Engine|access-date=June 21, 2021}} The developers of Xonotic provide mirrors of DarkPlaces source code on various social coding platforms{{cite web |url=https://gitlab.com/xonotic/darkplaces |title=DarkPlaces Quake Engine on Xonotic GitLab |access-date=February 3, 2020}}{{cite web |url=https://github.com/xonotic/darkplaces |title=DarkPlaces Quake Engine on Xonotic GitHub |website=GitHub |access-date=November 6, 2017}} since the game is built on and distributed with the development version of the engine.
- QuakeForge - One of the earlier major community ports.{{Cite web |last=Stevenaaus |date=2010-03-01 |title=Game Engines |url=https://tldp.org/HOWTO/Quake-HOWTO-3.html#ss3.1 |access-date=2024-07-15 |website=Linux Quake HOWTO}}
- NPRQuake - Fork of Quake featuring non-photorealistic rendering giving it a pencil drawn look.{{cite web|url=https://boingboing.net/2018/07/30/quake-but-every-frame-rendered.html|title=Quake on me: classic shooter rendered with pencil sketch filter|first=Rob|last=Beschizza|date=2018-07-30|access-date=2024-07-15|website=Boing Boing}}{{cite web|url=https://www.slideserve.com/parley/non-photorealistic-rendering-techniques-for-a-game-engine|title=Non-Photorealistic Rendering Techniques for a Game Engine|date=2014-09-11|access-date=2024-07-15|publisher=University of North Carolina at Chapel Hill|website=SlideServe|first=Adrian|last=Ille}}
- Tenebrae - Custom Quake engine with real time lighting and bumpmapping among other features.{{cite web|url=https://www.shacknews.com/article/22796/new-tenebrae|title=New Tenebrae|first=Maarten|last=Goldstein|date=2002-09-25|access-date=2024-07-16|website=Shacknews}}{{cite web|url=https://lowendmac.com/2015/tenebraequake-enhanced-quake-front-end/|title=TenebraeQuake, an Enhanced Quake Front End|first=Simon|last=Royal|date=2015-10-10|access-date=2024-07-16|website=Low End Mac}}{{cite web|url=https://www.insidemacgames.com/historical/news/story.php%3FArticleID=8023.html|title=New Tenebrae Release for PC|date=2003-07-14|access-date=2024-07-16|first=Galen|last=Wiley|website=Inside Mac Games}}{{cite web|url=https://www.insidemacgames.com/historical/news/story.php%3FArticleID=6328.html|title=New PC Tenebrae Quake, Mac Update Soon|date=2002-10-27|access-date=2024-07-16|first=Andy|last=Largent|website=Inside Mac Games}}
- TyrQuake - A conservative focused source port.
- Fisheye Quake - Custom Quake engine with fisheye distortion by the author of PanQuake.{{cite web|url=https://www.shacknews.com/article/125425/cquake-how-to-run-classic-quake-maps-and-mods-on-modern-pcs?page=6|title=Part 5: Source Ports and Fisheye Quake|first=Patrick|last=Bosworth|date=2021-07-02|access-date=2024-07-16|website=Shacknews}}
- Blinky - Fork of the fisheye view along with the TyrQuake software renderer.{{cite web|url=https://www.pcgamer.com/peripheral-vision-in-games-gets-ultrawide-boost-with-new-quake-mod/|title=Peripheral vision in games goes ultrawide with new Quake mod|first=Andy|last=Chalk|date=2015-10-10|access-date=2024-07-16|website=PC Gamer}}{{cite web|url=https://www.sportskeeda.com/esports/peripheral-vision-in-game-goes-ultrawide-thanks-to-the-new-quake-mod|title=Peripheral Vision in game goes Ultrawide thanks to the new Quake Mod|first=Aditya|last=Chakrabarty|date=2015-03-12|access-date=2024-07-16|website=sportskeeda}}
- WinQuake
- Engoo (Derivative of WinQuake) - Graphically enhanced software renderer based port.{{Cite web |last=Baxter |first=Joel |date=2015-05-03 |title=Quake Engines, Old and New |url=https://neogeographica.com/site/pages/guides/engines.html#04 |access-date=2024-07-16 |website=Neogeographica}}
- Fruitz of Dojo - Source port aimed at Mac OS X.{{cite web|url=https://www.macobserver.com/tmo/article/Quake_Gets_Universal_Binary|title=Quake Gets Universal Binary|first=Brad|last=Cook|date=2006-03-19|access-date=2024-07-15|website=The Mac Observer}}{{cite web|url=https://www.mymac.com/2003/08/classic-games-quake/|title=Classic Games: Quake|date=2003-08-01|access-date=2024-07-15|first=Neale|last=Monks|website=MyMac.com}}{{cite web|url=http://quake.chaoticbox.com/|title=Frank's Craptacular House of Mac Quake Stuffs|date=2019-07-01|access-date=2024-07-15|website=pOx's Playhouse}}
- NehQuake - Custom engine for the Nehara mod.{{cite web|url=https://tldp.org/HOWTO/Quake-HOWTO-4.html|title=Mods|website=Linux Quake HOWTO|author=Stevenaaus|date=2010-03-01|access-date=2024-07-15}}
- GLQuake
- FitzQuake (Derivative of GLQuake) - Seminal port whose SDL version was later forked into numerous others.{{cite web|url=https://slayersclub.bethesda.net/en-US/article/nods-to-mods-interview-rubicon-2-for-quake|title=Nods to Mods Interview: Rubicon 2 for Quake|date=2022-08-18|access-date=2024-07-15|first=Joshua|last=Boyle|website=Slayer's Club}}
- MarkV (Derivative of FitzQuake, successor to DirectQ) - Came in both GLQuake and WinQuake derived versions.{{cite web|url=https://www.dsogaming.com/news/quake-xmas-jam-2018-adds-21-new-maps-to-id-softwares-classic-shooter-available-for-download/|title=Quake Xmas Jam 2018 adds 21 new maps to id Software's classic shooter, available for download|date=2018-12-11|access-date=2024-07-15|first=John|last=Papadopoulos|website=DOSGaming}}
- Quakespasm (Derivative of FitzQuake) – Commonly used source port.{{cite web|url=https://www.rockpapershotgun.com/quake-renaissance-a-short-history-of-25-years-of-quake-modding|title=Quake Renaissance: a short history of 25 years of Quake modding|first=Robert|last=Yang|date=2021-08-23|access-date=2024-07-14|website=Rock Paper Shotgun}}
- Quakespasm-Spiked (Derivative of Quakespasm) - Limit-removing fork. {{cite web|url=https://www.gamingonlinux.com/2022/04/block-quake-is-basically-quake-made-into-lego/|title=Block Quake is basically Quake made into LEGO|first=Liam|last=Dawe|date=2022-04-27|access-date=2024-07-14|website=GamingOnLinux}}
- vkQuake – (Derivative of Quakespasm) – Uses Vulkan API for rendering programmed by id Software employee Axel Gneiting, released under the GPLv2.{{cite web | url = https://twitter.com/axelgneiting/status/755988244408381443 | title = My Vulkan Quake 1 Port running "In the Shadows" mod. Some stuff still missing. Code is here
https://github.com/Novum/vkQuake | last = Gneiting | first = Axel | date = July 20, 2016 | website = Twitter |access-date=August 6, 2016}}{{cite web |url=https://github.com/Novum/vkQuake |title=Vulkan Quake port based on QuakeSpasm |website=github.com/Novum/vkQuake|access-date=August 6, 2016}} - Ironwail - (Derivative of Quakespasm) – An engine aiming at maximum performance.{{cite web|url=https://www.insideqc.com/ironwail-a-high-performance-quakespasm-fork/|title=Ironwail, a high-performance QuakeSpasm fork|date=2022-01-30|access-date=2024-07-14|author=Spirit|website=InsideQC}}
- FTEQW (Derivative of QuakeWorld) - A modern client for online multiplayer.{{cite web|url=https://www.pcgamer.com/this-mod-turns-quake-into-a-top-down-shooter/|title=This mod turns Quake into a top-down shooter|first=Andy|last=Chalk|date=2021-02-17|access-date=2024-07-16|website=PC Gamer}}
- FuhQuake
- ezQuake (Derivative of FuhQuake) - Multiplayer focused port often paired with the nQuake launcher.{{cite web|url=https://www.pcgamer.com/were-running-a-quake-server-all-weekcome-play-with-us/|title=We're running a Quake server all week—come play with us!|first=Alex|last=Campbell|date=2016-05-20|access-date=2024-07-16|website=PC Gamer}}{{cite web|url=https://www.pcgamer.com/were-running-a-quake-multiplayer-server-all-week-for-the-25th-anniversary/|title=We're running a Quake multiplayer server all week for the 25th anniversary|first=Wes|last=Fenlon|date=2021-05-22|access-date=2024-07-16|website=PC Gamer}}
- JoeQuake (Derivative of FuhQuake) - A port popular with speedrunners.{{cite web|url=https://www.slipseer.com/index.php?threads/quake-engines-source-ports-a-beginners-guide.11/|title=Quake Engines & Source Ports: A Beginners Guide|author=Fairweather|date=2022-02-19|access-date=2024-07-15|website=Slipgate Sightseer}}
Games using the ''Quake'' engine
=Games using a proprietary license=
class="wikitable sortable" |
Year
! Title ! Developer(s) ! Publisher(s) |
---|
1996
| Quake |
rowspan="6" | 1997 |
Quake Mission Pack No. 2: Dissolution of Eternity |
Hexen II |
Malice
| Ratloop | Quantum Axcess |
Shrak
| Quantum Axcess | Quantum Axcess |
X-Men: The Ravages of Apocalypse
| Zero Gravity Entertainment |
rowspan="2" | 1998 |
Abyss of Pandemonium - The Final Mission
| Impel Development Team | Perfect Publishing |
2000
| ValuSoft |
rowspan="2" | 2001
| CIA Operative: Solo Missions | ValuSoft |
Urban Mercenary
| Moshpit Entertainment | Moshpit Entertainment |
=Games based on the GPL source release=
See also
{{Portal|Free and open-source software|Video games}}
References
{{reflist}}
External links
- [http://www.bluesnews.com/abrash/chap68.shtml Quake's Lighting Model]: Surface caching by Michael Abrash
- [http://fabiensanglard.net/quakeSource/index.php Quake engine code analysis] by Fabien Sanglard
- [https://github.com/id-Software/Quake Source code for winquake, glquake, quakeworld, and glquakeworld]
{{Id Software}}
{{Quake series}}
{{Video game engines}}
{{DEFAULTSORT:Quake Engine}}