By Kimberley Clementi
A timed race between folding chairs and bean bags. A fast-paced beauty pageant where only one racecar wins the crown. A farm with a dark twist. A game of cat and mouse. A magical battle in a medieval castle.
In a mere 10 weeks, that’s what computer science students in UC San Diego’s Department of Computer Science course CSE 125, dubbed the “video game class,” tackled with z-values, vectors, lines of code and 3D effects. Students pulled out all the bells and whistles – or at least digitally recorded soundtracks of them.
But what they learned went beyond fun and games. Students in CSE’s Software System Design and Implementation course spent spring quarter discussing both creative and highly technical questions related to their class project. The course emphasized the development process as well as one overarching goal: to design, build and implement a real-time, 3D multiplayer game as part of a team.
The popular course has been taught by CSE Professor Geoff Voelker for more than 20 years.
“On the first day of class in week one, we form five groups in the course,” said Voelker. “After we have everyone together, they start designing. They create a lot of concept art. They’re trying to picture what it is they want to be able to achieve. And then, by week two, they start implementing.”
From there, students have eight more weeks to decide on the features of their project, specify its requirements, create a schedule and implement their design. To make the course more exciting— and challenging— the groups give a public demonstration at the end of the course, which doubles as their final exam.
On June 3, team demos continued a long streak of engineering skill and pure entertainment. During the two-hour live event, five games – Chairioteers, Skrrt Skirt, Farmers Market, The Meoze Runner and Eternal Ritual – debuted on a large screen in the Qualcomm Institute auditorium in Atkinson Hall. Audience members were picked at random to play against members of the game’s development team.
“There’s really something magical that happens,” said Voelker. “By the end of the quarter, what’s really incredible is that it all comes together. It just looks amazing. Just incredible.”
As Team One took the stage, they invited four competitors to grab their favorite chair and enjoy a quirky and spirited race across the UC San Diego campus. Inspired by “rollie chairs” in the CSE department (and by illicit late-night student races down its hallways), Chairioteers allowed players to select a classic swivel, a folding chair, a recliner or bean bag to race each other and the clock.
As players adjusted to the mechanics and speed of their selected chair, the Chairioteers’ game map zipped them past a gorgeous sunset, the iconic Geisel Library and the towering, multi-colored Sun God. A mini map on the top left helped players navigate the course. An original soundtrack, “Hold onto Your Seats,” played in the background.
That’s when an unexpected twist had players holding onto their seats for real. Audience members who scanned the QR code displayed on the screen could tweak the game in real-time. Every 15 seconds the audience voted on a web page to determine what happened to players in the game.
Chairioteers was written entirely in Rust, a programming language the team taught themselves during the first two weeks of class.
“Once upon a time, there were four cars. For the purposes of this story, we should give them names. How about Bill, Berry, Bevan and Bandrew,” began Emily Zhuang, prompting laughter, as the suggestions were playful adaptations of team member names.
Zhuang then introduced a fifth racecar, Baiden, named for yet another team member. But unlike the other cars, Baiden wore makeup, lipstick and a shiny, satin ribbon, which created a stir. All the cars wanted to look as fabulous as Baiden. They wondered which one of them could look the most glamorous.
With Mario Kart nostalgia and the unmistakable pink and pretty trappings of a beauty pageant, Skrrt Skirt’s creators set out to answer that question. The multi-player party game gave competitors one objective: to win and hold the pageant crown the longest.
Sporting lipstick, mascara, and girly flair, racecars collided, stole and used various power-ups, such as a hair dryer speed boost, to obtain the crown. As the race progressed, makeup dripped down the screen, inhibiting visibility. A bar at the bottom indicated when each car’s makeup had completely worn off, requiring a pit stop to touch-up lipstick and fully recharge.
Team Two built their game in C++ and used OpenGL, an application programming interface, as their graphics engine.
As Team Three took the stage and guest players began selecting characters in Farmers Market, it appeared to be the beginning of another bucolic farming game: there was Bumbus the bunny, Swainky the frog and Gilman the pig. Then the team introduced Pogo – a ghostly character with a ghoulishly grinning pumpkin head – offering the first indication the game had a dark side, too.
“Obviously, a beautiful farming game happens a lot. So we decided to let the players poison each other’s crops, destroy each other’s farms and intoxicate each other,” said Danica Xiong.
“Farmers Market is a 3-D, third-person game where you can destroy your friendships or have a great time farming,” added Xiong. “Whoever makes the most money wins.”
While the timeclock ran, players purchased vegetable seeds at the shop and planted them on farm plots. Tomatoes, carrots and corn grew rapidly along with “super oats,” which could replenish stamina. As day turned to night, players harvested and sold crops to earn money and make additional purchases of seeds, water, watering cans and fertilizer.
That was one strategy. The shop had other merchandise for sale, too. Sabotage items – nets, shovels and poison – equipped players to steal veggies and destroy farm plots. They could also purchase items to inhibit their opponents’ abilities.
The Meoze Runner
Team Four loaded The Meoze Runner onto the auditorium screen, displaying a long, lean cat that stood at one end of a complex maze. Meanwhile, a team of three animated mice prepared to run the network of pathways and complete a series of tasks representing the UC San Diego campus and the steps to successfully graduate.
This game of cat and mouse took audience members on a one-of-a-kind tour of UC San Diego, providing a mouse-eye view of iconic landmarks such as Geisel Library and Fallen Star. While one mouse searched the maze for a diploma and delivered it to the goal, the other two mice had stationary tasks to complete, such as stacking books and matching cards in a memory game.
To win, the mice had to finish all three tasks before time ran out. To do this, they had to elude the cat. While the mice held an advantage in numbers, the cat was designed to move with more speed. Sound effects of meows and squeaks intensified the action, each time the cat drew close to its prey.
“It looks like one of our mice dropped some ketchup. That is horrible,” exclaimed Aidan Denlinger as the cat caught and killed a mouse before disappearing into the maze. “This gives the cat a bit of a horror element. You don’t know when it’s going to come out.”
The scene was a medieval castle. Two twin elves crouched expectantly in an elevator as it slowly descended a tower to the courtyard below. The doors opened to a dark, dramatic sky. Somewhere in the shadows lurked the enemy: a team of elfin beauties equipped in the deadly arts of pure magic.
This was the realistic playground created by Team Five for Eternal Ritual. As game play began, two teams of elves stealthily hunted each other in the courtyard. The characters ran and dropped into forward rolls, all smoothly animated, to move faster and avoid taking damage. The left side of the screen displayed four types of magic the players could switch through as they battled the opposing team.
“The first magic is shooting fireballs,” explained Kelin Lyu as two players from the audience competed against members of Team Five. “The fireball collides with the terrain and deals damage only to your enemies.”
“The second magic is a chilling storm that deals continuous damage. It consists of many different types of particle systems to create the clouds, the dust, and the lighting. The third one creates lightening as a super fancy light and particle system, which is really cool. The last one is the ultimate,” said Lyu, as players cast a fire-breathing dragon head like an extension of their elf’s arm.
“It deals a lot of damage but consumes all your energy – just like CSE 125,” he added to knowing laughter from the audience.
Team Five developed their own powerful game engine, an OpenGL engine written in C++, to support the functionalities of their game and to render 3D objects above user interface (UI) elements.