Joysticks
Simple idea, give the UO client joystick support. This is probably more complicated in practice than in theory, but I don't think it's impossibly complex. It would make the game much more flexible, especially in combat scenarios. The bigger problem is that very few EA titles have joystick support, for reasons that are unknown to me; it appears to be a corporate-wide issue though.
I suggest using the following basic model:
- Directional movement: The main "stick" should move the character around (movement following stick direction), without any other buttons being held. This would allow the least amount of hands-on effort to control basic movement, which is important because additional inputs such as macros and movement will likely require the use of the other hand.
- Directional positioning: In order to allow characters to turn without movement, the main stick should allow for "tapping", in the same way that tapping the mouse turns a character.
- Independent cursor movement: If the joystick has a separate directional control (ie, a HUD cap), that control should be mapped to the cursor separately. This will allow people to move their character with the main stick while separately manipulating the cursors. Note that this feature is not available with the basic mouse input alone, but is supported with a combination of keyboard and mouse controls under the current system (move with arrow keys, control cursor with mouse).
- Default button mappings: By default, button one on the joystick should be mapped to the "use/attack" function in the client, depending on whether the client is in peace or war mode (same as double-clicking with the mouse). Button two should be mapped to the same function as the mouse single-click (the inspect function?). All other buttons should be undefined by default.
- Macro support for joystick buttons: Each detected button should be capable of being mapped to a macro. This may require extending the options->macros interface [are mouse buttons mappable in this way--I don't think so, so a general overhaul here would also add support for additional mouse buttons]. In particular, users should be able to map things like special move 1 and 2, spell macros, "open door" functions, text macros for selling wares at the bank, or anything else they can currently assign to a keystroke.
Basically, the above would allow players to hold the joystick in their mouse hand and use it for the same basic purposes as the mouse, but would provide a little more functionality in the form of independent cursor movement and macro assignments. This additional functionality could be very empowering however. For example, a mage could move around while targetting enemies, and fire off a limited number of spells as needed (probably things like paralyze, ebolt, and a couple of other basic spells, given the limited number of buttons). Similarly, a warrior might have buttons for executing their special moves, along with chivalry spells like consecrate weapon and remove curse. The real power would come from any UOAssist support that might also be enabled (such as drinking a potion), although that is only because UOA has a slightly more powerful macro toolkit (and as I recommend elsewhere, UO should adopt these tools into the UO client).