{"id":20829262,"url":"https://github.com/ganeshsankaran/multi-user-dungeon","last_synced_at":"2026-04-29T05:32:59.487Z","repository":{"id":92810551,"uuid":"191445773","full_name":"ganeshsankaran/multi-user-dungeon","owner":"ganeshsankaran","description":"A Java implementation of a multi-user dungeon","archived":false,"fork":false,"pushed_at":"2019-09-04T22:46:30.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-12T07:45:29.438Z","etag":null,"topics":["client","multithreading","server","socket-programming"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ganeshsankaran.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-06-11T20:37:57.000Z","updated_at":"2019-12-15T03:57:47.000Z","dependencies_parsed_at":"2023-03-04T12:45:43.103Z","dependency_job_id":null,"html_url":"https://github.com/ganeshsankaran/multi-user-dungeon","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ganeshsankaran/multi-user-dungeon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ganeshsankaran%2Fmulti-user-dungeon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ganeshsankaran%2Fmulti-user-dungeon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ganeshsankaran%2Fmulti-user-dungeon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ganeshsankaran%2Fmulti-user-dungeon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ganeshsankaran","download_url":"https://codeload.github.com/ganeshsankaran/multi-user-dungeon/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ganeshsankaran%2Fmulti-user-dungeon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32412888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T05:20:56.964Z","status":"ssl_error","status_checked_at":"2026-04-29T05:19:54.749Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["client","multithreading","server","socket-programming"],"created_at":"2024-11-17T23:19:48.397Z","updated_at":"2026-04-29T05:32:59.465Z","avatar_url":"https://github.com/ganeshsankaran.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multi-User Dungeon\n\u003cp\u003eby Ganesh Sankaran\u003c/p\u003e\n\u003cp\u003eDeveloped using Java 8\u003c/p\u003e\n\u003chr /\u003e\n\u003ch3\u003eOverview\u003c/h3\u003e\n\u003cp\u003eMUD is split into server-side and client-side components, namely MUDServer.java\nand MUDClient.java. MUDServer actively listens for users connecting from\nMUDClient and creates new threads sharing memory containing information about\nthe other users as well as the distribution of rooms and users within the virtual\nworld.\u003c/p\u003e\n\u003ch3\u003eDependencies\u003c/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eJDK 8\u003c/li\u003e\n  \u003cli\u003eA network connection\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDeploying the Client and Server\u003c/h3\u003e\n\u003cp\u003eIncluded are the files MUDServer.java, MUDClient.java, Coordinates.java,\nDungeon.java, and Room.java. Please note that MUDServer.java depends on\nCoordinates.java, Dungeon.java, and Room.java, whereas MUDClient.java is designed\nto run independently.\u003c/p\u003e\n\u003cstrong\u003e1. Obtaining the Source Code\u003c/strong\u003e\n\u003cp\u003ea. Clone the Repository\u003c/p\u003e\n\u003cpre\u003egit clone https://github.com/ganeshsankaran/multi-user-dungeon.git\u003c/pre\u003e\n\u003cbr /\u003e\n\u003cstrong\u003e2. Deploying the Server\u003c/strong\u003e\n\u003cp\u003ea. Compile the server source code\u003c/p\u003e\n\u003cpre\u003ejavac MUDServer.java\u003c/pre\u003e\n\u003cp\u003eb. Run the server\u003c/p\u003e\n\u003cpre\u003ejava MUDServer [world dimension] [maximum number of users]\u003c/pre\u003e\n\u003ci\u003eExample: \u003ccode\u003ejava MUDServer 100 1000\u003c/code\u003e\u003c/i\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003cstrong\u003e3. Deploying the Client\u003c/strong\u003e\n\u003cp\u003ea. Compile the client source code\u003c/p\u003e\n\u003cpre\u003ejavac MUDClient.java\u003c/pre\u003e\n\u003cp\u003eb. Run the client\u003c/p\u003e\n\u003cpre\u003ejava MUDClient [server IP]\u003c/pre\u003e\n\u003ci\u003eExample: \u003ccode\u003ejava MUDClient 127.0.0.1\u003c/code\u003e\u003c/i\u003e\n\u003cbr /\u003e\n\u003cbr /\u003e\n\u003ch3\u003eUsing the Client\u003c/h3\u003e\n\u003cp\u003eWhen the MUDClient JFrame opens up, please enter a non-empty name that does\nnot contain parentheses or forward slashes. If your name has already been taken,\nthe client will prompt you for a different name immediately.\u003c/p\u003e\n\u003cp\u003eMost of the window’s area outputs information in response to the commands you\nenter. For example, room descriptions, the names of users in your room, the\nmovement of users into and out of your room, and dialogs are displayed here.\u003c/p\u003e\n\u003cp\u003eIn this implementation, the rooms are empty (containing no items). In addition, the\ndescription of the rooms is just a pseudorandom number as a proof-of-concept.\nImplementing items and the commands associated with them is simple, which can\nbe implemented using another data structure (such as a hash-table mapping the\nitem name to the number of that item available in the room) to store each room’s\nitems in the Room class.\u003c/p\u003e\n\u003cp\u003eCommands can be entered in the text field at the bottom of the window. The\nfollowing commands have been implemented thus far:\u003c/p\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003ccode\u003e/say/[dialog]\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/tell/[username]/[dialog]\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/yell/[dialog]\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/north\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/south\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/east\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/west\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/up\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/down\u003c/code\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ccode\u003e/quit\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fganeshsankaran%2Fmulti-user-dungeon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fganeshsankaran%2Fmulti-user-dungeon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fganeshsankaran%2Fmulti-user-dungeon/lists"}