MultiUser Shared Environment (MUSE) PHP WebApp
MUSE is a text-based world building MU*-like client/server webapp written in PHP.
MU*-like systems include Multiuser Dungeons (MUDs), Multiuser Shared Hallucianations (MUSHs) and Multiuser Experience (MUX).
MUSE is releated to MUD/MUSH/MUX (MU*) systems. But most of those systems require a binary to run on a server using a persistent connection. MUSE was created in PHP to run on most web services, and requiring almost no regular administration. Other web based MU* applications are clients to connect traditional persistent connection services.
MUSE allows you to toy with or use a MU*-like system in one easy to maintain package. The advantage is that once you set it up you can forget it, and it will continue running. (That's a strength of PHP.) The draw back is traditional clients cannot connect to it. (Also: it's obviously incomplete at this point.) I have not found any MU* system that is so flexible, easy to maintain and compitable with cheap hosting accountings.
MU* systems share a similar user experience with IF (interactive fiction), but those rely more heavily on scripting and are single-user experiences.
- Create a MySQL user and database, and give the user access to the database with basic insert, update and delete rights.
- From the
sql/folder, add either the empty or default world. (Empty world hasn't been tested, and possibly won't work. It needs at least some main room to drop you in to, doesn't it?)
- Upload the
app/files to your webserver in some folder, or the root.
- Copy the
- Edit the file and put in the database username, database name, and the user-facing URI (URL) of where the app is.
You should now be able to go to the app, create a user, and sign in.
For the commands that have been included in MUSE, I have linked to a larger description of the command from a PennMUSH command listing.
Explore Commands (server)
lookLook around your current location. (Location object listing.)
") say something to everyone in your location.
move) Move player to new location.
takeTake object from location to inventory.
dropDrop object from inventory to location.
Build commands (server)
examineDump item info.
@chownChange object owner.
@desc) Set object description.
@dig <room name> [= <exit name>;<exit alias>*,<return exit name>;<exit alias>*]
Create a new room and link. See @dig description
@nameChange object name.
@openCreate an exit.
@linkLink an exit to a room.
@setSet extended info on object. Eg. success or osuccess)
Debugging commands (client)
- serverdebugon Turns on sever processing debugging
- serverdebugoff Turns off sever processing debugging
- debugall Turns on all debugging
- debugnone Turns off all debugging
In university I toyed with someone's PennMUSH system and thought it was very amusing. It's something I kept coming back to year after year. In 2012/2013 I started to create MUSE. I went through several iterations of the name (World Builder, HoloPage, phpMUSH, HoloText) before settling on MUSE.
There are several MU* engines, including PennMUSH and even Evennia, but they all seem to require you to install as a service, which is not compatible with most shared hosting plans. Also, these services can sometimes be tempermental if the server freezes, reboots or is upgraded. RanvierMUD looks like a particularly nice system, but still runs as a background service.
MUSE, on the other hand, is the complete package. Admins don't need to maintain the software, and users don't need to use any tools. Just show up and sign in. It works right in the browser.
I've been looking for MU-like experience that is web based for a while. One that has a web client frontend and a backend that runs on Apache or similar services.
A MUD/MUSH/MU* is a very simple thing at it's core. Over the past 15 years I have periodically installed PennMUSS and enjoyed using it. The target audience of this application is one underserved. It's someone who wants a MU*-like experience, but:
- Does not want the hassle of preservering data during system moves or formats
- Does not want to have to reconfigure the system or network during changes
- Portable across system architectures and platforms
- Doesn't want to signin one day 5 years from now, find it hasn't run, and needs to trouble shoot
- Doesn't want to have to explain to friends how to download a client and connect ^1
- Doesn't want to pay for a server that allows you to run background tasks
- Possibly doesn't have system admin experience, or is just too lazy.
Basically, a more casual experience. Something that has a lower barrier of entry in terms of technical skill, cost or time. There are ways to avoid any one or two of these, but not reduce all three enough. (Note, ^1 can be accomplished by a web client connected to any backend.)
I choose this because PHP is very portable and takes less configurations to work than most anything else. The code is on GitHub and your can test it out using this demo server.