Avast Ye

In this "ant-venture", pirate around as queen-ant Captain Kate, leading your miniature crew of pirate ants through the oversized undergrowth to recover a stolen booty from enemy bugs. ...learn more

Project status: Published/In Market

Game Development

Groups
2020 Intel University Games Showcase

Intel Technologies
Intel Integrated Graphics, Intel Python, Intel CPU, Other

Links [1]

Overview / Usage

Avast Ye is a third-person action-adventure game where you play as an ant pirate, Captain Kate, and enjoy the thrills of commanding your ragtag crew in a macro-miniature world of undergrowth and discarded human items. Your crew mates consist of three other insect characters, one joining part way along the journey.

The objective is to lay claim to the trove of chocolate gold doubloons at the distant ship-in-a-bottle. However, enemy cockroaches have established themselves in the area, guarding gold chests and the path to the ultimate treasure.

The novelty is that, as a player, you not only control the captain but also command your crew members by aiming them at groups of enemies. You truly are a captain! We created a novel follow-up system where crew members can follow up after captain knock up attacks and the captain can follow up after player-directed crew attacks. With this system, you can still be in the middle of the action as the captain, swinging your sword to your heart's content, but also have the fun of directing your crew members to fight when and where you want.

One interesting problem our team had to solve was how to have the crew of 4 characters but keep it simple and feeling like you are the captain in control. We developed a simple interface and interaction where each of the other crew members has an associated button which executes either a commanded attack or a follow-up depending on the context:

Right Trigger = Captain (follow-up)

Right Bumper = Captain (attack)

X = Bull Ant

Y = Witch-Doctor Moth

B = Fire Ant

There are two ways for the captain to trigger a crew follow-up opportunity where the player may press another crew member’s button to follow-up with them. These attacks which knock enemies into the air are the final swing of a basic attack combo and a dash spin attack (A button dash + right bumper attack). You can also set up a captain follow-up by commanding crew member’s with their buttons. If you hold down a crew member’s button, an aiming system implemented by one of our team members allows you to target an area with their attack. This way every character has a way to both set up follow-up opportunities and follow-up themselves.

Each combination of attack and follow-up between captain and crew members is different, so the system provides for a ton of emergence and the room for players to discover what they enjoy or what is effective.

Our team wanted the crew members to have interesting designs which fit their character, this led us to 1) a bull ant who can ram and stomp enemies, 2) a fire ant who fires and throws bombs, and 3) a moth witch-doctor, who can fly around, disrupt, and pull enemies into the air.

Another characteristic that makes this game fascinating is the world! Artists had to figure out what pirating in the undergrowth looks like. The large grass especially gives a sense of scale, so you feel like a small being in a big world. We also wanted to integrate human-made objects into the world, such as forks and cardboard, to help add to the scale but without making it look like too much litter or a mess. So the cockroaches' forts and outposts are built up from human objects, which makes for some very interesting design and visuals, adding more color to a principally verdant backdrop.

There is also a river of bubbling, hazardous soda winding through the level. The liquid was a tricky problem to solve, but students looked at a lot of sodas and figured out how to get the colors, refraction, and bubbles all working together within 60 fps.

All in all, this project provides both a fun, original combat experience and a captivating exploration experience through its striking world.

Methodology / Approach

Developing Avast Ye required us to bring people from many different backgrounds together and find a pipeline that worked for everyone, allowing them all to do their best work. We combined students from computer science, animation, illustration, film, and music majors.

Part of the difficulty here was that the majority of students working on Avast Ye had little or no experience in a group project this large. So we spent a large amount of time figuring out a simplified pipeline that would ease this learning process, helping artists and engineers to communicate.

One example is how we used Tortoise SVN over Git for our source control because of Tortoise’s easy to understand UI that allowed people not used to source control to learn it faster. This made artists able to more easily integrate into a source controlled project over different methods they previously used. Another example is when bringing assets through the pipeline, we had a system where artists would create the end files such as FBX’s or textures, and programmers would handle bringing them into the engine and the games code. This is another example of us trying to increase the speed of our workflow, by allowing artists to focus on art and not need to worry about finding the right locations in the game’s code for them to place their assets.

We used Unreal Engine 4 to create Avast Ye. It had many features that really helped us in developing the game. One main feature was the blueprint scripting system that allowed us to rapidly test out implementation of gameplay and allow non programmers to make adjustments easily. The material networks and lighting systems were also very intuitive and allowed us to make many Material Instances to rapidly fill the world with easily editable materials. Artists could come in and tweak their textures via these Material Instances easily, making it so that they did not always need to go back and make changes to their textures. Rather we could slightly tint or adjust roughness as need be.

We also utilized Unreal’s level streaming systems to separate the game world into many layers so that people could work on the level at the same time but in different areas. It also allowed us to load in and out different sublevels so that we could have the map change as players progress and affect the world.

On the programming end we rapidly prototyped builds to figure out the gameplay and then refactored shortly thereafter. Each time our code would become more solidified into our eventual end product. But by making quick and dirty builds to verify what the gameplay needed to be, it made the time investment lower, so that refactoring was not as costly. This allowed us to experiment with many different structures to our code base, to figure out which ones best allowed us to create the experience.

The core mechanic of Avast Ye is its teamup system and it took a long time to find the best way to implement it. The main issue was making sure any character action could be interrupted at any time to go into a teamup action. This required making sure that all Event Dispatchers and timers all properly were disconnected so that team up actions could proceed smoothly. To this end we made the normal actions characters do be very simple so that interrupting them was not very complex. More complex actions we separated into multiple actions that would be called in succession with each one knowing how to interrupt itself, therefore simplifying interruptions.

To make sure that communication between the player and their companions did not break down we had a separate TeamManager class that kept track of both the player and the companions. When the player or allies create a follow up, it would notify the team manager, and the team manager would make sure that the proper UI was displayed and keep track of all necessary information for that follow up, and handle timing it out if the player never uses it. When a player would use the follow up, the manager would use the proper teamup action class and run its behavior, and shift control of the player to that action, and once it was finished, restore the players control of their character.

Another important element of the game is the presence of your allies. We wanted to make sure that players never forgot that they had allies with them. This involved making sure that as the player would move around in or out of combat they could see their allies and feel as if they had a team with them. Some of the ways we did the AI on the companions to accomplish this was to skew their targeting of enemies to favor one's closer to the player. That way they would converge towards the player. Also if they were beyond a certain distance from the player for around 6 seconds they would try to move to the player, ignoring any enemies in their way. Any time you would command the fire ant he will come next to you first and then go an do his action.These features as well as a few others made it so that the player almost always sees the crewmembers around them, and when they use the allies it feels like they are commanding someone to do something, and not just the player using an ability on their own.

There were some other examples of little tweaks made to gameplay to help with this experience. For example, when you do a 3 hit combo and have the bull ant hit an enemy knocked into the air by charging into it. The direction the enemy goes is not related to where the bull ant was, but rather where the player is facing. Targeting was based on areas, rather than a specific target, which helped players who are not as good at aiming, and enforced the “commanding” feel by when you command them at empty space, your crew members still do something.

Technologies Used

First and foremost, our games were developed on PCs with Intel processors. Some of the machines were even the newest i9s, which allowed us to push the limits in discovering technologies and prototyping new ideas. Definitely a critical part of successfully finishing the project. A fair number of Intel powered laptops with integrated graphics cards were used as well.

Hardware

  • Intel Xeon
  • Intel Core i9
  • Intel Core i7
  • HP Z420
  • NVidia GTX
  • XBox controllers
  • Alienware laptop

Software

  • Unreal Engine 4
  • Windows 10
  • Houdini Engine
  • Substance
  • FMod
  • Maya
  • ZBrush
  • Tortoise SVN
  • Steam
  • RenderMan

Production

  • Slack
  • Asana
  • Microsoft Excel

Collaborators

Comments (1)