Showing posts with label MUSHclient. Show all posts
Showing posts with label MUSHclient. Show all posts

Sunday, 18 November 2012

MUSHclient GUI: 18-Nov-2012

It's been over two years since I released the last version of the God Wars II plugin.  I finally recovered the development version from my backups (from my old dead laptop) and extended it to properly use the big map.  As you can see from the following screenshot, there's now a small circular icon in the top left corner of the top map, and a downward pointing arrow in the top right corner:

(click image to enlarge)

If you click the circular icon, the big map opens, and you can actually use it to plot a course - clicking on the map sets your target destination to that position.  The small cross in thhe top right corner of the map closes it.  The big map also draws a line between your current position (the yellow circle) and your destination (the red circle), like so:

(click image to enlarge) 

For the time being, the big map is only available within the realm.  Thus if you enter another location, the circle icon will vanish:

(click image to enlarge)

The original maps were fine for my old laptop, but as you can see from the above screenshots there's very little space for the avatars underneath them - and it's even worse on my netbook.  So that's where the arrow icon (in the top right corner of the top map) comes in.  In full sized mode, the maps look like this:

(click image to enlarge)

But if you click the arrow, the maps shrink:

(click image to enlarge) 

Note that the arrow icon is now pointing upwards instead of downwards.

Saturday, 19 November 2011

GUI snippet version 6

Version 6 is now available from MudBytes, and contains the following minor changes:

  • Removed a stray semicolon.

The "if ( !pProtocol->bMSDP );" statement had a semicolon at the end, which should be removed.  This bug has very little impact, as MSDP already overrides ATCP, but it does mean that if the user's client supports both MSDP and ATCP, they will be sent the SERVER_ID variable twice.

  • Made it easier to add MCCP support.

Quite a few muds already support MCCP, and had trouble getting it working with the snippet - particularly if they were using copyover as well.  So I've improved the documentation and made it easier to integrate.

  • Made several minor updates to the installation instructions.

The INSTALL_MERC.TXT had actually been written for GodWars rather than Merc, and relied on a couple of GodWars-specific changes.  It's been updated to work with both, and now also defines MSDP_CLASS.  The INSTALL_TBA.TXT instructions now define MSDP_CLASS as well.

  • Added an INSTALL_ROM.TXT.

Although the ROM instructions are very similar to Merc, there are a few minor differences, and someone had trouble adding it to their ROM derivative.  So I added another set of installation instructions.

Thursday, 13 October 2011

GUI snippet version 5

Version 4 was just a tiny update to fix a memory allocation problem, but this version has more changes.

While helping Splork get the snippet working in SlothMUD, we came across an interesting problem - it seems that the MXP specification doesn't actually define whether the server should initiate negotiation with IAC WILL MXP or IAC DO MXP. While some clients therefore support both, others support only one or the other. I've therefore updated the snippet to support both (it attempts one if the other fails).

There was also a complaint from another user about the MSSP table being cumbersome to update for non-static fields such as players and uptime. I've therefore changed the table to use function pointers, which should make it much easier to update in future.

Scandum also asked me to change LIST to use an array, as per the latest specification, which I've done.

Other than that there were a couple of bugfixes, but nothing serious. Here's the list of changes:
  • Added symbolic constants for MSDP_TABLE_OPEN/CLOSE and MSDP_ARRAY_OPEN/CLOSE.
  • MSDPSetArray() was using table values rather than the array values. Fixed.
  • Added MSDPSendList(), used for the MSDP LIST command (updated to an array in the spec).
  • Doubled MAX_VARIABLE_LENGTH for the list variables.
  • Some of the LISTs had no separators between values when sent using ATCP. Fixed.
  • The MSSP table now uses function pointers, making it easier to update dynamic fields.
  • Added support for both variants of MXP negotiation.
As usual it can downloaded from the GW2 website: http://www.godwars2.org/download/protocol.tgz

Or from the MudBytes code repository: http://www.mudbytes.net/file-2811

Sunday, 28 August 2011

GUI snippet version 3

There was a small update to the snippet on 13th June, to fix a cyclic TTYPE issue, add some extra MSSP variables, and add support for broken packets.  But this update (version 3) is somewhat bigger, primarily due to some changes that were made to the MSDP specification since the snippet was released:

  • Added an AllocString() wrapper function, as strdup() isn't standard C.
  • Added support for the new MSDP tables and arrays.
  • Added support for the new UNREPORT and RESET MSDP commands.
  • Added a new REPORTED_VARIABLES list, as described in the latest MSDP spec.
  • Renamed VARIABLES to SENDABLE_VARIABLES as described in the latest MDSP spec.
  • Cleaned up the code, adding consts and fixing -ansi and -pedantic warnings.
  • Added support for the new Mudlet GUI autoinstaller.
  • Added an MCCP flag to make integration with the snippet easier.
  • Updated CopyoverGet() and CopyoverSet() to include TTYPE, MCCP and CHARSET.
  • Added an MSDPFlush() function for variables that need to be sent immediately.
  • ProtocolOutput() now lets you send tabs.
  • The snippet now recognises that DecafMUD supports 256 colours.
  • Updated the TBA instructions with a fix for strfrmt().
  • Updated the Merc, SMAUG and TBA instructions to use MSDP tables.

You can download it from here: http://www.godwars2.org/download/protocol.tgz

If you're already using the snippet, the README.TXT has some information about updating.

The generic plugin has also been updated: http://www.godwars2.org/download/Generic_Plugin.zip

The plugin doesn't handle fully nested data, but it does handle basic tables and arrays, as used in the installation instructions.

Thursday, 18 August 2011

4 Dimensions themed GUI

I've recently been helping 4 Dimensions get my protocol snippet working, and I decided to put together a simple Mudlet GUI to show it in action (and also because I wanted to test out the Mudlet autoinstaller on another mud).  As you can see, the layout is based on the God Wars II GUI, although I've replaced the graphics, recoloured the energy bars (to match 4D's prompt colours), and dropped the second map and bottom-left icons:

(click image to enlarge)

4 Dimensions already has a 'map' command that draws an ASCII map, so it was fairly straightforward to add the same data to an MSDP variable whenever the player changes room, and then I just threw together some basic graphical tiles for the client using Paint.

I decided to put together a MUSHclient version as well, and added some textured background and border graphics to make it feel a little less plain:

(click image to enlarge)

There's no information about your enemy, the spell icons are currently all the same, the avatar is fixed, and (as I recently discovered) there's an important 'stamina' value which will need a bar of its own.  But these were never intended to be final versions, just a way to demonstrate the protocol snippet, and an example of what you can throw together in an afternoon.

Saturday, 30 July 2011

Customising icons

I'm not very artistic, but fortunately there are plenty of people out there who are, and some of them are happy to offer their work for free.  Grulk recently pointed out a free album of icons that someone had created for use in games, and I think they would be superb for mud GUIs.

You can view and download them from here: http://imgur.com/a/KBQkz

They're initially black and white, but the idea is you can customise them to your theme (the top six images on the above link serve as examples of what you might do with them).

If you don't have Photoshop, there are other ways to customise images.  One tool that I occasionally use is the MyTheme Online Photo Editor.  It can be a bit annoying at times, but it's free and it gets the job done.

For example, supposing I want to create an icon for a magical hammer.  First I copy a base icon (from the album mentioned above), then I invert the colours and save it:


Next I open the Photo Editor, click "Browse...", enter the file name, then click "Upload now!".  Then I click "Effects" and select "Lightning Effect", and it generates a new icon.  You can do other effects as well, including blending it with your own backgrounds:


There are now at least 17 muds supporting MSDP, 15 of them using my snippet, so I'm hoping we'll soon see more mud developers taking an interest in designing their own GUIs.  Perhaps we could even create a shared repository of free base images - they're simple enough to flip, rotate and resize, and with custom backgrounds as well you can easily use the same base graphics for multiple GUIs without them looking like clones of each other.

While I'm posting anyway, here are a couple more screenshots - as you can see, I'm now using unicode (via UTF-8) for gender symbols and linedraw characters:

(click image to enlarge)

(click image to enlarge)

Atlantis and BlowTorch also support UTF-8, although the CHARSET negotiation doesn't seem to have been added to BlowTorch yet.  I'm still trying to decide how best to use unicode - I've even toyed with the idea of creating a custom mud font (other muds have created their own fonts before, but I don't think anyone has created a unicode mud font before).

In other news, the latest version of Mudlet now has an autoinstaller which automatically downloads and installs my GUI when the player first connects (through ATCP, so everyone using my snippet can now use the autoinstaller for their own muds as well).  This is obviously much more convenient than doing everything manually - even with clear installation instructions, I frequently have to spend time helping players get the MUSHclient plugin working, and sometimes they just give up.

Friday, 1 April 2011

GUI snippet released

After some more testing and refinement, I've decided my snippet is ready to be released into the wild.  I really need to get back to working on God Wars II anyway.

Tijer's mud, the Realm of War, is already using the snippet - so I decided to create a quick and simple demo GUI for it, by adapting the plugin I'd created for Realms of Despair:

(click image to enlarge)

I also spent a few minutes creating another version to release with the snippet:

(click image to enlarge)

You can download the snippet from here: http://www.godwars2.org/download/protocol.tgz

And the plugin from here: http://www.godwars2.org/download/Generic_Plugin.zip

Sunday, 20 March 2011

Realms of Despair themed GUI

After another three weeks of working on my snippet, it's finally complete - and it includes a lot more than just MSDP.  Tijer and Squiggle have been testing it on Realm of War (a GodWars mud), and have already helped me resolve a few issues, but it should really undergo further testing before being publically released.

I decided to create a demo GUI for Realms of Despair to show off the features, as I'm hoping they'll join the MSDP bandwagon.  It would be a huge boon for the protocol to get the backing of such a major mud, and might encourage more client developers to add support.

(click image to enlarge)

4Dimensions have also expressed an interest, as have a handful of other muds, so perhaps we'll see more GUIs in the near future!

Thursday, 11 November 2010

MUSHclient GUI: 11-Nov-2010

I've been aware for a while that the maps can look a bit tile-ish, because of the simple fact that they repeat the same tile over and over - but it looks particularly bad on the full map (as you can see on the previous screenshot).  Part of that was because I'd just halved the height and width of the normal tiles using Paint, so I got the mud to properly generate smaller tiles - however it still didn't look that great.

So I tried creating two of each tile set and alternating between them - it was better, but still not that good.  Randomising them was a bit better still, but looked wierd when you moved around, as the whole landscape seemed to shake.

In the end I settled on five of each tile set, with the plugin selecting one psuedo-randomly each time it draws a tile, and I think the maps look quite a lot better.

(click image to enlarge)

Wednesday, 10 November 2010

MUSHclient GUI: 10-Nov-2010

I decided to have a go at creating a full map of the current world, which for now can be opened and closed by clicking on your avatar (just so that I could test it).  It'll probably be opened by some sort of magnifying glass button on the border of the top minimap, but I've not yet decided how best to do it.

For the time being, the map only works for the Realm plane (the newbie world), and the index values are hardcoded into the plugin.  For the Nexus (which is 9 times as large) I'm going to need much smaller tiles, and I'd rather not reveal it all up front - so I may have it reveal the map as you move around, and save the data between sessions.

(click image to enlarge)

Thursday, 4 November 2010

SlothMUD-themed GUI

After chatting with Splork, I decided to have a go at creating a SlothMUD-themed GUI, to see how easily the plugin could be adapted.  It took around 2-3 hours in total (although I was watching TV and chatting online at the same time) - most of it was done in about half an hour, with the rest of the time spent tweaking the layout, troubleshooting a couple of problems carried over from my plugin, playing around with colours, and removing a load of unused code.

The graphics are from the SlothMUD website, giving the GUI a similar theme, with the layout designed to be similar to their flash client.  For comparison purposes, the SlothMUD website is available here: http://www.slothmud.org/


(click image to enlarge)

In practice I think a smaller title would work better, but this was just a quick experiment, and I didn't want to spend too much time on it.  Many muds already have a graphical title, a background texture and borders on their website, and my intent was just to see how easily such images could be used to create a themed GUI.

The map would need to be done differently (because of the room-based thing), but I have some ideas for that, which I may implement if there's interest (it'd be great for a generic plugin, as most muds are room-based).

Monday, 1 November 2010

MUSHclient GUI: 30-Oct-2010

Finally got the hotkeys working.  There's a 'hotkey' command in the mud that allows you to specify a label and action for each hotkey, and you can either press the buttons or use the function keys on your keyboard.  Because they're configured within the mud, you can specify different actions for each character - so your mage can have spells, your wolf can have pounce and claw attacks, etc.

I also reduced the size of the energy bars on the mini-avatars, allowing up to 3 rows of avatars to be displayed.  They don't quite align up (they're off by a couple of pixels) but you don't really notice unless you zoom in.  One thing I really need to add is a way to recognise your own pets, particularly for the up-coming Lich class, which will depend heavily on undead servants.

Finally, the maps now refresh properly for all locations.  Previously they didn't show anything when inside the dojo, practice grounds, or various other buildings.

(click image to enlarge)

MUSHclient GUI: 19-Oct-2010

Following feedback from Bobo the bee on MudBytes, I've added a blur timer (an eye icon - I'm not happy with it but it'll serve until I can find something better).  I've also tried moving the boot icon to the left, as this gives me more space under the map for drawing mini-avatars:


(click image to enlarge)

I'm wondering about putting the large enemy avatar on the right, beside the mini-avatars (so that targeting someone would effectively just increase the size of their avatar).  I think I'd find it harder to monitor their health that way though.

MUSHclient GUI: 16-Oct-2010

I decided to have a go at adding the mini avatars below the zoomed map, as I mentioned earlier.  I'm a bit short on space, but I can fit seven of them side-by-side (although if there are seven, the last one sticks out two pixels further than the map).  I was nearly able to fit in two rows, but not with the energy bars, and using the pie-shaped timer doesn't seem to fit.  Other options would be to remove the boot icon, or put the additional avatars beside it - but I can't think of a better place for the boot, and I'm thinking of adding more icons beside it anyway.

So it looks like I'll be limited to seven mini avatars.  But as it shows the seven closest things, that's probably okay - I don't generally have a lot of things in one place, and you could always click on the map to move closer (and thus change which avatars are displayed).  The only real exception would be in the starting village, where there are already seven buildings, and where players tend to pass through or sometimes even hang around.

You can click on the mini avatars to target the appropriate thing, but there's no other way to tell which is which.  One option might be to use a range of different colours for each dot on the map, and use the same colours for the energy bars - that would allow the user to distinguish between mobs at a glance.  But I wouldn't like it from a consistency perspective.

(click image to enlarge)

MUSHclient GUI: 13-Oct-2010

I decided to have a play with buttons.  I'd originally thought about putting them at the top, but long ago dismissed it as a wierd place to have buttons - however last night I got thinking about tying them to the function keys, and also making them available as hotkeys.  Not only does this fill the space at the top of the interface, it's also quite a logical place if they're bound to function keys.

This is my initial draft, just to get the ball rolling:

(click image to enlarge)

The idea is that players will be able to define what F1 to F12 do within the mud, and this information will be passed to the plugin, which will then configure the function keys.  So you might define F1 as 'rage' and F2 as 'magic', and the mud would then send these values to the plugin, which would display 'Rage' and 'Magic' on the respective buttons (or perhaps add a little icon, I've not yet decided).  You could then either click the button with your mouse, or press the function key on your keyboard.

It might also be cool if you could right-click the button to bring up a little window for configuring what the button does.  This data would then be sent to the mud, which would confirm that it was valid, and then tell the plugin what to set - this might seem a bit of a roundabout approach, but I think it would be the easiest to implement.  However I'm not sure if you'd be able to have an input field in the miniwindow...but what might work is to have it bring up a large menu of possible commands, rather like Guild Wars, and let the user click (or even drag-and-drop) which options they want on their buttons.

The hotkeys can be set with the Accelerator function (which, I discovered, can also be bound to a range of other keys - this could perhaps allow you to emulate character mode enough to create a graphical Roguelike interface).  I also discovered that Accelerator allows you to send negotiation sequences, although sadly these still get echoed to your screen (as junk characters), and I don't know how to avoid this without switching off input echo completely from within the MUSHclient settings.

Another minor issue is that hitting F1 attempts to bring up the Windows help, even if you've bound F1 to something else.  You can get around this by toggling an option in the preferences, but I don't know if it can be done from within the plugin.

From a cosmetic perspective, it seems a bit strange to have the "F1"/etc text label displayed in the bottom left corner of the button.  I feel that it should be in the top left.  But that looks a bit strange when compared to the spell icons.  On the other hand, if I decide to include an icon on each button as well, perhaps the text could be made bigger and placed in the centre left.

There's also the issue of button width.  Like the energy bars, the buttons are aligned with the text window - which means their width can vary.  This was easy enough to do for the energy bars, but it's going to be more fiddly for the buttons, particularly if they contain text and images.

I've also not yet given up hope on having some tabs (for things like a full-world map, an equipment and inventory list, etc), but if I still want these at the top I'll have to make the buttons smaller.  They could instead be placed at the right side of the window though.

MUSHclient GUI: 02-Oct-2010

Donky on MudBytes suggested that he didn't like energy bars that were both candy coloured and gradients, so I created a screenshot without gradients on the bottom energy bars:

(click image to enlarge)

And another with paler bars:

(click image to enlarge)

Here they are again, just the bars this time:

(click image to enlarge)

I'm also toying with a red that fits better with the slateblue - firebrick is quite nice, but perhaps a bit dark?  I also used forestgreen instead of green, as it's a fraction less harsh.

(click image to enlarge)

Here are a selection of slightly different shades of bar I tried:


In the end I settled for the last one.  So, back to the plugin again...

I'm now using the new energy bar colours, and they're pretty nice.  While playing with them I noticed that the bars were off by 1 pixel - that is, they had 2 "bright" pixels in the middle despite being an odd number of pixels high, so they got a bit darker at the top than than at the bottom.  I tried changing them to have 1 bright pixel in the centre, but they didn't look as good, so in the end I changed them to 3 bright pixels (which required manually drawing an extra line in the middle).  A lot of work for something most people probably wouldn't notice, but once I'd seen it I felt compelled to fix it.  Did the same for the enemy avatar's energy bar, even though it's thinner - once again it looked a bit iffy with just 1 bright pixel in the centre.

Based on a suggestion from Alayla, I've also added a (1 pixel wide) black line at the left and right end of each bar.

Alayla has provided some new movement icons - a pouncing boot, a retreating boot, a wing (for hovering, flying and swooping) and a fin (for swimming).  In combination with the coloured text, this provides full coverage for all the different movement speeds.

I've left the pie-shaped timers for now, as I think they're a fairly good way to see at a glance which spells are soon to expire - but I still plan to do more work on them.  Their brightness now only changes when the duration drops below 60 seconds.

(click image to enlarge)

MUSHclient GUI: 30-Sep-2010

I decided to try with the bottom right option for the icons, based on feedback, and see what it was like in play.  The text really is pretty small, but it's usable - I've still not made my mind up about it.

Last year Nick Gammon showed how to create cooldown buttons in MUSHclient, and I've kept meaning to try it out - so today I did, adding expanding pie-shaped shading around the spell icons to show their last 60 seconds of duration (it could easily be extended to show the true percentage, but I didn't want to change the format of the MSDP variable just to test something out).  I'm not entirely happy with the results, but perhaps it would look better if I adjusted the lighting.

(click image to enlarge)

MUSHclient GUI: 29-Sep-2010

Alayla has provided a smaller set of spell affect icons (28x28 rather than the previous 32x32) and some 34x34 backgrounds for them.  Although this does mean that the affect icons are closer to each other than all the other icons, I still think it looks good - it acually makes them look more like a coherent block.

I'm considering reducing the size of the duration text, so it doesn't block too much of the spell images, but I'm worried about making it too small to read...it's a difficult balance between cosmetics and functionality.

(click image to enlarge)

I've also been playing around with the size and position of the duration text on the spell icons:


Still undecided.  I quite like the bottom-right one (the four icons with the size 6 font in the bottom-left corner of each icon) from a stylistic perspective, as it doesn't hide much of the icon, but it really is small.

MUSHclient GUI: 26-Sep-2010

Standardised the size of the font for the boot and crossed swords icons, as suggested by Kline.  There are now four different boot icons to indicate different movement speeds.

Alayla (one of my admin, and the person responsible for most of the graphics) pointed out that the avatars were a bit blurry - turns out I had them enlarged to 70x70, even though most of them are 64x64 images.  Shrinking the avatars to their "proper" size would have messed up their alignment with the icons though, so Alayla created a background for the avatars.  They're now a bit smaller, but I think I prefer them with the background, it makes them look sunken into the display.

Still not entirely happy with the spell icons.  They could really do with a border as well, but I'm not sure how to do that without needing to realign everything else.  Perhaps add the border directly to the icons, to make them more like the crossed swords, heart and boot?

(click image to enlarge)

MUSHclient GUI: 25-Sep-2010

I've decided I definitely prefer it without the text in the bottom right.  I've added a little boot icon beside the actions bar to indicate your movement speed (you can't see the boot so well in this image because the movement speed is written over the top, but when you're standing still there's no text, so people shouldn't have trouble recognising what it is).  The text shows your movement in feet per second, and is colour-coded to indicate the movement type (retreat, walk, jog, run or pounce).

The energy bar under your opponent on the left is now a salmon colour rather than red if the opponent is too weak to give a reward for killing it.  There's also mouseover information telling you what age they are - so that covers at least some of the text.  I'm trying to decide whether the other information is really vital, and if so, where it should go - perhaps more icons beside the boot?  I also considered resizing the energy bars so that the boot could go below the text window (but then I'd have to do the same with the heart icon...and perhaps the crossed swords?  Then I'd need to rearrange the enemy avatar...)

One of my admin has provided a large number of new avatars.  She also mentioned that the spell affect icons looked out of place - so after some consideration I've decided to remove the borders around them.  I wasn't sure about it at first, but after using it for a bit I think it looks better, now that the borders have been removed from everywhere else.

I've also cleaned up the sun/moon icon in the top right, which would vanish for several minutes at a time.  It now always shows at least one pixel on one side or the other, and completes its cycle from left to right at midnight.

I'm still trying to decide what to do at the top.  I'd originally thought of having bottons or tabs, but I wonder if that might look too cluttered.  Most custom clients seem to have the title of the mud in a big fancy font at the top, and I always felt that was a waste of useful screen space, but I do wonder if it might look better for screenshots (which of course would help with advertising).

(click image to enlarge)