{"id":7826,"date":"2026-01-15T14:13:25","date_gmt":"2026-01-15T14:13:25","guid":{"rendered":"https:\/\/research.swissdigitization.ch\/?p=7826"},"modified":"2026-01-16T09:21:31","modified_gmt":"2026-01-16T09:21:31","slug":"shelldungeon-stateless-dungeon-game-for-a-shell-cli-add-commands-to-play-in-the-programs-argument","status":"publish","type":"post","link":"https:\/\/research.swissdigitization.ch\/?p=7826","title":{"rendered":"ShellDungeon &#8211; Stateless Dungeon Game for a UNIX-Shell (CLI) &#8211; Add Commands in the programs argument"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1018\" height=\"1232\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.19.00.png\" alt=\"\" class=\"wp-image-7840\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.19.00.png 1018w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.19.00-248x300.png 248w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.19.00-768x929.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.19.00-624x755.png 624w\" sizes=\"auto, (max-width: 1018px) 100vw, 1018px\" \/><\/figure>\n\n\n\n<p>In Action <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"592\" style=\"aspect-ratio: 1010 \/ 592;\" width=\"1010\" controls src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Screen-2026-01-15-1512161.mp4\"><\/video><\/figure>\n\n\n\n<p>See also the following considerations: <a href=\"https:\/\/research.swissdigitization.ch\/?p=7813\">Experimentelle Arch\u00e4ologie: Das (fehlende) Genre der Shell-Argument-Only-Games<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mission<\/h2>\n\n\n\n<p>The following game is an experiment in developing a game that could have been played on a mainframe in the 1960s, controlled only from the shell. In other words, there were no internal game queries for input. The inputs are defined in advance. <\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Result [Shortdescription]<\/h2>\n\n\n\n<p>The result is a dungeon game called ShellDungeon. The game is only executed via the shell command \u201cshelldungeon\u201d and parameters. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ shelldungeon\n$ shelldungeon ww<\/code><\/pre>\n\n\n\n<p>The first command shows the start, each subsequent command shows the result of the actions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Story<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>$ shelldungeon<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"536\" height=\"472\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.48.12.png\" alt=\"\" class=\"wp-image-7844\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.48.12.png 536w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.48.12-300x264.png 300w\" sizes=\"auto, (max-width: 536px) 100vw, 536px\" \/><\/figure>\n\n\n\n<p>A is the Avatar. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"210\" height=\"204\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.22.42.png\" alt=\"\" class=\"wp-image-7865\" style=\"width:335px;height:auto\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">The game &#8211; Ingamescreen<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>  ######## +*  ####U############\n  #F#^ oo# *+  # W             #\n  # #  oo#     #               #\n  # ## #########               #\n  #  # FO      #         ##    #\n  ## ######### #####           #\n  #     X o O# XXX             #\n  #I ^######o# ###       ^^^   #\n  # A #Foo     # #   ^      ####\n  ############## ############   <\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ELEMENTS\n&nbsp;&nbsp; A: PLAYER*&nbsp;\n&nbsp;&nbsp; #: WALL&nbsp;\n&nbsp;&nbsp; X: CLOSED DOOR&nbsp;\n&nbsp;&nbsp; O: BIG BARREL&nbsp;\n&nbsp;&nbsp; o: SMALL BARREL&nbsp;\n&nbsp;&nbsp; F: KEY&nbsp;\n&nbsp;&nbsp; U: EXIT&nbsp;\n\n&nbsp;&nbsp; DECORATION\n&nbsp;&nbsp; I: PILLAR&nbsp;\n&nbsp;&nbsp; T: PILLAR&nbsp;\n&nbsp;&nbsp; .:SMALL STONE\n&nbsp;&nbsp; _:?\n\n&nbsp;&nbsp; SPRITES\n&nbsp;&nbsp; W: DRAGON - KILLS YOU\n&nbsp;&nbsp; v: CAT<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Action <\/h2>\n\n\n\n<p>You play on the Shell. All movements etc will be added to the Shell Argument.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  COMMANDS (WASD MOVEMENT + E FOR ACTION)\n   a:LEFT\n   d:RIGHT\n   w:UP\n   s:DOWN\n   e: ACTION \/\/ DESTROYS THINGS oOW <\/code><\/pre>\n\n\n\n<p>Go up one step:<br>.\/shelldungeon w<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"524\" height=\"424\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.26.27.png\" alt=\"\" class=\"wp-image-7842\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.26.27.png 524w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.26.27-300x243.png 300w\" sizes=\"auto, (max-width: 524px) 100vw, 524px\" \/><\/figure>\n\n\n\n<p><br>Go up two steps:<br>.\/shelldungeon wd<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"762\" height=\"508\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.27.16.png\" alt=\"\" class=\"wp-image-7843\" style=\"aspect-ratio:1.5000357832963573;width:531px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.27.16.png 762w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.27.16-300x200.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.27.16-624x416.png 624w\" sizes=\"auto, (max-width: 762px) 100vw, 762px\" \/><\/figure>\n\n\n\n<p>You moved right into a spear. -30 Health!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Best Gameplay-Feeling<\/h2>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"592\" style=\"aspect-ratio: 1010 \/ 592;\" width=\"1010\" controls src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Screen-2026-01-15-1512161.mp4\"><\/video><\/figure>\n\n\n\n<p>The best gaming experience comes from playing it in a real shell.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Start<\/li>\n\n\n\n<li>Add Movement\/Action (WASD+E Command)<\/li>\n\n\n\n<li>Press Return<\/li>\n\n\n\n<li>Watch Result<\/li>\n\n\n\n<li>Press Cursor up, last Commands come back<\/li>\n\n\n\n<li>GOTO 2<\/li>\n<\/ol>\n\n\n\n<p>This makes it seem almost like a classic interactive game.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ressources<\/h2>\n\n\n\n<p>Your ressources: Health, Keys &amp; Gold<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"84\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.51.42.png\" alt=\"\" class=\"wp-image-7845\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.51.42.png 672w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.51.42-300x38.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.51.42-624x78.png 624w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Keys &amp; Doors <\/h2>\n\n\n\n<p>A closed door. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"50\" height=\"94\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.52.19-1.png\" alt=\"\" class=\"wp-image-7848\"\/><\/figure>\n\n\n\n<p>Collect keys by walking over them. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"66\" height=\"82\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.52.12-1.png\" alt=\"\" class=\"wp-image-7849\" style=\"width:55px;height:auto\"\/><\/figure>\n\n\n\n<p>Doors open automatically when a key is present.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Destroy things<\/h2>\n\n\n\n<p>With the Command e &#8211; you can destroy everything that is 1 or less fields away.<\/p>\n\n\n\n<p>You can destroy barrels (Oo) or hit the dragon.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"98\" height=\"104\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.55.51.png\" alt=\"\" class=\"wp-image-7850\" style=\"width:80px;height:auto\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Mechanics<\/h2>\n\n\n\n<p>The game is lost when you have no health left (running into walls, touching spears, being bitten by the dragon) with GameOver or when you find the exit (U).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"930\" height=\"450\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.08.27.png\" alt=\"\" class=\"wp-image-7854\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.08.27.png 930w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.08.27-300x145.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.08.27-768x372.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.08.27-624x302.png 624w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><\/figure>\n\n\n\n<p>or you get to the Exit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1080\" height=\"374\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-16-um-10.08.56.png\" alt=\"\" class=\"wp-image-7876\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-16-um-10.08.56.png 1080w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-16-um-10.08.56-300x104.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-16-um-10.08.56-768x266.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-16-um-10.08.56-624x216.png 624w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">PrintOut or InGameHistory<\/h2>\n\n\n\n<p>Of course all is documented in the ShellLog. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;()()()()()()()()()()()()()()()()]\n&#91;   (                            ]\n&#91;  )\\ )   SHELLDUNGEON           ]\n&#91; (()\/(    0.5                   ]\n&#91;  \/(_))                         ]\n&#91;\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/###\/\/\/\/\/\/\/\/\/\/]\n\n&#91; THE ARGUMENT ONLY ADVENTURE ] \n&#91; IDEA&amp;CODE GAMELABZ\/CHLUDENS ] \n\n  PLAY : .\/shelldungeon &#91;CMDS]\n  CMDS : &#91;MOVE wasd] &#91;ACTION: e] \n         &#91;HELP: h] \n  TRY  : .\/shelldungeon h \n         &gt; help \n\n  TRY  : .\/shelldungeon wwh \n         &gt; up up help \n\n\n&#91;  HEALTH: 100 KEYS:0 GOLD: 0  ]\n\n  ######## +*  ####U############\n  #F#^ oo# *+  # W             #\n  # #  oo#     #               #\n  # ## #########               #\n  #  # FO      #         ##    #\n  ## ######### #####           #\n  #     X o O# XXX             #\n  #I ^######o# ###       ^^^   #\n  # A #Foo     # #   ^      ####\n  ############## ############   \n\nYOU WAKE UP IN A DARK DUNGEON.  \nYOU HEAR A ROARING DRAGON! \nESCAPE!!!!! \n\n\n! USE CURSOR IN SHELL TO GET LAST \n!  COMMAND AND ADD NEXT CMD \n\n\nNX-37028:dungeons_cli rbauer$ .\/shelldungeon w\n\n&#91;  HEALTH: 100 KEYS:0 GOLD: 0  ]\n\n  ######## *+  ####U############\n  #F#^ oo# +*  #w              #\n  # #  oo#     #               #\n  # ## #########               #\n  #  # FO      #         ##    #\n  ## ######### #####           #\n  #     X o O# XXX             #\n  #IA^######o# ###       ^^^   #\n  #   #Foo     # #   ^      ####\n  ############## ############   \n\n&gt; MOVED UP\n\n\nNX-37028:dungeons_cli rbauer$ .\/shelldungeon ww\n\n&#91;  HEALTH: 100 KEYS:0 GOLD: 0  ]\n\n  ######## +*  ####U############\n  #F#^ oo# *+  #w              #\n  # #  oo#     #               #\n  # ## #########               #\n  #  # FO      #         ##    #\n  ## ######### #####           #\n  # A   X o O# XXX             #\n  #I ^######o# ###       ^^^   #\n  #   #Foo     # #   ^      ####\n  ############## ############   \n\n&gt; MOVED UP\n\n\n&#91;..]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Technical<\/h2>\n\n\n\n<p>The game was developed in C so that it could actually be tried out on a mainframe with a TTY or terminal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DevIDE<\/h2>\n\n\n\n<p>Specifically, an online IDE was used.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.jdoodle.com\/c-online-compiler\">https:\/\/www.jdoodle.com\/c-online-compiler<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Source-Code<\/h2>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-bf7af150-f2e6-4585-95b7-b8aa02ac9751\" href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/shelldungeon.c.zip\">shelldungeon.c<\/a><a href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/shelldungeon.c.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-bf7af150-f2e6-4585-95b7-b8aa02ac9751\">Herunterladen<\/a><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\n\nSHELL-DUNGEON 0.5\n\nPROJECT-DOCUMENTATION: https:\/\/research.swissdigitization.ch\/?p=7826\nIDEA &amp; CODE: rene.bauer@zhdk.ch\n\nOnlineIDE: https:\/\/www.jdoodle.com\/c-online-compiler\n  \ndie:      dwhhhhhh\nsolution: wwwwawwwsssdssdddddeddeedssaaeaeaadddddddwwdddawwaaaaaeeaaawwededaassddddddddsddsddd\nend: \t\twwwwawwwsssdssdddddeddeedssaaeaeaadddddddwwddawwaaaaaeeaaawwedwedsaassddddddddssddddddddddwdddwwssadsdwwwwaaaaaaaaaww\n\n*\/\n\n#include &lt;stdio.h&gt;\n#include &lt;string.h&gt;\n#include &lt;stdlib.h&gt;\n\n\/\/ exe\nint version = 5;\n\nchar *execName;   \nchar *execCmds;\n\n\nint actIndex = 0;\nchar lastCmd = ' ';\n\n\/\/ vars\nint money = 0; \/\/ score\nint keys = 0;\nint health = 100;\n\n\/\/ world\nconst int playFieldWidth = 30;\nconst int playFieldHeight = 10;\n\nint playerX = 2;\nint playerY = playFieldHeight-2;\nint playerCmdIndex = 0; \/\/ where are we?\n\nchar inv&#91;] = \"SWORD\";\n\n\nchar executedCommand&#91;30] = \"\";\nchar executedCommandArg&#91;30] = \"\";\n\n\n\n\/\/ y | x\nchar playField&#91;10]&#91;30] = {\n                \"######## +*  ####U############\",\n                \"#F#^ oo# *+  # W             #\",\n&#91;...]<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Installation MacOS X<\/h2>\n\n\n\n<p>Download Source Code<\/p>\n\n\n\n<p>\/\/ open terminal<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1126\" height=\"850\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.15.37.png\" alt=\"\" class=\"wp-image-7837\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.15.37.png 1126w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.15.37-300x226.png 300w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.15.37-768x580.png 768w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-14.15.37-624x471.png 624w\" sizes=\"auto, (max-width: 1126px) 100vw, 1126px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ create file (or move to the download folder in the terminal - with &gt; cd \"xyz\")\n$ nano .\/shelldungeon.c\n\/\/ copy paste in source code\nctrl-x\n\n\/\/ compile (forget the warnings)\n$ cc .\/shelldungeon.c -o shelldungeon\n$ .\/shelldungeon\n\n\/\/ not running?\n$ chmod 755 .\/shelldungeon<\/code><\/pre>\n\n\n\n<p><strong>Download Mac Compiled Version:<\/strong><\/p>\n\n\n\n<p>If you dont get it to compile it, here the compiled mac version (ARM)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"418\" height=\"384\" src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.06.38.png\" alt=\"\" class=\"wp-image-7853\" style=\"width:144px;height:auto\" srcset=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.06.38.png 418w, https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Bildschirmfoto-2026-01-15-um-15.06.38-300x276.png 300w\" sizes=\"auto, (max-width: 418px) 100vw, 418px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-34fec0e7-b693-4b9e-9c98-f946824f6943\" href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/shelldungeon.zip\">shell dungeon<\/a><a href=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/shelldungeon.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-34fec0e7-b693-4b9e-9c98-f946824f6943\">Herunterladen<\/a><\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>Windows Version:<\/strong><\/p>\n\n\n\n<p>Use VisualStudioCode to compile it. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Findings: Genre Shell Argument-Only Input Games<\/h2>\n\n\n\n<p>The question now is, were there any games that worked like a command with an argument? So far, none have been found.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Requirements<\/h3>\n\n\n\n<p>Input: The input must come from outside as an argument. Example: &gt; game input<\/p>\n\n\n\n<p>This leaves only two possibilities for a game: Single input &#8211; Multiple inputs<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Single input 1x<\/h3>\n\n\n\n<p>This variant seems to be possible only with very simple games.<\/p>\n\n\n\n<p>It could be something like tossing a coin. You enter the input: coin 1. The program takes a random number and compares it with the coin. This game would be endless. The question is whether it would be an interesting game.<\/p>\n\n\n\n<p>You could also imagine a more complex game like a maze, where you enter your moves in advance and see how far you can get in the maze. &gt; labyrinth Uri<\/p>\n\n\n\n<p>A kind of strategy game would also be possible. You enter what you want to use for the unknown battlefield. Of course, this is all very unentertaining (from today&#8217;s gaming perspective) if you don&#8217;t know what scenario you&#8217;re facing.<\/p>\n\n\n\n<p>The whole thing would thus be a kind of autobattler as a genre.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">TwiceInput 2x<\/h3>\n\n\n\n<p>Another possibility here would be to start the program at least twice. The first time without input, you see one possible level. Then you start the same program again with the parameters. And then it&#8217;s already a quite interesting setting.<\/p>\n\n\n\n<p>A similar concept can already be seen at the gameplay of Oregon trail. There you buy things that you use afterwards. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">MultiInput 2+x<\/h3>\n\n\n\n<p>The 2-input game (without saving any data as files) can of course also be opened. It doesn&#8217;t matter how often you call up the game with parameters. It&#8217;s simply a matter of solving a specific goal.<\/p>\n\n\n\n<p>Of course, the game loses control over the number of attempts here. One could also argue that normal games do this too, since you can simply start over. The conscience of \u201chow good the player<em>\u201d is therefore lies with the player<\/em> and not with the game. And it is clear that the bigger the game, the less likely the trick of starting over is. Perhaps this is why computer games strive to make the game as long as possible. The commitment increases with the length of time spent in the game and the desire to continue what has been \u201cachieved.\u201d<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Genre<\/h3>\n\n\n\n<p>Certainly, this type of game is not particularly interesting once there are stop-and-go games with input\/returns like in MUDs (Basic) or directly \u201ccontrolled\u201d games via keyboard. In this respect, these computer games fall short. Nevertheless, such games would also be interesting because they could have been played on the first mainframe computers, even on teletypes\/printers!<\/p>\n\n\n\n<p>Unfortunately, there are no artifacts to prove this, because many experiments from the early days of mainframes were not documented or were even deliberately \u201cdeleted\u201d because mainframes should not be misused for such purposes. However, if you look at all the software on Plato Systems (still playable today), it becomes clear that people tried out a lot of things. So it is unlikely that this software did not exist. Another hint is the 101 BASIC Games. There are many programs here that simply do something, such as generating a random maze, etc., which people then solve on paper. See also BASIC 101 1973 \u2013 Paper often printed out &amp; then display games.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">ShellDungeon<\/h2>\n\n\n\n<p>ShellDungeon is quite entertaining, considering its limitations. It is essentially a turn-based action-game.<\/p>\n\n\n\n<p>When played smoothly, it comes close to the experience of the first truly interactive dungeon games on PlatoSystems, for example. Of course, it does not function interactively like those games. So the world doesn&#8217;t keep moving. Nevertheless, when you&#8217;re trying to get around the dragon (wW), for example, you do get the occasional rush of adrenaline that you know from classic action games.<\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"482\" style=\"aspect-ratio: 1102 \/ 482;\" width=\"1102\" controls src=\"https:\/\/research.swissdigitization.ch\/wp-content\/uploads\/2026\/01\/Screen-2026-01-16-101118.mp4\"><\/video><\/figure>\n\n\n\n<p>In this sense, ShellDungeon has been developed further than originally intended, where the idea was more of a story-driven autobattler. However, this approach can also be tried out in the following experiment (unfortunately in German).<\/p>\n\n\n\n<p>Here you define the Parameters and than the story start and takes out of the parameters the usable objects. <a href=\"https:\/\/www.and-or.ch\/zureichoregontrail\">https:\/\/www.and-or.ch\/zureichoregontrail<\/a> This could of course also be a simple shell-command\/exe. <\/p>\n\n\n\n<p>It will be interesting to see whether such games and similar ones can be found on old tapes at some point. And if so, how different these games were in contrast. Perhaps more in the elearning area of this systems .-)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Action See also the following considerations: Experimentelle Arch\u00e4ologie: Das (fehlende) Genre der Shell-Argument-Only-Games Mission The following game is an experiment in developing a game that could have been played on a mainframe in the 1960s, controlled only from the shell. In other words, there were no internal game queries for input. The inputs are [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7826","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/7826","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7826"}],"version-history":[{"count":26,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/7826\/revisions"}],"predecessor-version":[{"id":7879,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=\/wp\/v2\/posts\/7826\/revisions\/7879"}],"wp:attachment":[{"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7826"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7826"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/research.swissdigitization.ch\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7826"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}