Character Controller:Initial thoughts



One of the prompts that got my ass into gear with this project is I'am currently recovering from surgery on my hand. I normally chill out in my downtime playing video games which I am struggling to do at the moment.


My journey into video games started with a Commodore Plus/4  and I now currently own a PS4. Throughout the years I have owned many different systems and witnessed many great moments in gaming. In no particular order, some of the more memorable
  1.  Rebel Assault
  2.  Tetris 
  3.  The original PlayStation console
  4.  The N64 Controller
  5.   Doom 

Moving back onto topic, I think the PS4 Dualshock 2 controller is one of the best controllers of all time.

However, boy do we abuse it.

I thought No Mans Sky would be a simple game to play one handish - wrong. It was almost possible but you have to press two buttons on the back for thrust - why? it makes no sense?

Button mashing is another abuse. I was part of the generation that came up through the ranks of joystick waggling with the likes of Daley Thompson's Decathlon, button combo mashing with Street Fighter II and even quite recently, I thought Shadow of Mordor was a buttontastic romp. But. What is not fun is when you have to repeatedly press just one button for something trivial like opening a door or moving something out the way - that is just laziness.

I also get why in some games you don't want to pick up every object you come across (Fallout 4 for example). But something like Wolfenstein where you want as much ammo as possible and you are repeatedly pressing a button to pick it up? oh come on.

Just because the buttons are there, doesn't mean they have to be used. My case in point your honour; The original Sensible Soccer;  8-way joystick and just one button. There is a  brilliant response  from the lead designer Jon Hare in the following interview in regards to the following question

How was it possible to get so much playability out of one button when the new games have such huge, complicated combinations of controls?

"When you pick up an object or sign your name or punch someone in the face, you’re using one hand, right? The way we think is with one button movements. That’s what we use, that’s how our brains are geared to think. In football, all you can do is kick the ball. So we had one button to kick the ball. You could hold it down for a big kick, you could tap it for a quick kick, you could pull the stick for direction. It didn’t need to be any more complicated than that. As we’re seeing with the very best mobile games now, simplification is the key."

(for a very interesting article about sensible soccer click here)

I want my game to be an arcade game. I want it to have an arcade feel. So I am keeping to a joystick and I am seeing how far I can go with two buttons.

In terms of movement


There is an old arcade game which I am struggling to remember , where when you first moved the joystick the character would walk and the longer you had the joystick down they would speed up.  This is something I have been playing around with in the video above. I am sure there is a better way of doing it , but  I am currently using an exponential function something like the below


      //character moving from idle  
                if (setSpeed < speed) {  
                     setSpeed = speed;  
                }  
                //accelerate the character  
                expSpeed = expSpeed + Time.deltaTime;  
                setSpeed = 4 + Mathf.Pow(setSpeed,(expSpeed*0.8f));  
                //limit the speed   
                if (setSpeed >=runSpeed)  
                {  
                     setSpeed = runSpeed;  
                }  


Which if you plot gives the acceleration looking something like this


By no means perfect, but I hope its in the right direction.

In terms of buttons


One button to shoot, the other button to switch weapons is my current train of thought. What I think may change this over the coming weeks is; 

  • Dropping the knife or automating the knife
  • Abandoning the above in terms of movement and using a button to run instead 

We shall see ! 


Comments