So, lately I've been thinking about how to plan out the character animation for my 2d side-scroller.
Now, because I want to do things a little differently than what I've seen so far in terms of 2d games, I also want to change the way you're controlling your character - meaning, I want it to feel more believable than your typical side-scroller using momentum as a key.
All of this is totally based on whether or not this is feasible in the end. If it's too complicated or feels like crap, I'm gonna cut it, but I'd love to explore this a bit more.
Now, to get an image into your head, let's compare what it usually looks / feels like when you're controlling the player in various games:
Castlevania:
The controls are VERY direct. There's no momentum building up in movements, the character goes from walking to running without any delay, same with jumping, turning around, etc.
Then theres' Another World / Heart of Darkness / Flashback, etc.:
- Another World
- Flashback
- Heart of Darkness (Probably the best example in this category)
This was basically the first try to give controls more believability. There already was a sense of momentum being conveyed, if ever so slightly. For Another World and Flashback, they used Rotoscoping, which explains why they changed the controls a bit. Heart of Darkness took it a step further. The controls weren't really 100% direct, the animations were darn smooth and awesome for its time and as you see in the video, controlling the character feels very different than controlling your typical 2d character like Mario or your Castlevania Alter Ego.
Limbo copied those games and headed into a similar direction:
http://www.limbogame.org/
This is a tech demo and was never actually real time (so the character animations are actually 'just' animated / pre-rendered for each situation), but it's darn fascinating to study the animations and to wonder if that stuff could still be somehow done in a 2d game, where the player has to have direct access over the character all the time.
Now, let's look at 3d for a second. One of the games that had shitty and awesome controls at the same time was Shadow of the Colossus. Let's take a look at the first boss battle (no spoilers here, that's like 5 minutes into the game):
Now, as you see, the controls are very different. It always needs some time to build up momentum and climbing a colossus is a real challenge because of the momentum. You have to keep your grip and balance yourself out, momentum is _always_ an issue. It felt believable, it felt like no other title before, the controls were a bit too sluggish and awesome at the same time.
Now, I know there are a lot of people out there who just hate it when there's a slight lag in the character controls. Still, I think for a lot of games, especially in a field that has been explored SO often before, changing the controls can fundamentally change the experience. I'll back that up with some concepts and a prototype if I get it to work later on, but we'll see.
I think it's safe to say that absolutely direct controls feel a lot more arcade-y, oldschool, like Castlevania / Mario / MegaMan. Games where momentum has to be built up often head into a very different direction.
Now, the question is how we'd properly build up momentum using the tools and resources we have. So, in a 2d game, how could we manipulate the controls so that momentum could be built up?
My direct guess is that we'll 'just' need to balance animation, acceleration values and hook that up to the input. So the input would either be a digital scheme (like in the traditional sense, if you press the digipad left / right you simply walk, if you press another key + left / right you run) or an analogue scheme, so if you push the analogue stick into a certain direction to a certain degree, you'll walk and if you push it all the way, you'll run.
So!
A simple example of how momentum could be integrated into the controls would be this:
(I also created some very simple, crude graphs for the people that need a visual aid, just trying to get my point across)
I press right on my digipad and my character starts walking. We only build in a very slight sense of momentum into the walking phase, cause you'd want walking to be direct. You don't want to feel a lag every single time you move your character. So it'd probably look like this:
<img src="http://thomasmahler.com/files/construct/images/walking.jpg">
Now comes the interesting bit:
You hit the run key and keep pressing right on the digipad. 2 things happen: We swap animations from a walking animation cycle to a transition cycle that'd transition walking into running and we'd gradually build up speed. Once the transition animation is over, we switch to the full-blown run cycle. So, If the walking speed was 100, we now need 1000ms to go to 300 and our character is sprinting. Here's the graph again:
<img src="http://thomasmahler.com/files/construct/images/running.jpg">
Now - In order to not break the illusion of building up momentum, what happens if we stop now? If the player lets go of all keys, basically telling the program to stop heading into that direction, like letting go of the gas pedal and stepping onto the break pedal.
We'd need a deceleration phase. If the player would come to an instant halt, we would completely break the illusion, so we'd need something like going from 300 to 0 in 1000ms again, having the player to have a stopping distance as well. So if you're running towards a cliff at full speed and you didn't plan in the stopping distance, you'll fall down even if you let go of all controls right before the cliff - because of the momentum that you build up during the sprint. Also, an interesting phenomenon when I'm sprinting is that I need quite a bit of time to decelerate, but once I'm at a certain point, I can pretty much get that instant halt. So we have a gradually decreasing curve, but at a certain point, we can almost instantly come to a stop. Here's the graph:
<img src="http://thomasmahler.com/files/construct/images/deceleration.jpg">
That was the shitty thing about 3d - the industry completely stopped all their 2d efforts and I'm pretty sure we still could have had some very cool, new control schemes and gameplay ideas based on controls that aren't complex per se, but more believable and are based on more complex systems than the simple, digital control schemes that we're still using in 2d games since the 8 bit era. If we'd scale this whole idea up and let characters interact with other characters or objects based on momentum, we could create very unique experiences that haven't been done before.