Input - Mouse and Keyboard

SpaceSys topics not related to any specific subforum
Wed Nov 27, 2013 1:32 am

  • As a gamer, I'm totally hooked to a whole set of automatisms for all kinds of 3D moves. I know that it would not be reasonable to ask for such a level of customization that anyone could decide what should happen for any single mouse button click or pointer motion. Still, I'll comment on what I have in mind and we'll see where it goes from there through a series of evaluations about what can or cannot be done.

    My all mouse options preferences would be:
    1 - Of course Keeping the current configuration format through XML config file 8-) (BTW, any DTD planned ?)
    2 - Have the option to select one of two center of rotation points for the camera, like in google earth where you can choose to rotate either around your current eye/cam position or some target position.
    3 - Have the option of selecting the MouseButton of your choice to trigger one of those rotation origin.
    4 - Have the option of selecting some MouseButton-COMBO of your choice when mapping camera moves. (i.e. LeftButton + RightButton = Move Forward ... as can be used in WOW.)

    I really miss mouse-aiming, I mean LeftMouseButton-drag and RightMouseButton-drag for camera rotation. LMB-drag is currently bound to icons selection - and it has to be this way because this is how we select things in Windows. I'm only reporting the issue as something I'd like to be solved, maybe through some modal handling like Shift-MButton-drag or Control-MButton-drag or even Space-MButton-drag like in Photoshop in which Space has been added to the set of modifiers as if there were not enough with Control, Shift, Alt (+ their right siblings) !

    As for keyboard mapping, my first attempts (only a few hours spent atm) could show me that there is no Modifier combo available yet for "standard" mapping. Configuration dialog is ready to handle such keyboard input events but there are 2 separate sets of actions associated to either Key Functions or Combo Functions.
    - In other words, would it be possible have all functions appear in the Combo Functions DropDownList ?
    - And, while I'm there, could we have Left, Middle, Right, XButton1 and XButton2 added to the Key, Mod Key [12] and Modifier [12] DropDownLists?

    I ask much don't I ;) And I'll be back soon with more when I have some.

    I'm ready to work hard on all this. I know there are many, many constraints involved with UI interaction. Selection (start, end, add-to,remove-from,...), click, doubleclick, ... and all those must fit as smoothly as possible with actual windows user experience...

    But, after all, millions of gamers can do real good with MMO avatars. My own experience is mainly with Swtor and Wow and, with time, any complicated it seems at first, I know we can get very comfortable with complexity. I use all my MMO7 mouse 18 buttons and AutoHotkey knows what to map them to for each application I want to customize. This is why I would like to put those "natural" abilities at work in 3Dea world ... if possible/reasonable ...

    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm

Wed Nov 27, 2013 10:37 am

  • As gamers ourselves customization was one of first goals we wanted to implement. As with anything else time (money is actually 'fcourse ;) ) is the most crucial resource to make it happen. So as I am a single person implementing main application, current level of customization is as it is for months now. Current goal is to reach alpha version ASAP and with it we would like to accomplish user's feeling what the application will be at the end. As there are million of things we would like to have in the end we need comments like your's to decide what we will implement first. So thanks for this man, a lot! We will surely have it in our records and try to implement it sooner the better. To answer you more concretely on you're preferences:
    1. xml will always be there, DTD probably not, but if someone needs it really bad (or anything else) and it's doable you'll have it..
    2. rotating camera around look-at position is planed to do, this other point is also nice, we'll do it
    3. & 4. yes, mouse will be fully configurable as keyboard/kinect/...

    Yes, this set of keyboard combos was the very basic one, to implement any other would not be a big issue..
    You ask just as much as we like, so please don't give up! I just hope that we will accomplish your expectations..

    have fun!
    Posts: 36
    Joined: Thu Jul 04, 2013 4:17 pm

Wed Nov 27, 2013 4:00 pm

  • As a quick appreciation for your answer, I have to say that it was all I was expecting at the moment. No pressure from my part as I know this would not help things to be done any faster and, much more importantly, the right way.

    I'm pretty sure that the best results will come up after some trial-errors loops of experimentation with feedback from users. And I know that you'll have to satisfy both casual and geeks to succeed on both ROI and media hype.

    In the mean time, I'm trying to ask AutoHotkey to translate my moves into what can be currently mapped.

    One thing I wont be able to do that way is turning [ MouseButtonPress or Modifier ] + Mouse Pointer Motion combo into something that could address camera rotation and translation in some sensible way. This is a matter of analog-axis handling vs. on-off-state-trigger function binding.

    Still, it will be interesting to see if I can come up with some way to cope with the lack of this pointer mapping. I doubt it will be quite acceptable as a substitute but the challenge is the same as using a gamepad instead of a mouse in any 3D game. As gamepad inputs feel like near-on-off activation (even with joysticks) when compared to moving a mouse pointer, the result highly depends on smoothing through some timer based handlers that can't make everyone happy with a simple implementation.

    Currently, this is my main concern. Seamlessly moving the camera is (for me) a required feature before I can get hooked to using/working with this tool. I know from experience that simple everyday solutions are not easily replaced by more sophisticated ones UNLESS the price to pay is worth the improvements.

    Look at how everyone (mostly) is still using a keyboard layout that was designed more than a century ago... only for that changing habits has a cost. For this, I doubt this new way to deal with what most people are quite sure there is no alternative will make no exception. Let's just accept having to go through some acceptance period and it will be less painful than working on a revolution.

    But, there are exceptions to this rule, and everyone knows one: I have a FingerWorks TouchStream LP I bought (in 2005) way before Apple hired the 2 guys who created what is known as Touch Typing / Gesturing on any smartphone or tablet. This has me witness the emergence of something quite as confidential as this desktop interface at that time. If you guys have the same fate, well, lucky you!
    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm

Wed Nov 27, 2013 7:20 pm

  • I could find a way to setup Left Mouse Button Aiming with the help of a trick with AutoHotkey.
    - Trick : Left button press and release are masked and replaced by Middle button press and release when the Alt Modifier is held down (current 3Dea hardcoded aming).
    - Mimics (kind of): User configurable mouse button press and release mapping.
    - Issues : Using a modifier (modal input) is not as comfortable as single hand operation. I can feel how better it would be not to have to take my left hand fingers out of (...whatever I've them in at the moment).
    - Then what ? Something coming to mind to make that better could be through separating navigation from objects interaction.
    - that would allow any currently mapped input (keyboard events as well) to be mappable again. Navigation and files and folder manipulation are two very different things. Not being able to do both at the same time could be dealt with later.
    - From user perspective, selecting a file with a left click of the mouse has never been confusing for a gamer when firing a gun with the same button. It looks like we're pretty close to the same kind of mind shift when switching back and forth from a game world to a chat frame.

    :idea: There would be 2 interaction modes:
    1. Navigation mode : Where mouse and keyboard would be used as in any 3D games.
    2. Desktop mode : Where 3Dea world would be a passive desktop background on which any standard Windows input would revert to its default OS mapping.
    This way, 3Dea would not have to compromise with any MS standard behaviour as being able to decide freely what to let users do with their input devices. No need to explain why they can't do that for either weird or good reason.

    Yet, switching between those 2 modes has to feel as natural as possible. The user has to "know" which is the mode at any time. This makes a difference with a modeless behaviour where a whole bunch of single inputs are mapped to some specific action. But, as you wouldn't open the door of your car before it has stopped, we need some visual clue to show what we are currently doing.

    There would be more details to be considered about the different categories of interaction. At the moment, I think that manipulating 3Dea objects (icons, containers, ...) is something different from interacting with Windows objects. So, navigation and objects interaction make more than 2 ways to tell what the same button click might do...

    Another issue I have currently is the about the ability to adjust mouse sensitivity while aiming. Real too fast for any reasonable DPI. I have this issue in most games as well anyway :( and AutoHotkey cannot always adjust this through a call to systemparametersinfo - whether it works or not seems to depend on how pointer motion is processed by each application.
    Last edited by ivanwfr on Thu Nov 28, 2013 3:03 pm, edited 2 times in total.
    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm

Thu Nov 28, 2013 12:20 pm

  • Hello Ivan,

    These are a lot of inputs at one time. All are very welcome!

    I will answer a batch at a time :)

    Mouse inputs,

    We will integrate mouse mapping at one point of time, where you will be able to map your mouse as you would want. I for one, want to have my other mouse buttons to be configurable but it will have to wait until we come to alpha. We will use all of them don’t you worry, and they will be configurable in the SpaceSys launcher. (also there are lots of controls right now that are not configurable, just enabled)

    Also complete mouse control is possible, as we implemented the movement but with ctrl+mmb, and ctrl-shift+mmb, and that should be on back-forward mb. We will work on that in near future (month or two) The voice controls that will be there (hopefully beta next summer) shall further enable you to move between spaces and trough world, operate with icons and spaces without unnecessary mechanics that we have in place now.

    But basics are basics, we need to have them first.

    Navigation options,

    The free float mode navigation that you have now is the only one for now. Another way of navigation is in plan for future releases, once we integrate voice controls. I would call it locked navigation, where you move between existing interest points or spaces, icons or opened tabs or taskbar items, without free float that you have now.
    While existing mouse controls or Kinect controls, or leap controls would actually move your selection. We have to create different looking worlds for that, and integrate all kinds’ of hotkey controls, that will automate and replace mechanics that we have now. Switching between these two modes will be seamless, as you will take control once you want to wasd somewhere, and from there you will be able to "fly to" or "teleport to" or "maximize" things that you want to focus on, by hotkey, voice, or gesture. We are aware that the movement and navigation needs to be seamless and smooth and that is a whole field in gaming industry. One that we will get back to in future months. We have great ideas that need to be tested, and hopefully we will get some from you guys.

    It is hard to speak about it now as we will fine tune it once we start working on it. So far we are still working on basic usability of our software, so that the user can really use it as a real system browser in the free float mode.

    Also since this is done for the first time, a control scheme is also done for the first time, so don’t expect us to get it right immediately :)

    Regards !
    User avatar
    Posts: 135
    Joined: Thu Jul 04, 2013 1:25 pm

Thu Nov 28, 2013 3:49 pm

  • Thanks for those clarifications. Just having to wait for something to happen is way better than worrying whether it has been considered or not. I can wait!

    In the meantime, I plan to mimic more ways of interaction with AutoHotkey transposing some of my custom inputs into what 3Dea is currently waiting for. The idea is to build-up some first-hand user experience as early as possible and share what comes out.

    For this to happen, I need to overcome any painful interaction that no doubt would kill any good disposition I might have to keep trying for a significant period of time.

    This is why I would be interested by any heads-up you might have about XML configuration elements and attributes I could use to that end, even before you take the time to make them available in 3DeaConfigUI.exe. (I can use an editor to work on XML Config files.)
    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm

Fri Nov 29, 2013 12:16 pm

  • We are here to provide :)

    Also I forgot to add, there will be three kinds of control, one is free flight that we have now. One is fly to interest points, with selecting only existing spaces, point of interests where you will be able to focus on the nearby icons. (that will come later with the voice support) and the third and by my opinion the best control mechanics will be lock on target, where you will be able to lock on anything on the world, make it a focus point, and rotate around it, scrollMB will serve as a speed and distance modifier, that will be the next one on the menu. Controlling like that will really easy the use as you will be able to control the system with just mouse.

    If you have more questions, ask away!

    We are always looking into how to make the controls better, and soon we will start working on it, as controlling the system is the most important thing, after it starts working :)
    User avatar
    Posts: 135
    Joined: Thu Jul 04, 2013 1:25 pm

  • What i need in order to use 3dea everyday (even in alpha stage!) :
    (this is a quick draft I intend to correct and adjust in time...)

    1- NAVIGATION-INPUT-MODE / WINDOWS-INPUT-MODE (as a real-time changeable option) :
    - The full-screen graphic window should become completely passive, as though it was a simple background dynamic-image.
    - I would not risk any more interaction from it than I get from my current background image.
    - In that case, as little I could expect from this early stage of development would be an addition with no inconvinience whatsoever.

    2- MOVE-MODE / WARP-MODE (as a real-time changeable option) :
    - While working, quick access has precedence over fun.
    (suggestion: click-on-terrain would be nice to select a warp destination)

    - By default, the user has to click on an application window to bring it on top of the others.
    - As I chose the option to bring any window that gets the input focus on top of the stack after a short delay, when my cursor moves over 3Dea screen, all my windows are moved behind it.
    - I would rather keep them always on top of the background without having to hit [Ctrl-Escape] every time it happens.

    - Windows-OS main folders are not the best way to fit all user needs.
    . I have a whole set of folders of interest I would be happy to reach from a distance.

    My personal notes :
    - [Mouse aiming] changes direction WAY too fast
    - [Movement Speed Percentage] should be real-time-adjustable
    - [Automatic translation] when pointers close to screen-border should be optional
    - [Time of day] should be accessible from UI rather than from the config tool.
    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm

Fri Dec 20, 2013 12:28 pm

  • Hello Ivan,

    Here are some answers for you,

    1. that is possible, but for now we dropped it for the future, and that is a maybe. We lost some time trying to get it working, but as we have only few controls over windows api for window ordering, we had to loose quite a lot of time to have it working properly, and we still need to decide if that is worth that time, as we are thinking on other things..

    2. Move and warp mode will be one of the first thing that we will implement as we come to an alpha, so you can expect it in January.

    3. The problem is connected to the question no.1 , we will sort that out in the future. Windows, does not give us complete freedom (strangely ;) ) to do as we wish. So we will need to fight that in the future.

    4. User defined first level folders, we have decided to hardcode the first level folders for now, we will allow you to choose any folder to create a space out of it. It will take a month of development to finish that, but that is left for after the alpha, you will be able to browse through Spacesys completely as you would in win explorer. Create space from anything and anywhere.

    We are now handling saving possitions of the spaces and icons, and in about few days major update is on the way.

    Answers to your personal notes,

    Mouse aiming, yes we will add mouse look sensitivity along with the sensitivity separate.
    Movement speed does work in the real-time, if it didn’t work in the version you have, it might be just a bug, works now and the next update will fix that.
    Mouse window scroll, yes that will be an option later for you to choose.
    Time of day, well we left that for the beta.

    Feel free to ask anything else! We are here, although slow :)
    User avatar
    Posts: 135
    Joined: Thu Jul 04, 2013 1:25 pm

Fri Dec 20, 2013 6:35 pm

  • Thanks Dalmat for these thorough answers.

    It's not a surprise you have some issues with input handling. This is what I am currently trying to filter with AutoHotkey and, although it seems to work, it's only "most of the time" (meaning that some right click still slip through my filtering attempts).

    January is fine with me ;) and I remember reading a note about that in the features list. That point was simply meant to highlight a first class requirement that would turn the alpha into a useable tool as early as possible. This would make the difference between some trial periods to see where we are and an all-day running context.

    Windows is only a friend for MS, as a developer my time is more spent at fighting against rather than relying on it. If the windows stack order management is not ready to handle every user selectable focus behavior, only a proactive strategy will solve the issue. Windows is meant ONLY for the majority, as long as the Sales department is happy nothing will change about how input focus is handled.
    If you can switch stack order by code or put some transparent input window that could capture input events where they can slip through, it may work. If not, windows API will keep the upper hand :twisted: once more.

    One thing comes to mind that would help in that direction. It could be a smart integration of NTFS links capabilities that are not far from what Unix file systems offer. Junctions, symbolic links and mount points are all that a user needs to complement those Windows standard entry points.
    I recently discovered that we currently have effective ways to organize smart user defined NTFS folders: Windows Resource Kit (ln.exe) and Link Shell Extension freeware.

    Mouse aiming, Movement speed, Mouse window scroll, Time of day
    When I said "real-time", I should have said "through a scalable input action" instead. Something like what you get from a soft or hard throttle or a brake activation.
    As I understand it could be read as though the configuration tool was not adjusting those parameters, well, it was not the case, sorry, everything works fine with me for that matter.
    And about options, you'll never give enough to please everybody. Anything you would turn into an option will be a smart move. Whether you choose to implement a configuration control for them or not, as long as you save those into a (slightly documented) human-readable config file, that would be appreciated.
    Posts: 18
    Joined: Tue Nov 19, 2013 5:39 pm


Return to General Discussion

  • Who is online
  • Users browsing this forum: No registered users and 2 guests