@kumakun said in What's out there now and what has been attempted? A codebase discussion.:
@arkandel I wholeheartedly agree. I was /thinking/ of telnet because I wanted to make it approachable for people stuck to their telnet clients.
It would be interesting to define a websocket protocol to standardize server/client communications so someone so inclined could make a ws based client capable of connecting to multiple servers. I entertained a webRTC data connection for a second, but, overkill. 
You will be happy to know that a websocket protocol and browser-based clients already exist for the latest PennMUSH release, with basic support for RhostMUSH in a private fork as well. The newest client can be found at https://github.com/grapenut/mush-portal with a live demo at https://node.grapenut.org. It already integrates with the basic stuff like room navigation/contents, @mail and Myrddin's BB. I'm currently working on per-game customization and integration for things like chargen, character sheets, or even browsing logs/wiki.
It features a full 256 color terminal with support for inline HTML/Pueblo and out-of-band JSON communication. There is a built-in windowing system which powers the @mail and +bb apps. Something like chargen or +sheet could spawn it's own fully interactive window. Some of the planned features include custom events, triggers, macros and keybinds. These could be used to create separate chat windows, for instance, where your channels and/or pages are displayed with custom coloring, etc. Your game's wiki could be accessed simultaneously through text in-game or formatted with HTML/CSS in a popup window.
There's no reason to choose one or the other. All of this runs on a standard PennMUSH server, so you can support the traditional telnet users while at the same time offering an enhanced experience for Web users. It comes with an event handler object that eases integration, but also works reasonably well for an updated PennMUSH without any server-side changes. It's built with JavaScript and ReactJS (like Facebook!), so there is a HUGE framework of tools available and it's pretty easy for people to modify to suit their needs. This is still very much a work-in-progress and I'm currently looking for help making it more mobile-friendly, with a possible native mobile app down the line.