the character controller

 

it’s all about the players decision making process

The new third person character is modeled with the same gear I used when I did landnav training in the Army (mid 2000’s).

 

LANDNAV is a simulation. That means realistic details matter. But being a (mostly) solo-developed game, I have to be strategic about how I spend my time. Designing and building realistic details just for the sake of it might mean that the game never gets finished.

The criteria by which I decide what details matter and which don’t is this: Does it create a need for the player to have to make the same decisions that they would in real life?

LANDNAV is all about decision making. From an outside perspective it might look like boring walking, but for the active participant, there is at any one moment about 50 decisions to juggle with. It can be mentally taxing!

Much of the decision-making process landnav trainees will contend with centers around mitigating human error. The fact is, we cannot walk in a perfectly straight line, we cannot stay focused on every detail forever, and our moment-to-moment emotions can easily trick us into believing that we know something we don’t.

These are the sort of practical issues a person deals with when conducting land navigation in real life, and so these are the problems I want our players to contend with in LANDNAV.

With true-to-life player decision-making in mind, designing the character controller became a unique and complex endeavor.


 

basic movement -

On time and on target

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

The first task I tackled was Rate of Movement. An infantry soldier is expected to move 1km in ten minutes while carrying a 65lb ruck. And the average adult male makes 65-70 paces per 100 meters.

Initially, before the game included a third person mode with an animated character model, I solved this problem solely with math. I adjusted the speed of the character to cover the correct distance within a time limit, etc.
The math isn’t so hard that a dummy like me couldn’t figure it out, but where it gets complicated is all the caveats - only count pace while moving forward or diagonally but not sideways or backwards is one example. There is no way to get through all of that with planning alone, I simply had to get my hands dirty and just solve one problem at a time as they arose.

Later on I got some help in adding a third person character to the project, and even though this seems like it would complicate things, it actually simplified them! With an animated character, we only had to add some notifications on the animations timeline (right when the foot hits the ground), and from those notifications we can run pace count logic. And since I already had the numbers worked out for Rate of Movement, it was easy to adjust the animation speed to match.

The Debugger function prints updates to the screen which allow me to see how the Stamina and Imperfect Movement System are operating at run time.


In real life, a person cannot walk perfectly along an azimuth for very far. Subconsciously our feet just like to follow the path of least resistance, even if we are not tired.

The way to mitigate this problem is by identifying landmarks along your azimuth to use as a reference. In order to make sure that LANDNAV players practice this good habit, I had to design what I call the “Imperfect Movement System.”

The Imperfect Movement System takes into account both the characters rotation and forward axis and adds a tiny, imperceptible variance on every step. If you press auto-move and don’t touch the controls, over the course of a kilometer you will arrive either right or left from your target up to a couple hundred meters. Using landmark references along your azimuth is really important then!

Parts of the Imperfect Movement System in Unreal Blueprint.

The Imperfect Movement System also communicates with the Stamina System. The lower the characters stamina is, the greater Imperfect Movement deviation becomes. This mimics how in real life, the more tired you are, the more you tend to favor the path of least resistance (i.e. you tend to favor downhill slopes even if you don’t mean to).

The Imperfect Movement System also comes into play with foliage collision. Anybody who has done land navigation exercises around Ft. Bragg can tell you horror stories of “draw monsters” that stripped soldiers of their boots or swallowed them for hours only to spit them out the same location that they entered.

LANDNAV’s Camp Maccoy map also features such draw monsters, and when the character collides with them, Imperfect Movment is multiplied dramatically. This means that if you aren’t very methodical in maintaining your orientation, you could easily get turned around and come out the same side that you entered and not even realize it.


The “Test Zone” map features all sorts of obstacles I use to quickly test new features. Here a giant ramp lets me debug the Stamina System.

 The Stamina System works just like you’d expect. Run long enough you won’t be able to run until you’ve caught your breath, climb too many hills and you’ll be gasping for breath as well.

In a game you might default to just going straight line distance everywhere because, why not? You are just sitting on your butt, what difference does a big hill make? But in real life you will often times walk an entire extra kilometer just to circumnavigate some tough terrain, understanding that it will save time and energy in the long run.

So, to create the need for those decisions, I sample the angle of the ground and subtract speed from the player on slopes and also increase the stamin cost per step. Running of course subtracts more stamina per step.

Absolute realism can become a detriment to the fun factor though. I allow stamina to recuperate during normal walking then, which is not realistic, but players are playing for 20 minutes to a couple hours at a time, whereas real life landnav exercises might last for multiple days. So, some compromises have to be made.

This system is still in progress (December 2021) and is not communicated as obviously as it should be. In the future I’ll be adding sound effects and UI helpers to make sure new players absolutely understand what rigors they are putting their character through in an intuitive way.

Well, so much for the LANDNAV character controller. It has taken a few iterations to get it right, and there is still more work to be done, but as it is currently, I am happy to see that my play-testers seem to enjoy the fact that they must utilize all of the same methods in this game as they would in real life.