Filtering by Tag: visual scripting

A Stampede of Sheep pt.2: A Machine for Sheep

After my tantrum last week, I took a short mental for some self discovery. I laughed, I cried, I reexamined what it means to live, and then I stood up and from my ten minute tirade and went to bed. Upon waking, I immediately solved Horatio's issues (A navmesh issue where I was asking Horatio to move somewhere he literally could not go) and moved on with the stampede behavior.

Lately I've been working on a new enemy for Kyon, one whose gaze petrifies and terrorizes poor little sheep. Unfortunately, I'm not able to talk much about him yet while he's in development, but I can leave you with his prototype Unreal Mannequin man!

Thanks for reading!

Christopher Miller

Lead Programmer

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