{"id":17187981,"url":"https://github.com/icculus/mojozork","last_synced_at":"2025-04-13T19:09:38.078Z","repository":{"id":106920352,"uuid":"387513148","full_name":"icculus/mojozork","owner":"icculus","description":"A simple Z-Machine implementation in a single C file. Now with online multiplayer!  :)","archived":false,"fork":false,"pushed_at":"2023-12-31T20:07:04.000Z","size":697,"stargazers_count":123,"open_issues_count":7,"forks_count":14,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-27T09:46:22.852Z","etag":null,"topics":["game","infocom","online-multiplayer-game","zmachine-interpreter","zork"],"latest_commit_sha":null,"homepage":"https://www.patreon.com/posts/54997062","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"zlib","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icculus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":["icculus"],"patreon":"icculus"}},"created_at":"2021-07-19T15:35:08.000Z","updated_at":"2024-11-13T02:24:08.000Z","dependencies_parsed_at":"2023-12-31T22:48:56.054Z","dependency_job_id":"6765acdc-f171-49ef-ab77-2d4e57a9d60a","html_url":"https://github.com/icculus/mojozork","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Fmojozork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Fmojozork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Fmojozork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icculus%2Fmojozork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icculus","download_url":"https://codeload.github.com/icculus/mojozork/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766736,"owners_count":21158301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["game","infocom","online-multiplayer-game","zmachine-interpreter","zork"],"created_at":"2024-10-15T01:07:48.655Z","updated_at":"2025-04-13T19:09:38.039Z","avatar_url":"https://github.com/icculus.png","language":"C","funding_links":["https://github.com/sponsors/icculus","https://patreon.com/icculus","https://www.patreon.com/posts/54997062"],"categories":[],"sub_categories":[],"readme":"\n# MojoZork\n\n```\n\u003eread leaflet\n```\n\nHello sailor!\n\nThis is an implementation of Infocom's Z-Machine. The Z-Machine is a virtual\nmachine that's something like a high-level CPU. To keep their games portable\nand easier to write, Infocom's games all use this fake processor and ship\nwith a platform-specific Z-Machine \"emulator\" ... so a game could run wherever\nsomeone had implemented the Z-Machine.\n\nThis project is just for fun; everyone should write this at some point as an\neducational activity. If you want a serious Z-Machine implementation, there\nare certainly better ones out there (I personally recommend\n[\"Frotz\"](http://frotz.sourceforge.net/) and there are many others, too).\n\nThis program currently supports most of the Version 3 Z-Machine. This is\nenough to play the vast majority of Infocom's catalog. Later Infocom games\nused version 4, 5, and 6 of the Z-Machine, and those will currently not run\nhere. Most modern Interactive Fiction is built with a tool called Inform and\nusually targets version 5 at the lowest; these games currently don't work\nwith this project. Maybe later.\n\nActivision, who acquired Infocom in the 1990's, gives out Zork I, II, and III\nfor free, so I've included Zork I's data files with this project. If you want\nto see Zork I run through from start to finish, you can run a pre-written\nscript to complete the entire game from the command line, like this:\n\n```\n./mojozork ./zork1.dat ./zork1-script.txt\n```\n\nIf you want to write your own Z-Machine, there is an \"official\" specification\non how to implement it, written by people that spent significant time\nreverse engineering the originals from Infocom, and extending the ecosystem\nwith new tools. You can find that specification\n[here](http://inform-fiction.org/zmachine/standards/).\n\nAs usual, Wikipedia offers a wonderful rabbit hole to fall down, too, in\ntheir [Z-machine article](https://en.wikipedia.org/wiki/Z-machine).\n\n# MultiZork\n\nOn top of the MojoZork code, there is a telnet server called `multizorkd` that\nlets several people connect _to the same game_ and play it as a multiplayer\nexperience. Each player has their own inventory and can move independent of\nothers. This probably only works on Linux/Unix systems, but the single-player\nmojozork program should work on just about anything.\n\nYou can play MultiZork right now by pointing a telnet client at\nmultizork.icculus.org (or running `nc multizork.icculus.org 23`).\n\n[A post on my Patreon](https://www.patreon.com/posts/54997062) explains the\nmotivations and technical details of multizork. If you like this, please\nconsider throwing in a dollar so I can keep doing wild things like this!\n\n# libretro core\n\nEver want to play Z-Machine games under RetroArch? Now you can. The libretro\ncore handles all the tapdancing to make text-based games run in a graphical\nwindow, and can be played with a keyboard (in RetroArch focus mode), or with\na mouse or game controller on an included virtual keyboard.\n\n\nEnjoy!\n\n--ryan.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficculus%2Fmojozork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficculus%2Fmojozork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficculus%2Fmojozork/lists"}