Top Mud Sites Forum

Top Mud Sites Forum (http://www.topmudsites.com/forums/index.php)
-   Advanced MUD Concepts (http://www.topmudsites.com/forums/forumdisplay.php?f=7)
-   -   Proof of Concept: Android App Directly Integrated into Existing MUd (http://www.topmudsites.com/forums/showthread.php?t=7079)

takamori 07-23-2013 02:19 PM

Proof of Concept: Android App Directly Integrated into Existing MUD
 
I have developed an Android app as a proof of concept for integrating a Mobile client directly into an existing MUD server. Using existing communication protocols, as well as direct client to server interactions, the potential for this goes well beyond a generalized MUD client.

Desired concepts:
Requirements:
If you have questions about how I did any of the things I did, or suggestions for out of the box ideas, I would love to discuss them, here or via e-mail!

Link to proof of concept app:

KaVir 07-24-2013 04:18 AM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
Note: As this is posted on the advanced mud concepts forum, I'm assuming you're looking for feedback and discussion.

From the comments about the interface I was expecting something like , but this looks far more like BlowTorch (which has also been , although personally I'd find it annoying to need a separate app for each mud, particularly if - like yours - they have a price tag). Are you planning to extend the graphical support in the future?

Which communication protocol are you using? I couldn't detect GMCP, MSDP, ATCP, ZMP, or indeed any other telnet options except ECHO. Is it something custom that's being initiated on the client side? If so, why not go with one of the established protocols that are already supported by other mud clients?

No MCCP? That would a deal-breaker for me for a mobile client.

One of the screenshots showed orange text, and I certainly agree that a modern client should support more than basic 16-colour ANSI. Do you use xterm 256 colours, MXP 24-bit colour, or something else?

swampdog 07-24-2013 12:47 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
Neat! I'm working on something similiar for Wayfar 1444, using twitter bootstrap and boilerplate (to create automatic resizing layouts for mobiles or pads). The goal is an HTML5 client, meaning it can run on most platforms and all without a download of any kind.

I went into making the MOO with this mindset from the beginning, so the gameplay itself translates well to a text free client - no typing commands, just contextual buttons and game screens. MOO lends itself to this as well, due to the object/verb structure - I can write generalized handlers for any object that figures out which buttons the client needs to display and what other elements need to interact with it.

The first thing I did was realize that not a single MUD protocol would be worth implementing on the client side. Instead, node.js acts a proxy between the MOO and the client, and the client operates purely on the JSON data sent from the MOO, or responds to events emitted from the node.js proxy (which can catch things like successful logins or what have you).

KaVir 07-24-2013 01:28 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
MCCP generally reduces your bandwidth usage to around 20%. If your goal is to target mobile users, who often have data usage limits, then that's well worth implementing.

As for other protocols, it depends on your mud really. If you're planning to force people to use your HTML5 client, then it doesn't really matter what other features you support. But if you want to remain playable through other clients as well, then it makes sense to support protocols that work for multiple clients rather than adding different protocols for different clients.

How does that differ from GMCP?

swampdog 07-24-2013 03:05 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
In this case MCCP is irrelevant because the node.js server is the only one interacting with the MOO directly. You're not sending MOO packets to the browser at all, but rather to the node server which then sends either a JSON packet or an event to the browser and the browser then emits events back to the node server. And socket.io (a component of node.js) supports gzip of all communications on the socket, whether to the MOO or to the browser.

I got the inspiration from this client: - which has examples of the event emitting and node proxy system, although it is only used to create a text entry MUD client. Going a step farther I've got my HTML layouts updating based on incoming JSON data or changing displays based on emitted events from the server (which themselves are generated by parsing the outgoing JSON data for special commands).

I do support MCP, MSP, MXP, MSDP, and the generic moo "out of band commands" on the MOO for text players, and the game is still text accessible. Even though it would actually be easier to just rewrite the game itself in node.js, I do want to keep the game itself as a MUD, while extending the appeal with a fully graphical HTML5 client.

I'm not overly familiar with GMCP but I haven't implemented it MOO side, so this does seem easier, especially with the ability javascript has to instantly parse and use JSON structures. And again, since the client (browser) isn't interacting with the MOO directly, and since the MOO can send JSON packets just fine, it seems unnecessary. I'm pretty interested in this stuff, so it's always interesting to see what other people have done or are thinking about.

plamzi 07-24-2013 04:28 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
I took a similar approach with my latest web app and I consider it a very good/fast solution for anyone focused on supporting a single server (it could be a server running multiple games, with a node.js proxy running locally).

I'm also in general agreement with you in your attitude towards MUD protocols. That said, if the end goal is to support multiple games, someone might consider a node.js proxy that does more than ignore them. For instance, if the proxy connects to a number of other remote servers, it could benefit from supporting MCCP internally, irrespective of how/if it compresses the data for its clients.

GMCP is basically slightly customized JSON, so I found it really easy to parse our existing Mudlet a-la Aardwolf implementation in web UI JS. Nothing wrong with killing several birds with one stone.

I believe that of all MUD protocols for in-game data packaging (as opposed to compression), GMCP has the best chance of survival, all because JSON is now a de-facto industry standard.

Lasher 07-24-2013 05:04 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
Everyone is using node.js for this? I guess it was overkill then to build websocket handling directly into the MUD and just use that? Just never liked the idea of potentially hundreds of connections through a proxy.

Never did write the client though. A friend did a proof of concept websockets front end that had some basic windowing and GMCP handling but we never went back to it.

KaVir 07-24-2013 05:10 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
The main drawback of GMCP is that it doesn't have a proper specification, so each mud has implemented their own variation based on their personal interpretation of the incomplete draft specification (which is now a dead link as well). As each mud implements GMCP slightly differently, some of them aren't fully compatible with certain clients.

By contrast, MSDP has a clear specification, as well as two public domain snippets, so that it can be added to most muds in a matter of minutes. As a result it's supported by around 3-4 times as many muds as GMCP, and almost every implementation follows the exact same standard.

Malifax 07-25-2013 01:51 PM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
Who wrote the other one?

KaVir 07-26-2013 05:38 AM

Re: Proof of Concept: Android App Directly Integrated into Existing MUd
 
I wrote , Scandum wrote the .


All times are GMT -4. The time now is 02:50 AM.

Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright Top Mud Sites.com 2022