Difference between revisions of "1223: Dwarf Fortress"

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
(Explanation)
(Explanation: Because it's all very arguable (e.g. [http://www.bay12forums.com/smf/index.php?topic=138478.0]), using a less arguable term...)
 
(33 intermediate revisions by 25 users not shown)
Line 8: Line 8:
  
 
==Explanation==
 
==Explanation==
{{incomplete|External links have to be shown clearly, a PDF source has to be shown.}}
+
This comic is a reaction to the recent reveal of a U.S. electronic telecom surveillance program called {{w|PRISM (surveillance program)|PRISM}}, run by the {{w|NSA}}. There is [http://www.guardian.co.uk/world/2013/jun/06/us-tech-giants-nsa-data a Guardian article] about it. PRISM, leaked by a former NSA official, incited some controversy since it provides government access to private data (e-mails, videos, chats, file transfers, etc.). <!-- please expand/correct this  ~Alpha -->
This comic is a reaction to the recent reveal of a U.S. electronic telecom surveillance program called {{w|PRISM (surveillance program)|PRISM}}, run by the NSA. You can read a [http://www.guardian.co.uk/world/2013/jun/06/us-tech-giants-nsa-data Guardian article] about it. PRISM, leaked by a former NSA official, incited some controversy since it provides government access to private data (e-mails, videos, chats, file transfers, etc.). <!-- please expand/correct this  ~Alpha -->
 
  
''{{w|Dwarf Fortress}}'' is a freeware strategy game in which the player builds a civilization by giving orders to — as opposed to directly controlling — a group of dwarves. It is famous for having a very detailed simulation of its world and for allowing deep micro-management (as well as an incredibly steep learning curve).
+
''{{w|Dwarf Fortress}}'' is a freeware strategy game in which the player builds a civilization by giving orders to — as opposed to directly controlling — a group of dwarves. It is famous for having a very detailed simulation of its world and for allowing deep micro-management (as well as an incredibly difficult learning curve).
  
"Big Brother" means "a tyrannical government body that constantly monitors all its citizens." The term comes from the classic dystopian novel ''{{w|Nineteen Eighty-Four}}'' by George Orwell.
+
"Big Brother" means "a tyrannical government body that constantly monitors all its citizens." The term comes from the classic dystopian novel ''{{w|Nineteen Eighty-Four}}'' by George Orwell, wherein propaganda videos are narrated by an actor with the stage name of Big Brother and the dystopia's surveillance system is said to be monitored by Big Brother himself.
  
[[Cueball]] has a discussion with Big Brother ("corporate surveillance state"), in which he mocks Big Brother's interest in the inconsequential activity of playing a video game ("Dwarf Fortress" in particular) by drawing a parallel between Big Brother's omniscient surveillance of Cueball and Cueball's omniscient surveillance of the dwarfs. Big Brother appears to be mortified when it realizes the accuracy of Cueball's comparison.
+
[[Cueball]] has a discussion with Big Brother ("corporate surveillance state"), in which he mocks Big Brother's interest in the inconsequential activity of playing a video game (''Dwarf Fortress'' in particular) by drawing a parallel between Big Brother's omniscient surveillance of Cueball and Cueball's omniscient surveillance of the dwarves. Big Brother appears to be mortified when it realizes the accuracy of Cueball's comparison.
  
 
Informally, a system exhibits ''Turing-completeness'' when it is theoretically capable of executing any algorithm. One of the simplest Turing-complete systems is the {{w|Turing machine}}, a device that manipulates symbols on a strip of tape according to a table of rules — it {{w|Church-Turing thesis|can be proven}} to have the same capabilities as any ordinary programming language. Other very simple systems include {{w|Rule 110}}, {{w|lambda calculus}}, {{w|Conway's game of life}}, and {{w|Brainfuck}}. The reason we don't work with these is because they're a real pain in the ass. Would you rather build a network of spaceships that collide with each other to simulate the successor function, or just write <tt>i := i + 1</tt>?
 
Informally, a system exhibits ''Turing-completeness'' when it is theoretically capable of executing any algorithm. One of the simplest Turing-complete systems is the {{w|Turing machine}}, a device that manipulates symbols on a strip of tape according to a table of rules — it {{w|Church-Turing thesis|can be proven}} to have the same capabilities as any ordinary programming language. Other very simple systems include {{w|Rule 110}}, {{w|lambda calculus}}, {{w|Conway's game of life}}, and {{w|Brainfuck}}. The reason we don't work with these is because they're a real pain in the ass. Would you rather build a network of spaceships that collide with each other to simulate the successor function, or just write <tt>i := i + 1</tt>?
  
A common CS nerd challenge is to prove the Turing-completeness of a system that wasn't intended to be that way &mdash; games in particular. The usual way to do this is to construct a Turing machine simulator within the system. It has been done for Dwarf Fortress [http://mkv25.net/dfma/map-8269], (infinite) Minesweeper [http://web.mat.bham.ac.uk/R.W.Kaye/minesw/infmsw.pdf], Magic the Gathering [http://www.toothycat.net/~hologram/Turing/HowItWorks.html], Little Big Planet [http://www.youtube.com/watch?v=13GOFa1C4e4], Minecraft [http://www.youtube.com/watch?v=1X21HQphy6I] [http://www.youtube.com/watch?v=7sNge0Ywz-M], Pokémon Yellow (through the elaborate use of many in-game glitches) [http://aurellem.org/vba-clojure/html/total-control.html] and 3D chess [http://cp4space.wordpress.com/2013/04/05/3d-chess-is-turing-complete/] (but see the note below). These kinds of proofs often involve formulating ridiculously complex creations just to simulate a little machine writing symbols on a tape!
+
A common CS nerd challenge is to prove the Turing-completeness of a system that wasn't intended to be that way &mdash; games in particular. The usual way to do this is to construct a Turing machine simulator within the system. It has been done for [http://mkv25.net/dfma/map-8269 Dwarf Fortress], [http://web.mat.bham.ac.uk/R.W.Kaye/minesw/infmsw.pdf (infinite) Minesweeper] (pdf), [http://www.toothycat.net/~hologram/Turing/HowItWorks.html Magic the Gathering], [http://www.youtube.com/watch?v=13GOFa1C4e4 Little Big Planet], [http://www.youtube.com/watch?v=1X21HQphy6I Minecraft] ([http://www.youtube.com/watch?v=7sNge0Ywz-M another Minecraft example])<sup>1</sup>, [http://aurellem.org/vba-clojure/html/total-control.html Pokémon Yellow] (through the elaborate use of many in-game glitches) and [http://cp4space.wordpress.com/2013/04/05/3d-chess-is-turing-complete/ 3D chess]. These kinds of proofs often involve formulating ridiculously complex creations just to simulate a little machine writing symbols on a tape!<sup>2</sup>
  
<small>(Technically, a computer is not really Turing-complete. A Turing-complete system has to have unlimited space, and that's not possible for a memory-limited computer or any software running inside it. But even if we don't have access to Turing-completeness, we can build a theoretical machine and show how it can be extended indefinitely. In a few of the games, we prove Turing-completeness in infinite variants.)</small>
+
Finally, Randall makes a crack that users will try to nest their Turing-complete computers; after finishing his Turing-complete Dwarf Fortress computer, someone else will try to make the Dwarf Fortress computer run Minecraft (a highly inefficient process that would be a nightmare to coordinate, and would run incredibly slowly).
  
Finally, Randall makes a crack that users will try to nest their Turing-complete computers; after finishing his Turing-complete Dwarf Fortress computer, someone else will try to make the Dwarf Fortress computer run Minecraft (a highly inefficient process that would be a nightmare to co-ordinate, and would run incredibly slowly).
+
<small>
 +
<sup>1</sup> The youtuber legomasta99 even built a whole programmable PC in Minecraft as can be seen [https://www.youtube.com/watch?v=SbO0tqH8f5I here].
 +
 
 +
<sup>2</sup>Technically, a computer is not really Turing-complete. A Turing-complete system has to have unlimited space, and that's not possible for a memory-limited computer or any software running inside it. But even if we don't have access to Turing-completeness, we can build a theoretical machine and show how it can be extended indefinitely. In a few of the games, we prove Turing-completeness in infinite variants.
 +
</small>
  
 
==Transcript==
 
==Transcript==
Line 33: Line 36:
 
:Cueball: Then you're effectively Dwarf Fortress players watching your dwarves play Dwarf Fortress.
 
:Cueball: Then you're effectively Dwarf Fortress players watching your dwarves play Dwarf Fortress.
 
:Big Brother: ... Oh God.
 
:Big Brother: ... Oh God.
:Big Brother realises he's trapped in the most tedious possible Hell.
+
:[Caption below the panel:]
 +
:Big Brother realizes he's trapped in the most tedious possible Hell.
  
 
{{comic discussion}}
 
{{comic discussion}}
[[Category:Computers]]
+
[[Category:Programming]]
 
[[Category:Comics featuring Cueball]]
 
[[Category:Comics featuring Cueball]]
 
[[Category:Video games]]
 
[[Category:Video games]]
 
[[Category:Politics]]
 
[[Category:Politics]]
 
[[Category:Comics with color]]
 
[[Category:Comics with color]]
 +
[[Category:Fiction]]
 +
[[Category:Minecraft]]

Latest revision as of 17:46, 3 May 2024

Dwarf Fortress
I may be the kind of person who wastes a year implementing a Turing-complete computer in Dwarf Fortress, but that makes you the kind of person who wastes ten more getting that computer to run Minecraft.
Title text: I may be the kind of person who wastes a year implementing a Turing-complete computer in Dwarf Fortress, but that makes you the kind of person who wastes ten more getting that computer to run Minecraft.

Explanation[edit]

This comic is a reaction to the recent reveal of a U.S. electronic telecom surveillance program called PRISM, run by the NSA. There is a Guardian article about it. PRISM, leaked by a former NSA official, incited some controversy since it provides government access to private data (e-mails, videos, chats, file transfers, etc.).

Dwarf Fortress is a freeware strategy game in which the player builds a civilization by giving orders to — as opposed to directly controlling — a group of dwarves. It is famous for having a very detailed simulation of its world and for allowing deep micro-management (as well as an incredibly difficult learning curve).

"Big Brother" means "a tyrannical government body that constantly monitors all its citizens." The term comes from the classic dystopian novel Nineteen Eighty-Four by George Orwell, wherein propaganda videos are narrated by an actor with the stage name of Big Brother and the dystopia's surveillance system is said to be monitored by Big Brother himself.

Cueball has a discussion with Big Brother ("corporate surveillance state"), in which he mocks Big Brother's interest in the inconsequential activity of playing a video game (Dwarf Fortress in particular) by drawing a parallel between Big Brother's omniscient surveillance of Cueball and Cueball's omniscient surveillance of the dwarves. Big Brother appears to be mortified when it realizes the accuracy of Cueball's comparison.

Informally, a system exhibits Turing-completeness when it is theoretically capable of executing any algorithm. One of the simplest Turing-complete systems is the Turing machine, a device that manipulates symbols on a strip of tape according to a table of rules — it can be proven to have the same capabilities as any ordinary programming language. Other very simple systems include Rule 110, lambda calculus, Conway's game of life, and Brainfuck. The reason we don't work with these is because they're a real pain in the ass. Would you rather build a network of spaceships that collide with each other to simulate the successor function, or just write i := i + 1?

A common CS nerd challenge is to prove the Turing-completeness of a system that wasn't intended to be that way — games in particular. The usual way to do this is to construct a Turing machine simulator within the system. It has been done for Dwarf Fortress, (infinite) Minesweeper (pdf), Magic the Gathering, Little Big Planet, Minecraft (another Minecraft example)1, Pokémon Yellow (through the elaborate use of many in-game glitches) and 3D chess. These kinds of proofs often involve formulating ridiculously complex creations just to simulate a little machine writing symbols on a tape!2

Finally, Randall makes a crack that users will try to nest their Turing-complete computers; after finishing his Turing-complete Dwarf Fortress computer, someone else will try to make the Dwarf Fortress computer run Minecraft (a highly inefficient process that would be a nightmare to coordinate, and would run incredibly slowly).

1 The youtuber legomasta99 even built a whole programmable PC in Minecraft as can be seen here.

2Technically, a computer is not really Turing-complete. A Turing-complete system has to have unlimited space, and that's not possible for a memory-limited computer or any software running inside it. But even if we don't have access to Turing-completeness, we can build a theoretical machine and show how it can be extended indefinitely. In a few of the games, we prove Turing-completeness in infinite variants.

Transcript[edit]

[Cueball sits at a desk with a computer, hands on the keyboard, talking to an unseen observer.]
Cueball: If the corporate surveillance state monitors and controls every aspect of my life...
Big Brother: We do.
Cueball: And I play Dwarf Fortress all day...
Big Brother: You do.
Cueball: Then you're effectively Dwarf Fortress players watching your dwarves play Dwarf Fortress.
Big Brother: ... Oh God.
[Caption below the panel:]
Big Brother realizes he's trapped in the most tedious possible Hell.


comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

Turing-complete computers were built in Dwarf Fortress [1] and Minecraft [2] Sebastian --178.26.118.249 05:48, 10 June 2013 (UTC)

"getting that computer to run Minecraft" means getting the Dwarf Fortress turing machine to run minecraft. Which would probably be impossible, because the computer Dwarf Fortress is running on will not be able to run the turing machine fast enough or with enough memory. -- Hkmaly (talk) 09:12, 10 June 2013 (UTC)
Speed may be considered irrelevent (as exemplared by A Bunch of Rocks). Memory upper-limits applies to every real-world example (possibly including the Universe itself, thus anything that is not self-contained but capable of sharing data with the external Universe, in order to overcome this limitation). However, usually we can fudge this if this expected usage will get nowhere near the effective memory capacity.
The real problem in Dwarf Fortress is that there is a hard-coded maximum fortress size. It cannot be extended infinitely like the minesweeper example or Magic the Gathering, which is inherantly infinite assuming you keep supplying the legally generated creature tokens. 96.238.211.171 04:40, 12 June 2013 (UTC)
However, apart from the speed of running (and the fact that the quantifiable 'Fort-contained' memory theoretically available may not be sufficient to hold the state of any reasonably Minecraft-like playing environment), I'm wondering about the interface. Playing Minecraft-within-Fortress would require some interesting setting up. Having myself made a Tetris-within-Fortress (sort of, never got around to rotating tetronimos, although translation of the falling pieces and line-anihilationsof those that had settled all worked as planned), I suppose you could start with a matrix display made of remotely controlled bridges (from water-activated pressure-plates), a bit like I used to 'externally' represent the data held within the "block matrix" pump'n'pool 'processor' for my Tetris example.
Something that somewhat evaded me (or, rather, forced me to slow the game progression down well below its normal pace) was a control mechanism. Clicking and setting levers to be pulled, or locking and unlocking doors to allow creature-activated pressure-plates to be run over, depends on knowing that all dwarves (or animals, or hostiles being sent scurrying in circles in a dungeon loop as each tempting exit is automatically closed off and the next one round the track temporarily opened) continue to respond to your requests. It did very much seem like the Bunch Of Rocks situation, indeed. ;) 178.98.124.195 13:07, 10 June 2013 (UTC)
I thought the point of the mouse-over text was that running Minecraft on a turing-complete computer in Dwarf Fortress would be utterly pointless, impractical, and a waste of time, and that's IF it's even theoretically possible. The point of this comparison in my mind is a comment on just how pointless and impractical the task of complete population surveillance is. I mean, surely there's an easier way to get what you want? Excrubulent (talk) 01:24, 12 June 2013 (UTC)

Shouldn't it be "I do" and "Then you're effectively a Dwarf Fortress player watching your dwarves play Dwarf Fortress" because "Big Brother" is singular? DiEvAl (talk) 09:22, 10 June 2013 (UTC)

Not necessarily, because "Big Brother" is the nickname for the nebulous amoral mass of people who make up the surveillance arm of the government. Yes, in Orwell's book, this was actually represented by a singular man to the public (who, possible spoilers, may or may not still be alive). But the nickname could refer to a lot of people as a whole. See also the "corporate we", where people in a corporation refer to the company and ambiguous nonspecific people in the company as "we". Not related to the "royal we". --Tustin2121 (talk) 14:04, 10 June 2013 (UTC)
Meta spoiler alert- Big Brother may never have existed at all. Or his nemesis Goldstein.Seebert (talk) 22:34, 16 June 2014 (UTC)
You sure it's not related? Isn't "royal we" referring to the country and ambiguous nonspecific people in the country in very similar way? -- Hkmaly (talk) 11:21, 27 December 2013 (UTC)

Then you're effectively Dwarf Fortress players watching your dwarves make comics about Dwarf Fortress players watching their dwarves play Dwarf Fotrress. DiEvAl (talk) 09:26, 10 June 2013 (UTC)

Question: Who is the 'you' in "that makes you the kind of person who wastes ten more getting that computer to run Minecraft"? The reader of the comic? Big Brother? I'm very confused how it is that if "A" is the kind of person who implements a Turing-complete computer in Dwarf Fortress, that it follows that "B" is the kind of person who wastes ten years getting it to run Minecraft. 69.21.142.178 15:23, 11 June 2013 (UTC)

I think the 'you' is Big Brother. Like I said above, the task of surveilling a population is so daunting that it's like doing the DF-computer-MC thing. It's never going to be practical. Excrubulent (talk) 01:27, 12 June 2013 (UTC)

You missed spacechem off that list of Turing complete games. 141.101.98.229 (talk) (please sign your comments with ~~~~)

From the referenced site, Pokemon yellow isn't turing complete as a game (unlike, say, DF / MC) - rather it has bugs which make it vulnerable to buffer overrun exploits allowing the attacker to write arbitrary GameBoy code. So while a great hack, that site tells us that the GameBoy CPU's machine code is Turing Complete, not Pokemon Yellow itself. 141.101.98.241 (talk) (please sign your comments with ~~~~)

I think you're missing something here: Minecraft isn't just any other game with sufficient flexibility to build computers in-game: Minecraft is heavily influenced by DF, and any hardcore DF fan would consider it vastly inferior when compared with DF. So I think the additional twist behind the ALT text is that ten times more time would be wasted on something far less prestigious. Cheers! --197.234.243.247 12:49, 24 September 2015 (UTC)