File:Quake - Family Tree 2.Svg from Wikipedia, the Free Encyclopedia
Total Page:16
File Type:pdf, Size:1020Kb
File:Quake - family tree 2.svg From Wikipedia, the free encyclopedia Size of this PNG preview of this SVG file: 583 × 599 pixels. Original file (SVG file, nominally 3,596 × 3,696 pixels, file size: 72 KB) Open in Media Viewer This is a file from the Wikimedia Commons. Information from its description page there is shown below. Commons is a freely licensed media file repository. You can help. Summary Description English: Relation tree (tree version 12) of the id Tech family of video game engines by Id Software: id Tech 1 debut in Quake in June 1996 Id Tech 2 debut in Quake II in December 1997 id Tech 3 debut in Quake III Arena December 1999 id Tech 4 debut in Doom 3 in August 2004. Note: id Tech 5 debut in Rage in October 2011 and id Tech 6 (TBA) are not available under the GNU General Public License (GPL). Note: Quake Wars: Ray Traced and Wolfenstein: Ray Traced are a different engines. Legend ██ free/libre ██ freeware ██ commercial ▌▌ available with commercial license, or free/libre license ellispe shape for games hexagon shape for engines Français : Arbre généalogique de Quake. Montre l'ensemble des jeux et des moteurs basés sur id Tech 1 (version simplifiée). Date Source Autogeneration from the dot file we see below. Some information come from Wikipedia articles, and the helpfull base Image:Quake - family tree.svg. Author Author list (http://commons.wikimedia.org/w/index.php?title=Image:Quake_-_family_tree_2.svg&action=history) Other versions engine.dot The image is autogenerated with the below description using the command fdp from the Graphviz (http://www.graphviz.org/) package. Feel free to patch this code, or to talk about it in his talk page. // fdp -oengine.svg -Tsvg engine.dot // twopi -oengine.svg -Tsvg engine.dot digraph { ranksep=3; ratio=auto; //overlap=scalexy; //overlap=prism; /* URLs Q1 http://speeddemosarchive.com/forum/index.php?action=printpage;topic=1711.0 http://www.quaddicted.com/engines/engine_comparison.html http://en.allexperts.com/e/q/qu/quake_engine.htm Q2 http://www.quakedev.com/forums/index.php?topic=534.0 */ // // Engines // node [shape=polygon, sides=6, style=filled] // id Tech engines node [peripheries=4, size=6] // id Tech engines under GPL node [fillcolor=lightgreen] idTech2-0 [label="id Tech 2-0\nQuake engine"] GLQuake WinQuake QuakeWorld idTech2 [label="id Tech 2\nQuake II engine"] idTech3 [label="id Tech 3\nQuake III engine"] idTech4 [label="id Tech 4\nDoom 3 engine"] // id Tech under commercial license node [fillcolor=lightgrey] idTech5 [label="id Tech 5"] idTech6 [label="id Tech 6"] // Other engines // node [peripheries=1] // Other commercial engines node [fillcolor=lightgrey] GoldSrc QW262 // which licence? SourceEngine [label="Source Engine"] // Other libre/open engines node [fillcolor=lightgreen] AMFQuake AnvilofThyrion [label="Anvil of Thyrion"] //http://aot.linuxgames.com/about.php AprQ2 aq2 [label="Action Quake 2"] aq2ltktbm // http://www.theborgmatrix.com/ltk/index2.php/Credits/25 aq2tng [label="Action Quake 2:\nThe Next Generation"] aRQlite [label="aRQ-Lite"] aRQlite2 [label="aRQ-Lite2"] BeefQuake CheapHack DarkPlaces EGL // http://egl.quakedev.com evolutionQ3 // http://evolution.quakedev.com ezQuake Fiendhunter [label="Fiend hunter"] FisheyeQuake [label="Fisheye Quake"] Fitzquake FTE [label="FTEQuakeWorld"] FuhQuake GQ HammerofTyrion [label="Hammer of Thyrion\nuhexen2"] // http://uhexen2.sourceforge.net/ HeffoQuake // licence ? HexenIIengine [label="Hexen II Engine"] Hexen2Pop [label="Hexen II: Portal of Praevus"] HexenWorld ioquake3 ioUrbanTerror jsHexen2 JoeQuake liteGL // http://www.echon.org/index.php?section=litegl&page=about MVDSV [label="MVDSV (MultiView Demo Server)"] MHQuake MoreQuakeWorld [label="MoreQuakeWorld (MQWCL)"] Nehahra Netchild // licence ? NewHexen NPRQuake OmiQuake Pa3PyXsHexen2 [label="Pa3PyX's Hexen 2"] Paintball2 pQER [label="Phoenix Quake\nEngine Ressources"] ProQuake q2advance Q2K4 // http://fragmachine.quakedev.com/ quake2maX Quake2000 Quake2Evolved [label="Quake II Evolved"] // http://www.teamblurgames.com/q2e/about.htm Qfusion QMB // http://qmb.gluonporridge.net/ QuakeForge // http://www.quakeforge.net/about.php QWExtended [label="QW Extended"] QIP R1Q2 SmokinGuns [label="Smokin' Guns"] splitmod Telejano Tenebrae tQER [label="Topaz Quake\nEngine Ressources"] Tremor // http://tremor.quakedev.com/ Trident ToChris TomazQuake TransFusion Twilight TyrQuake // http://disenchant.net/engine.html Vengeancer2 [label="Vengeance r2"] // http://entar.quakedev.com/ XreaL // http://xreal.sourceforge.net/xrealwiki ZQuake // // Games // node [shape=ellipse, color=transparent] // Commercial Games node [fillcolor=lightgrey] Doom3 [label="Doom 3"] Doom4 [label="Doom 4"] HalfLife [label="Half-Life"] Heretic2 [label="Heretic 2"] HexenII [label="Hexen II"] Quake QuakeII [label="Quake II"] QuakeIIIArena [label="Quake III Arena"] Quake4 [label="Quake 4"] Rage WolfensteinTNO [label="Wolfenstein: The New Order"] TheEvilWithin [label="The Evil Within"] // GoldSrc & Source Halflife2 [label="Half-Life ²"] Portal Teamfortress2 [label="Team Fortress 2"] Counter-Strike // Freeware games node [fillcolor=lightblue] QuakeLive [label="Quake Live"] UrbanTerror [label="Urban Terror"] Warsow // Libre/open games node [fillcolor=lightgreen] Nexuiz OpenArena SilverWings [label="Silver Wings"] // // Tree // // Quake engine idTech2-0 -> GLQuake -> idTech2 idTech2-0 -> {MHQuake; OmiQuake; Quake; QuakeWorld; QuakeForge;} QuakeWorld -> idTech2 QuakeWorld -> {GoldSrc; MoreQuakeWorld; QWExtended; QuakeForge; TyrQuake; Twilight; ZQuake;} QWExtended -> MVDSV idTech2-0 -> WinQuake -> {HexenIIengine; QIP; ToChris;} // FTE -- url: http://www.fteqw.com/index.php?d=about (bottom) QuakeWorld -> FTE // minor : idTech2 -> FTE & idTech3 -> FTE & idTech2-0 -> FTE // QW262 -- url: http://2wp.vei.ru/qw262/index-en.html QWExtended -> QW262 FuhQuake -> QW262 MQWCL -> QW262 // ZQuake -- url: http://zquake.frag.ru/eng/features/ ZQuake -> {FTE; FuhQuake; JoeQuake; QW262;} // JoeQuake -- url: http://joequake.runecentral.com/about.html FuhQuake -> {AMFQuake; DemonQuake; ezQuake; JoeQuake;} //NQ -> JoeQuake ? JoeQuake -> Tremor // GLQuake engine GLQuake -> {DarkPlaces; Fiendhunter; FisheyeQuake; Fitzquake; GQ; HeffoQuake; NPRQuake; pQER; ProQuake; Q2K4; Quake2000; Tenebrae; TomazQuake; tQER;} GLQuake -> QuakeWorld DarkPlaces -> {Nehahra; Nexuiz; TransFusion;} MHQuake -> Fiendhunter Telejano -> SilverWings TomazQuake -> {aRQlite; CheapHack; Netchild; QMB; Telejano;} QMB -> Vengeancer2 // Hexen 2 HexenIIengine -> {AnvilofThyrion; HexenII; Hexen2Pop; HexenWorld;} AnvilofThyrion -> HammerofTyrion Hexen2Pop -> {NewHexen; jsHexen2; Pa3PyXsHexen2;} HexenWorld -> jsHexen2 QuakeWorld -> HexenWorld // GoldSrc & Source GoldSrc -> {HalfLife; SourceEngine;} SourceEngine -> {Halflife2; Portal; Teamfortress2;} // Quake II engine // idTech2 -> {AprQ2; GoldSrc; Heretic2; idTech3; QuakeII;} idTech2 -> Qfusion -> {splitmod; Warsow} idTech2 -> {R1Q2; BeefQuake; EGL; Quake2Evolved; quake2maX; aq2;} idTech2 -> liteGL -> q2advance aq2 -> {aq2tng; aq2ltktbm;} EGL -> aRQlite2 BeefQuake -> Paintball2 // id Tech 3 // idTech3 -> idTech4 idTech3 -> {ioquake3; Trident;} idTech3 -> {QuakeIIIArena; QuakeLive;} idTech3 -> XreaL -> evolutionQ3 // ioquake3 ioquake3 -> {SmokinGuns; Tremulous; OpenArena;} ioquake3 -> ioUrbanTerror -> UrbanTerror ioquake3 -> evolutionQ3 // id Tech 4 // idTech4 -> idTech5 idTech4 -> {Doom3; Quake4;} // id Tech 5 // idTech5 -> {Rage; The Evil Within; WolfensteinTNO} idTech5 -> idTech6 // id Tech 6 // idTech6 -> {Doom4} } hach.xsl Dot dont support hached fill. This XML transformation patch the output SVG. It hach (green/grey) games or engines under double licenses. The code add hached description into the SVG and look svg:label element to know which svg:polygon it need to patch. <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" version="1.0"> <xsl:template match="svg:svg"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <xsl:apply-templates select="@*" /> <defs> <linearGradient id="hachedgraygreen"> <stop style="stop-color:#85dc85;stop-opacity:1;" offset="0" /> <stop style="stop-color:#85dc85;stop-opacity:1;" offset="0.5" /> <stop style="stop-color:#cfcfcf;stop-opacity:1;" offset="0.5" /> <stop style="stop-color:#cfcfcf;stop-opacity:1;" offset="1" /> </linearGradient> <linearGradient id="licensedandfree" xlink:href="#hachedgraygreen" x1="85.714287" y1="273.79077" x2="102.85716" y2="290.93362" gradientUnits="userSpaceOnUse" gradientTransform="translate(-82.857144,-105.71429)" spreadMethod="repeat" /> </defs> <xsl:apply-templates /> </svg> </xsl:template> <xsl:template match="svg:polygon[1]" priority="1"> <xsl:choose> <xsl:when test="../svg:title[1]/text() = 'idTech2'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:when test="../svg:title[1]/text() = '-0'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:when test="../svg:title[1]/text() = 'idTech3'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:when test="../svg:title[1]/text() = 'WinQuake'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:when test="../svg:title[1]/text() = 'QuakeWorld'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:when test="../svg:title[1]/text() = 'GLQuake'"><xsl:call-template name="hach-polygon"/></xsl:when> <xsl:otherwise> <xsl:call-template name="clone"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template name="hach-polygon">