Tuesday, December 6, 2016


There can be a lot going on when playing The Elementalist so coming up with an input scheme that makes controlling the wizard feel intuitive is important to me.  Initially I simply implemented key bindings that seemed reasonable for testing (K.I.S.S.) but when I added in the ability to control the game with an Xbox 360 game pad it felt much more natural.  I spent a fair amount of time play-testing the game with the 360 controller and getting pretty familiar with that setup.

It was not until I added in the ability to configure key and mouse bindings in the game that the controller really had any competition.  Now I think both are pretty intuitive after a little use and there are things I like about both schemes.  Controlling with a game-pad does have a nice retro feel (although you will need more than A, B, start, and select) but the ability to navigate menus using the scroll-wheel also feels really natural to me.  Hopefully one or the other will work well for you in the alpha, but I am definitely interested in feedback if there are things that can be improved.

Default Key and Mouse Bindings

 As you can see the keys are all organized around the standard WASD setup for movement with the element selections taking the 1-4 numerals and the ability to use items and grab props close at hand.  While attack, defense and item selection and use are bound to keys I find the use of the mouse much more intuitive personally (though if you run in windowed mode and move the mouse out of the window that can be surprising -- luckily there are plenty of display settings that can make this a non-issue).

There are also a few other bindings that I did not call out in the image here, specifically the arrow keys always function within the UI, the Enter key always means "yes" within the UI (as does the left mouse button), and the Escape key always means "no" or back within the UI (as does the right mouse button).  The full set of key bindings can be viewed and changed to whatever you desire, though a few defaults cannot be changed to prevent you from making an unusable setup (specifically the arrow keys, enter, and escape always function to control the UI).

One thing I discovered while playing with key bindings on my local setup was that using the space bar for attack or defense caused various other keys not to be recognized while it was being held -- perhaps an artifact of my bizarre alien hardware (I have to use split keyboards to avoid ridiculous RSI pain) or maybe something to do with the environment.  In any case, if you try to use space and encounter similar issues, you have been warned.  ;-)

Default Xbox 360 Game-pad Bindings

The Xbox 360 controller has been on my desk next to my computer for quite a few years and gotten a fair amount of use in various titles where I felt it just felt right (Witcher 3 I'm looking at you!).  In any case I wanted to be able to use it in The Elementalist and am happy to say that it works great (for me at least!).  Making a UI for binding controls for it seemed a bit like over-kill for the alpha but I did make three profiles that can be selected from in order to hopefully cater to personal preferences.  The image above shows my personal favorite, which is the default setting (note that the little gray arrow in circle bits imply pressing the right or left stick -- given the pixel limitations I'm working with that was the best I could come up with on short notice).  There is also a version that uses the Directional Pad for moving for those who really prefer it that way.  If you play around and have a strong desire for an alternate setup let me know, it could even sneak into the game!

Other Controllers

It has been a desire of mine to implement a more general controller binding UI that supports binding all of the inputs to whatever you want to use, though it would take some work to make a UI of that nature intuitive and it might depend on how many people really clamor for it.  One other thing I am slightly disappointed by is that the Xbox One controller does not seem to behave the same as the 360 controller and currently cannot be used in the game, despite my buying one to try to make it go.  Even if I had a fully generic solution to binding inputs the Xbox One controller does not seem to emit values even though I can poll the controller for them, which for the moment I am going to ignore and not let my OCD force me to dig into...  With any luck I will find a way to overcome this at some point but in the meantime either stick with one of the existing schemes or consider using a joy-to-key program to adapt your inputs and pretend it's a keyboard.  ;-)

Now to get back to work testing the content!