calit2

Calit2 Scholar and Professor Featured in Report on Videogame Project Course

2.07.03 - The videogame industry is going online. Specifically, to 'massively multiplayer' online games like Everquest and The Sims. Not surprisingly, faculty as well as students affiliated with Calit² are experimenting with game development, and one such project is featured in the current episode of "UCSD Conversations" on UCSD-TV. Highlighted in the report: Jacobs School Computer Science and Engineering professor Geoff Voelker, an academic participant in Calit², and a handful of students - including Calit² Undergraduate Scholar Tim Foley - who developed online games from scratch, for a senior-level computer science course.

They're video games you won't play at your local arcade, on your Xbox or Playstation, or even online. First person shooter games like Shrapnel and Robostrike. Racing games like Los Kartos Locos., or classic strategy games such as Spellcraft, or Io. That's because all five games were designed by computer science seniors at UCSD as their main requirement for one of the hottest courses on campus. Says CSE alumnus Sumeet Singh: "It was probably my biggest time commitment on anything ever I think, up to two in the morning every day working on the game. But it was fun." Adds Tim Foley, who took the course after finishing his stint as a 2001-02 Calit² scholar (working with layer leader Bill Griswold): "Of all my courses, this is the one that taught me the most. It was the most difficult, the one I spent the most time on, and also the most rewarding!"

"They are in the last quarter of their senior year in college, and what they really want to do is graduate and move on," says CSE professor Geoff Voelker, who created the course, and notes that enthusiasm is notable, given how hard students had to work. "They're in here for a full ten weeks working day and night, trying to get these games to work. And in the end, they all succeed."

Voelker is a popular professor in the Computer Science and Engineering Department at the Jacobs School of Engineering, he teaches fundamentals of programming and operating systems. Those courses are pre-requisites for Voelker's senior-level project course, held just once a year; only 30 students are accepted, but two or three times as many apply. The course is called "Software system design and implementation." But it's known better on campus as… the videogame course. "They get to take everything they learned as undergraduates and apply it to something they're very excited about-building a large-scale, multiplayer, networked, real-time, 3D game," says Voelker. "They take all the knowledge about algorithms, operating systems, graphics, and networking, and in this course they apply it, not just to a project we specify, but to a project they are very excited and very passionate about."

The class splits into five teams. Programming in C++, they must write 5,000 to 10,000 lines of code for an original online game that must be playable by at least 4 players simultaneously. Team members report and meet weekly with Voelker on their progress, but otherwise are left to their own devices. "We essentially give them a blank slate and they have to fill everything in. That goes for what you see on the screen, the type of game, the goals of the game, how you interact, and how everything is implemented under covers," says Voelker. "Often projects in other classes are very well specified. You are going to implement this and here is how you're going to do it. This course, it's just the opposite-I tell them to write a game that is able to support four players, and they have to do it in ten weeks."

Students have to write all those lines of code at a relatively rapid pace, and often things go wrong, and it's really tough to track down why. Notes Voelker: "They run into bugs that aren't well known and almost certainly I don't know the answer to these problems. So they have to learn how to solve the problem themselves. First, they have to identify it and figure out what problem is, then somehow through newsgroups, the Web, emailing authors of code, and so on, go and figure out how to solve the problem on their own. I can give them encouragement, I can give them leads, but I can't give them the answer."

Voelker tries to balance out backgrounds and personal interests, breaking each 6-person project into teams: "Students that work together can look over each other's shoulder and catch mistakes and bugs early on and fix them. That way, more than one person has an understanding of how that part of the game works." Each member specializes in one of three areas: graphics, underlying software, or networking. "Behind the graphics part there is a simulation environment, and since it's multiplayer, there's a networking component as well," explains Voelker. "The game itself is complex and multi-threaded. So all the threading they learned, all the concurrency and synchronization they learned in their operating systems course, they're going to apply here just to handle multiple players running at the same time. It's a very large software project and software programs are complex. Managing that complexity takes a bit of both technical talent and creativity in manufacturing that kind of software."

After graduation, most computer science students end up working on large, complex projects that require teamwork and organizational skills. Voelker says the videogame course is a dry run for the real world. "The skills that they learn in this course are applied not only to a games company, but any software engineering position they may go into. One of the explicit goals of the course is to have students work on a project that is unlike any other they've worked on in other classes," he says. "It's something they'll be doing all the time when they go off in industry in the next stage of their career, whether it's programming for a company, or working on research in grad school. These are students I'd love to work with in graduate school; they're students companies would love to hire."

While the course gives students a good sense of what it takes to design a game from scratch, Voelker insists that it's a lot more than fun and games: "A lot of students who go into computer science grew up playing games and like it. It's a hobby they'll continue to have, but only a few students in the course go into the games industry as a profession."

For those who want a career in game design, Voelker gets top industry executives to come in and give students an insider's look at how it works. In 2002, executives from two San Diego-based companies, Sony Online Entertainment and Angel Studios, talked to the class. Sony Online manager of technology Matt Sivertson, who got his bachelor's degree in computer science from UCSD in 1999, researches new technology for the company best known for Everquest, its massively multiplayer online game. "When I spoke to the class, I mainly focused on how to make a massive multiperson game, which is what we focus on in this company," notes Sivertson. "They were all very enthusiastic about it. There was no shortage of questions-we actually ran out of time."

Sivertson is now working on the next generation of Everquest as well as an upcoming online game called Star Wars Galaxies. And after seeing Voelker's students make their presentations last June, he hired two of them. Sivertson says he appreciates that they came in knowing the basics of how to create a videogame, and with a major project to show for it. "To me the biggest thing is that this class is a lot of work and it takes a lot of time out of their day, so if they've completed course, they must really like videogames," says Sivertson. "That's something that we want at Sony Online: someone who is enthusiastic about the gaming industry."

One of the new recruits to Sony Online is Andy Skirvin. He now designs games for third-generation cell phones, even while he works on a master's degree at UCSD. "Professor Voelker's class was the one class in computer science at UCSD that I took that most closely approximated a real-world environment," says Skirvin. "You have a team of six people and everyone has their roles. It's a very self-motivated class; the professor doesn't make you do the work, it's the class that makes you do the work."

As a senior, Skirvin worked with five other students on the racing game Los Kartos Locos, including Sumeet Singh and Chris Rosner. "I had never really worked on components like sound or graphics, because you usually don't get to in class projects, so that was something new I was going to be doing," notes Singh. "I wanted to take all my work from college so far, and have a really good synthesis and culmination of all that work." Adds Rosner: "This class has taught me a lot about what's involved in a big team project, how much work is involved, and what sort of skill set you need to succeed in making games."

Among other games produced by Voelker's most recent class: Spellcraft and Io are classic strategy games, although Io is turn-based while Spellcraft has everyone moving at the same time. And there were two so-called "first person shooter" games. "In Shrapnel," says Voelker, "you're in a souped-up space suit, inside a rotating spacecraft orbiting a planet, and you are in teams going around trying to hunt down the enemy and eliminate the enemy before they eliminate you."

Graduate students Panayoti Haritatos and Tim Foley worked on Shrapnel during their senior year. "I'm a game player, that's what I like to do in my free time," says Haritatos. "I have somewhat a creative nature, so the chance to be involved in making a game is something I wanted to do." Foley agrees. "When you're enjoying what you're working on, it doesn't matter how much work it takes," he says. "You're going to do what you can to make it the best end-product you can come up with."

Robostrike is also a classic first-person shooter game, and the student designers made it take place on the UCSD campus. "Even the Geisel Library is apparent," says Voelker, "and there are mutant robots everywhere, and you have to take care of shooting them down the mutant robots."

The course whet many students' appetites for more: of the five students interviewed for this story, one is already working in the videogame industry, and three others hope to follow suit now or after grad school. Explains Foley: "Everybody tells you game programming is the most demanding, worst paying programming job you can find, and it really takes dedication. So I took the course to find out if I had that kind of dedication." Asked if he does have that dedication, Foley replies: "Definitely!"

"The students did great. They not only met my expectations, but they far exceeded them. It's just amazing to see what they're able to do in just ten weeks," recalls Voelker. "This is why we have the curriculum that we have in the computer science department. If you go through the curriculum, by the end you'll have the skills and the talent to be able to do a course like this." Sony Online's Matt Sivertson agrees, and expects to continuing hiring students out of the program. "Honestly, if I am looking for a new hire right out of college, the first place that I would go is to see who is coming out of that class and see what they have done there," he says. "They are going to know what needs to be done and they are going to be a step ahead out of everyone else."

# # #

UCSD-TV report
Watch a streaming video of the UCSD-TV report.
[View]
(Real Player Required)
 

Geoff Voelker
Geoff Voelker, Professor, CSE
Tim Foley
Tim Foley, Calit2 Undergraduate Scholar