Control Freak

Created with Sketch.

The controls are more or less all done for The Thief’s Tale now. The sticks work and everything is really quite ducky. Other than the combat controls which are a totally different thing altogether. In any event, they work. You can run around using the controller, and the front menu is more of less correct and the buttons are mapped and they all work. I did a run of The Cliff level for giggles and the controls performed admirably, without the slightest hint of lag or other weirdness. It’s really the way the game is meant to be played, and it shows.
The Combat Controls (and the functions that feed it) are next up. They’re different because they are tied into the enemy AI to some extent. They both need to have a rapport for the combat system to work, variables need to be exchanged like phone numbers and people need to call people, it’s all very complicated. Although I do not remember how complicated the inputs are. It may be easy, but I got into something else first which ate the time.
That something else is the Front Menu. I said that it more or less works and that is true, you can navigate the menus, but it’s really awkward. The issue is that the sticks have no “off” function. It’s not like the keyboard where I can easily ignore a key at any point. So if you push the stick down, the cursor moves at the speed of the menu loop, which is crazy fast since I don’t limit it. I’m sure there’s some slick way to correct that, but it was pushing 12:30 in the AM and my brain was in the process of shutting down piece by sleepy piece. So that can wait.
This experience has taught me something though. In the future, consolidated controls for everything. Have a single function that takes all input and spits out a wide variety of variables that I can look at. Basically, add a level of abstraction to the system. So say, if the A Button is pressed then change the value of the AButton variable to something. Then, when something wants to know if that button is being pressed, it need only look at the variable instead. That way, if I wanted to make changes, or hell, offer customised control schemes, it wouldn’t take me several hours of adding code to every instance of control input in the program.
Oh, and now that it works, yes, it was a Rockstar Moment.