Editing 1223: Dwarf Fortress

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 8: Line 8:
  
 
==Explanation==
 
==Explanation==
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 difficult 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).
Line 18: Line 18:
 
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 [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>
+
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]), [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] (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!
  
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).
+
<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>
  
<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 co-ordinate, and would run incredibly slowly).
<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 46: Line 42:
 
[[Category:Comics with color]]
 
[[Category:Comics with color]]
 
[[Category:Fiction]]
 
[[Category:Fiction]]
[[Category:Minecraft]]
 

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)