MUSH thoughts...
Sep. 4th, 2005 10:11 pmMUSHcode has to go. It's slow, clunky, a royal pain to write and even worse to read. It was fine for simple things but it has no place as a serious programming language. Instead, I'd like to see a compiled-bytecode OO language similar to Smalltalk, but geared for ease of "just trying things out", and without any global state, so one can have good and flexible security policies put in place.
I would like the MUSH to be protocol-agnostic. There's no need for @mail if you have the thing respond to IMAP connections, or for channels if you can use Trillian to connect via IRC, is there? Email and IRC clients are far better at what they do than the MUSH will ever be. But if you want a simple in-game interface, it can (eventually) be there.
I want support for graphics, but telnet is still a useful way to connect (from work, etc). One could start with a completely telnet interface to be simple, but structure the rooms and objects to eventually have dual presentation. That way you get either the @description or say a three-quarter view with some limited physics. Some areas could be text-only or graphics-only, but if you just want to chat you don't want to see people move around anyway, so if most environments are dual it's not a problem. Just have some preset walk paths and sit targets in the room for the text clients. Web viewers could see everything in Wiki format, with annotations. This is kind of a burden, but a good one IMHO, it keeps the MUSH accessible to everyone. Same as web accessibility is an important thing.
In the far, far future this should support adding custom (non-dual) environments, such as sidescrollers, space shooters, or complete 3D engines. That needs a lot of abstraction for the players and clients to adapt, but I don't see why it can't be done. It would be a negotiation, something like, "Please supply avatars suitable for this environment which uses Isometric3DCoords, BoundingBoxClipping, PointMassPhysics and a ThreeQuarter3DView" and they could render themselves (in an area of perhaps limited size) from polygons or pixel art. To be more flexible the environment might wrap these avatars, perhaps in a SpaceVehicle, or the player could supply their own compatible implementation, with fancy bumper stickers and EVIL GREEN LASERS.
Also in the future I would move server-side intelligence into the clients too, to lighten the load. Modern networks are peer-to-peer and share everything using checksums and signatures to handle problems. If the server can depend on clients to share bandwidth, data (for avatars etc) and even notifications then this is a big win. (Need some way to detect attacks, probably by signed messages and some form of ping and sequencing.)
Hrm. Just rambling.