File talk:Doom-Ports.png

From Wikimedia Commons, the free media repository
Jump to navigation Jump to search

Graphviz source code for diagram

[edit]

Here is the .gv code:

digraph Ports {

/* options graphiques */

/* declaration des noeuds */
node [label="Chocolate Doom", fontsize=10] choco;
node [label="Crispy Doom"] crispy;
node [label="Doomsday Engine"] doomsday;
node [label="Linux Doom", shape=ellipse, color=black, style="filled", fillcolor="grey", fontsize=8] linux;
node [label="JDoom"] jdoom;
node [label="DOSDoom"] dos;
node [label="WinDoom"] win;
node [label="Doom", shape=box, color=red, fillcolor=yellow, fontsize=10] doom;
node [label="Doom95"] 95;

/* clusters */
subgraph clusterboomc {
label="BOOM-compatible";
labeljust="l";
color=lightblue;
fontcolor=blue;
style="filled";
filcolor="lightblue";
node [label="Doom Legacy", shape=ellipse,  color=black, fillcolor=white, fontsize=10] legacy;
node [label="Odamex"] odamex;
node [label="Risen3D"] risen3d;
node [label="GZDoom"] gzdoom;
node [label="QZDoom"] qzdoom;
node [label="Zandronum"] zandronum;
node [label="ZDaemon"] zdaemon;
node [label="Eternity Engine"] eternity;
node [label="PrBoom+"] prboomplus;
node [label="Doom Retro"] retro;
node [label="Delphi Doom"] delphi;
node [label="3DGE"] tdge;
node [label="ZDoom", shape=ellipse, color=black, style="filled", fillcolor="grey", fontsize=8] zdoom;
node [label="EDGE"] dge;
node [label="MBF"] mbf;
node [label="SMMU"] smmu;
node [label="PrBoom"] prboom;
node [label="csDoom"] csdoom;
node [label="BOOM"] boom;
node [label="Skulltag"] skulltag;
};
node [label="Doom Classic", shape=box, color=red, fillcolor=yellow] classic;

/* relations */
skulltag -> {zandronum};
boom -> {mbf prboom};
prboom -> {prboomplus classic};
mbf -> smmu;
choco -> {crispy retro};
linux -> {choco dos jdoom zdoom delphi};
dos -> {boom legacy dge};
dge -> tdge;
{doomsday boom} -> risen3d
jdoom -> doomsday;
doom -> linux, boom, win;
win -> 95;
zdoom -> {gzdoom csdoom zdaemon skulltag};
csdoom -> {odamex zdaemon};
gzdoom -> skulltag;
gzdoom ->  qzdoom;
qzdoom ->  gzdoom;
smmu -> eternity;
}

--Soner du (talk) 10:31, 2 March 2018 (UTC)[reply]

@Soner du:  — That's all well and good, but you could have chosen SVG output from Graphviz, instead of PNG. Moreover, the .gv code you supplied doesn't generate the current image when I run it in dot. Is it for the original version that you uploaded? — Quicksilver@ 21:08, 8 March 2019 (UTC)[reply]

Corrected source code

[edit]

Lacking a response from Soner du within three months of having posted my question in the previous section, I have undertaken to provide correct source code for the diagram as uploaded on 2018-03-02. The code in the previous section shown as doom -> linux, boom, win; in line 58 is syntactically incorrect. It should be doom -> {linux boom win};.

The corrected Graphviz source code for the diagram as of 2018-03-02 is as follows:

digraph Ports {

/* graphics options */

/* node declarations */
node [ label="Chocolate Doom", fontsize=10 ] choco;
node [ label="Crispy Doom" ] crispy;
node [ label="Doomsday Engine" ] doomsday;
node [ label="Linux Doom", shape=ellipse, color=black, style="filled", fillcolor="lightgrey", fontsize=8 ] linux;
node [ label="JDoom" ] jdoom;
node [ label="DOSDoom" ] dos;
node [ label="WinDoom" ] win;
node [ label="Doom", shape=box, color=red, fillcolor=yellow, fontsize=10 ] doom;
node [ label="Doom95" ] 95;

/* clusters */
subgraph clusterboomc {
label="BOOM-compatible";
labeljust="l";
color=lightblue;
fontcolor=blue;
style="filled";
filcolor="lightblue";
node [ label="Doom Legacy", shape=ellipse,  color=black, fillcolor=white, fontsize=10 ] legacy;
node [ label="Odamex" ] odamex;
node [ label="Risen3D" ] risen3d;
node [ label="GZDoom" ] gzdoom;
node [ label="QZDoom" ] qzdoom;
node [ label="Zandronum" ] zandronum;
node [ label="ZDaemon" ] zdaemon;
node [ label="Eternity Engine" ] eternity;
node [ label="PrBoom+" ] prboomplus;
node [ label="Doom Retro" ] retro;
node [ label="Delphi Doom" ] delphi;
node [ label="3DGE" ] tdge;
node [ label="ZDoom", shape=ellipse, color=black, style="filled", fillcolor="lightgrey", fontsize=8 ] zdoom;
node [ label="EDGE" ] dge;
node [ label="MBF" ] mbf;
node [ label="SMMU" ] smmu;
node [ label="PrBoom" ] prboom;
node [ label="csDoom" ] csdoom;
node [ label="BOOM" ] boom;
node [ label="Skulltag" ] skulltag;
};
node [ label="Doom Classic", shape=box, color=red, fillcolor=yellow ] classic;

/* relations */
skulltag -> {zandronum};
boom -> {mbf prboom};
prboom -> {prboomplus classic};
mbf -> smmu;
choco -> {crispy retro};
linux -> {choco dos jdoom zdoom delphi};
dos -> {boom legacy dge};
dge -> tdge;
{doomsday boom} -> risen3d
jdoom -> doomsday;
doom -> {linux boom win};
win -> 95;
zdoom -> {gzdoom csdoom zdaemon skulltag};
csdoom -> {odamex zdaemon};
gzdoom -> skulltag;
gzdoom ->  qzdoom;
qzdoom ->  gzdoom;
smmu -> eternity;
}

The corrected code was tested at http://www.webgraphviz.com/ to verify that it produces the same graphic layout as the image posted by user Soner du on 2018-03-02. If the code is saved to a file called "doom-ports.dot", it can be used to generate a scalable vector graphic (SVG) output file with the following command-line invocation of the dot program:

dot -Tsvg -o doom-ports.svg doom-ports.dot

Minor tweaks to the SVG image can be implemented, such as opening doom-ports.svg with a text editor and changing the default font from "Times New Roman" to "Liberation Sans". The SVG file uses less than 30 kB of storage, compared to nearly 116 kB for the PNG raster version, without incurring rasterization artifacts. — Quicksilver@ 22:38, 8 July 2019 (UTC)[reply]