Top Mud Sites Forum Return to TopMudSites.com
Go Back   Top Mud Sites Forum > Mud Development and Administration > Advanced MUD Concepts
Click here to Register

Reply
 
Thread Tools
Old 07-23-2013, 03:19 PM   #1
takamori
New Member
 
Join Date: Jul 2013
Home MUD: 3k.org
Posts: 3
takamori is on a distinguished road
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:
  • Provide a single, seamless connection to just one MUD, allowing app advertisement to include features and concepts specific to that MUD. Less selling a "client", more selling the MUD itself.
  • Make touch screen the primary interface--Get away from that keyboard as much as possible. Automatic macro buttons, touchable text, and then of course the traditional triggers, aliases, etc.
  • Give users a "chat" application that notifies from background, allowing users to experience the social aspect of their MUD just like they might with texting or instant messaging.
  • Overcome the barriers of entry for new players experiencing MUDDING for the first time: automatic character creation, etc, app side help files specific to that MUD, etc.

Requirements:
  • App coder must have access to a "MUDLIB" level coder on the mud server to be able to implement existing communication protocols or create new ones to interact with the app. This does NOT mean changing anything for
    existing/traditional users.
  • A desire to grow the MUD and access a whole new audience, many of whom may have never seen or heard of a text based game
  • A newbie friendly experience to engage the new player into the game. If they don't retain, the whole exercise is futile!

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:
aMud:3K

Last edited by takamori : 07-23-2013 at 03:29 PM.
takamori is offline   Reply With Quote
Old 07-24-2013, 05:18 AM   #2
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
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 Bedlam, but this looks far more like BlowTorch (which has also been tailored to individual muds, 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?
KaVir is offline   Reply With Quote
Old 07-24-2013, 01:47 PM   #3
swampdog
Member
 
Join Date: Jul 2010
Posts: 31
swampdog is on a distinguished road
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).
swampdog is offline   Reply With Quote
Old 07-24-2013, 02:28 PM   #4
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
Post Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by swampdog View Post
The first thing I did was realize that not a single MUD protocol would be worth implementing on the client side.
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.

Quote:
Originally Posted by swampdog View Post
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).
How does that differ from GMCP?
KaVir is offline   Reply With Quote
Old 07-24-2013, 04:05 PM   #5
swampdog
Member
 
Join Date: Jul 2010
Posts: 31
swampdog is on a distinguished road
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by KaVir View Post
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.
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: https://github.com/dannytatom/muddy - 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.

Quote:
How does that differ from GMCP?
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.
swampdog is offline   Reply With Quote
Old 07-24-2013, 05:28 PM   #6
plamzi
Senior Member
 
plamzi's Avatar
 
Join Date: Nov 2009
Home MUD: bedlam.mudportal.com:9000
Home MUD: www.mudportal.com
Posts: 292
plamzi is on a distinguished road
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by swampdog View Post
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 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.
plamzi is offline   Reply With Quote
Old 07-24-2013, 06:04 PM   #7
Lasher
Administrator
 
Lasher's Avatar
 
Join Date: May 2005
Name: Derek
Location: Orlando
Posts: 353
Lasher has a spectacular aura aboutLasher has a spectacular aura about
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by plamzi View Post
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.
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.
Lasher is offline   Reply With Quote
Old 07-24-2013, 06:10 PM   #8
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by plamzi View Post
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.
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.
KaVir is offline   Reply With Quote
Old 07-25-2013, 02:51 PM   #9
Malifax
Member
 
Join Date: Mar 2006
Posts: 106
Malifax is on a distinguished road
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by KaVir View Post
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.
Who wrote the other one?
Malifax is offline   Reply With Quote
Old 07-26-2013, 06:38 AM   #10
KaVir
Legend
 
KaVir's Avatar
 
Join Date: Apr 2002
Name: Richard
Home MUD: God Wars II
Posts: 2,052
KaVir will become famous soon enoughKaVir will become famous soon enough
Re: Proof of Concept: Android App Directly Integrated into Existing MUd

Quote:
Originally Posted by Malifax View Post
Who wrote the other one?
I wrote one, Scandum wrote the other.
KaVir is offline   Reply With Quote
Reply


Thread Tools


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT -4. The time now is 01:40 AM.


Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Style based on a design by Essilor
Copyright Top Mud Sites.com 2014