Filtering by Tag: UE4

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

Core Mechanics: Herding Sheep and Having Fun Doing It

When we first began developing this game, the first and most important aspect of the game that was examined was the player's core mechanic: sheep herding. While there have been a number of video games in the past that focus on guiding friendly AI through treacherous environments, we could find very few non-strategy titles that centered on mob behavior controlled with passive  player guidance. This made the design process difficult, as I had few examples to draw from. Designing, refining, and implementing the core herding mechanic required a great deal of attention and care.


Player Movement

The first step was determining how the player would move and interact with the world. We had already settled that the game would have a top down third person view with the most minimal UI possible. A key part of this was sticking strictly to what a dog would be capable of. What can Kyon do, and what can he not do?

The player moves freely in a 360 degree range and can sprint short distances. The player's movement had to be as smooth as possible with the joystick on a gamepad, because the player's steering affects the herd's steering. 


Corralling Sheep

Next, I had to determine how the player interacts with the sheep. Any time the player comes across a lone sheep, they can have that sheep join the herd by touching the sheep.
 

Originally, we had an invisible AI herd actor that was repelled from the player, and the sheep would continuously follow that invisible actor. This allowed the sheep to always move in the opposite direction of the player. This, unfortunately, created issues with sheep jamming up on each other trying to get to the herd actor, could cause issues if the sheep somehow were separated from the herd actor, and reduced the player's ability to quickly visually understand where the flock's center of gravity and direction of movement is.
 

Herding Sheep

Instead, we introduced Horatio, a ram with golden fleece that guides the herd. This served to give the player a much better visual understanding of where the herd is going, and also reduced the amount of sheep pileups that occurred. Again, making sure the player feels like they are in control of not only their character, but also the flock has been the top design priority for this game.
 

Bark Commands

The player uses two bark commands to control the flock: a stop bark and a go bark. The stop bark has Horatio immediately stop moving if within range, thus the flock stops. If the player uses the go bark after this, Horatio will resume his normal behavior. If the sheep haven't been ordered to stop, the go bark will make them briefly move much faster.


Picking Up Sheep

The player has the ability to pick up and carry sheep if they so choose. This is useful for getting trapped sheep, stray sheep taking too long to get to the flock, or fixing traffic jams.

 

Each of these core mechanics went through multiple iterations, which allowed Chris and me to refine interaction between the player and the sheep. To me, this was the most important factor of the game. The herding system is relatively novel, and being the core mechanic of the entire game meant that it had to immediately be enjoyable to navigate the world and guide the sheep. It wouldn't matter about how good any other aspect of this game was. If the herding mechanics don't feel responsive or enjoyable to the player, the game is a failure. Fortunately, we have been receiving very positive feedback from playtesters indicating that they enjoy the herding mechanics. However, there's always more to refine and improve and we will continue to work on it. 


Jack Lipoff

Product Owner
Lead Designer

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

Hello, world!

Greetings! 

This is the development blog for Kyon, a student created video game with settings and characters inspired by Greek mythology. This blog will be where we, the developers, will describe our practices, techniques, and thought processes that we use to create our vision. Stay tuned to see examples of art, programming, and game design concepts and assets that we created to make this game a reality! 

 

 

Jack Lipoff
Lead Designer
Product Owner