Filtering by Tag: Kyon

Barks, Bites, and Baddies: Defending the Herd

When developing Kyon, we had to make sure to maintain a strong connection between the player and the core concept of being a sheepdog. My previous blog post covered the herding aspects of player mechanics, but another aspect of being a sheepdog is protecting the herd. 

Designing combat systems for Kyon was much more focused on enemy AI design rather than player ability mechanics to maintain variety of encounter. Throughout the game, the player must defend the herd from enemy AI opponents such as cultists, wolves, and mythological creatures. Kyon, being a dog, has limited combat abilities. To deal damage, the player can use a bite attack, or a sprinting charge attack. 
 

bite.gif

The bite is fairly basic, being a general purpose attack that deals one increment of damage per successful strike. It's what any given player would expect of a dog character to be able to do. 

 

The sprint attack sends Kyon in whatever direction he is facing at the time of activating the ability at a high speed for a set distance. Kyon will deal one increment of damage when successfully colliding with an enemy, but it also serves other utilitarian purposes. It's useful for evading enemies when low on health, closing with fast moving enemies who are difficult to catch up to, or quickly getting around the flock if the player needs to quickly change their direction.

So being that Kyon's combat abilities are limited, the design goal was to keep encounters varied by having opponents respond differently to Kyon's abilities. One way is through bark commands.
 

he cultists, for example, are scared of Kyon's bark. If the player uses any bark within range of a cultist they will drop a sheep if carrying one and run the opposite direction for a time. This helps the player manage the herd when taking on multiple cultist enemies.

 

However, with wolves the barks do they opposite. Wolves aren't afraid, and will actually prioritize Kyon as a target. This increases difficulty for the player, since these bark commands are an important way to manage the herd. At the same time, players can use this to their advantage and aggro the wolves away from the herd when necessary. 

These bark and bite abilities can be used in more complex ways utilizing the environment in other scenarios. During the final boss fight, for example, Polyphemus is blind and searches for the player. The player cannot damage Polyphemus, and will take damage from him when physically close. Instead, the player must use bark commands to attract him towards dangerous environment actors that can stun Polyphemus. This is when the player can get a few hits in. 

Well, that covers Kyon's basic abilities for combat. For my next post I will be writing about environmental hazards.

Until next time.

-Jack Lipoff
 

A Stampede of Sheep pt.1

While our flock behaves quite well and every sheep follows a strict policy of herding ethics, we at Sheeple decided that our sheep needed to live a little, and could perhaps devolve into a chaotic stampede when certain criteria were met. "Leave it to me," I said to them. "It'll be easy and then I can get back to work on new boss enemies." This behavior is tough, and not because finding the logic is difficult.

Our main Ram, Horatio (as I call him), has been a handful since the onset. At first my problem was figuring out how to get Horatio to move away from the player, which was no problem. Next, Horatio developed a fondness for fire and walls, which I corrected. Our last big problem was that Horatio was actually incapable of dying, which I ultimately corrected after a hard-fought battle with Unreal's collision settings.

Now Horatio is once again causing us issues, in that he is actually refusing to stampede. Actually refusing to move at all in fact. He simply stops, waits for the end of the stampede timer, and then resumes normal behavior.

My logic thus far has revolved around getting our character, checking the direction he is facing, and then just moving along that direction a certain distance. Sounds simple, move the direction you are facing. So why does he suddenly feel the need to stand obstinate against those who created him?

My next post will revolve around (hopefully) how I managed to fix this problem. Till then, thank you for reading!

Christopher Miller

Lead Programmer

Taking Flight

When Jack and Jon came to me with a design for a flying enemy, I was actually quite confident in my ability to create flying AI. Unreal 4's movement component had a flying section, and keeping to the navigation mesh (Navmesh) used by all the other AI would be no problem. Except the flying movement for characters has not be given the ability to follow the navmesh yet, and we need this enemy (the Manticore) to fly over, not around, obstacles.

 

manticoreBPview.jpg

Whenever we create a new AI actor, first we setup the character and file structure. This insures that anyone who needs the actor is able to quickly get in and pull the actor out for testing or set dressing.

The challenge for this character compared to our others lay in the need for this character to NOT follow the navmesh. For this purpose, I began to think of how to disable the need for navmesh. When I asked Jack and Jon again about it, they told me that the manticore never really needed walk on the ground. This made my job a lot easier, as I was able to completely disable its character movement in favor of a system of target points.

As the manticore approaches its target points, it will randomly pick another target and interpolate its forward vector towards the new point. This gives the actor a nice curve whenever it turns, and will look much better when it is given its animations.

 

Though it's flying, we still have a ways to go until it is game ready. Next on the list: implement sheep targeting behavior and I am looking into getting it to fetch coffee in the mornings.

Christopher Miller

Lead Programmer