As we round off this semester, there are still several spotlight posts ahead of us! This week, we are focusing on Items with Kathryn-Mae Eiland, Kalpa Anjur, and Angela Zhang. Both Kalpa and Angela are majoring in Computer Science, while Kalpa is a Senior, and Angela, a Junior; and Kathryn, a 2nd Year Master’s student at the Entertainment Technology Center. These three have designed and implemented four different items used to help and hinder the player and CPUs, making our game this year the “baddest” one yet!
Unlike previous spotlights, this post will first provide a run-down of the four aforementioned items and how they work, and then return to our usual Q & A format.
“Use this coffee to get a temporary speed boost!”
Inspired by La Prima and the other iconic coffee spots on campus, this caffeine boost will give our buggies a short burst of speed, perfect for cutting off opponents or taking the lead in the final stretch to the finish line.
“Wave your CMU banner to distract your nearby opponents!”
Our heart is in the work, and this item shows our Tartan pride! When a player or CPU uses this item, any enemy buggies caught in its vicinity will slow down and lose their momentum.
“Drop this wet water sign behind you and watch your opponents spin out!”
Pittsburgh is well-known for its interesting dialect. Paying tribute to our Pittsburghese, we have the “slippy” — because why use “slippery” when slippy has fewer syllables?
When a player or CPU uses this item, a puddle of water will form behind their buggy. If a buggy drives into this water and tries to turn, it will “spin-out,” losing control temporarily.
“Attach a gumband to your oppponents ahead of you and slingshot past them!”
And here’s yet another example of classic Pittsburghese! In Pittsburgh, we don’t have rubberbands: we have gumbands. The player and CPUs can use this item to launch a gumband forward. If the gumband attaches to another buggy, the user will be flung forward to overtake that buggy.
Q & A
For our questions, we will start with Kathryn-Mae and how these items were designed; then, we will go into the programming of these items with Kalpa and Angela.
Kathryn-Mae Eiland – Design
Q: How did you decide on what items would be in-game?
A: “I feel like it was a bit of a leadership roundtable choice. I came up with a pitch/idea for 4 different items – some that seemed good and some that seemed rocky. Then as a group we (the production team and art and code leads) talked through them to help make them more unique. This part took weeks of slow tweaks. In the end, we ended up throwing out one of the items and adding in another so there were 4 in total that feel like a good start.”
Q: What inspired these in-game items?
A: “I would say the games I mentioned before [in a previous spotlight post] were the inspiration, with Crash Bandicoot and Mario Kart being the biggest inspirations.”
Kalpa Anjur and Angela Zhang – Programming
Q: How did you approach implementing these items?
Kalpa: “Since the items were going to be used in a similar way, I started off with an interface and based the item classes off of that. With help from Angela, we also had an interface for using the items and had the players/AI utilize that. Then, we just had the items either instantly work after use (like the caffeine boost) or create a prefab on the track (like the Slippy puddle).”
Angela: “For me, I started off with taking the specifications, and trying to draw parallels to other games – for instance, the caffeine acts as a standard speed boost seen in many other racing games, like Mario Kart. After that, it was a matter of determining what effects needed to be applied directly on the buggies: increasing/decreasing speed, shooting forward, being pulled backwards, etc. Because similar effects needed to be applied on both the player and the CPUs, Kalpa and I worked a lot on generalizing the actions as much as possible, and created interfaces for both the item and the item-using classes to reduce the amount of repeated code.”
Q: Were there any items that were difficult to implement?
Kalpa: “Definitely the Gumband Ball, by far. Iterating over its actual functionality, getting the animation to look decent, and making sure the item felt okay to use were especially difficult for the Gumband.”
Angela: “I think the Gumband Ball might have been the trickiest – we had to determine when a buggy was in front of the user of the item, and shoot that user forward. Our first iteration of the Gumband was also a little trickier: in the beginning, the Gumband item would need to “hone-in” on the opponent buggy it finds and follow it (similar to a red shell in Mario Kart). It took a while to fine-tune this, as we had to make sure it wouldn’t just hone-in on a buggy right next to you and fling your buggy backwards!”
Q: How did you approach balancing items?
Kalpa: “A lot of trial and error. Testing it out a lot, getting playtester input, and generally making comparisons to similar items in other games was helpful in determining the optimal settings for each item (even now, we’re still making adjustments)!”
Angela: “When writing all the parts for the items, we had a number of parameters that could be easily adjusted: size of the AOE (area of effect) for specific items, how long the effect would last, etc. I think there’s just been a lot of iteration on these values to figure out what feels right!”
Q: Did you have any input in what items are implemented?
Kalpa: “Some of the ideas were a bit vague at first, so we had some leeway in implementing them in a certain way until design solidified the ideas. For example, the Gumband and Tartan Distract used to behave like green shells from Mario Kart and target other players.”
Angela: “There was a lot of discussion-specific implementation details, such as whether items should have a local AOE, if they should shoot off in a direction towards an opponent, or affect everyone on the track. The final results in the game now were the result of a lot of back-and-forth between us and the design team!”
Q: What was the most challenging part of implementing these items?
Kalpa: “In addition to the balancing, as mentioned earlier, it was also just solidifying the functionality of the items. For example, the Tartan Distract was implemented in a variety of different ways before actually settling down on the final version, which is what you see today!”
Angela: “I handled most of the CPU interactions with items, and there were two main challenges. First, from a technical standpoint, the NavMesh “navigation” component of the buggies would need to be carefully enabled/disabled to give me more control over the buggy’s motion when a power-up was in progress. The spinning animation for a slip effect, for instance, wouldn’t work correctly if the NavMesh component still had full control over the buggy!
The other main challenge was ensuring that the power-up effects would be clearly visible to a player. This was accomplished by adding somewhat “cartoon-y” effects to how the AI responds to hitting a Slippy puddle, or a large burst of speed upon using a caffeine power-up. I think exaggerating these effects gives a much better indicator to the player on what the CPUs are doing.”
Thanks to the hard work from Kathryn-Mae, Kalpa, and Angela, we’ve got four items to spice up our gameplay. A pivotal part of our project is the items buggies use — making Bigger, Badder, Buggier the “baddest” buggy game yet!