Reflections on Computational Media

This is the paper I turned in for my senior design “capstone” class in which I’m supposed to reflect on how my coursework relates to the work I’ll be faced in a job after I graduate. I’m posting it because a number of students in Computational Media have asked me for advice about classes and other projects, and this is probably the most honest summary of my take on Tech I’ll ever write.

My time at Georgia Tech is finally coming to a close. I absolutely love being here and I certainly don’t regret enrolling as an out of state student. I’ve shown my school spirit through founding Only at Tech and representing Tech in Indiecade and the Global Game Jam, and I’m always looking for new ways to give back. More so than the classes, the people in Computational Media have helped me achieve success beyond the school and I’m very grateful for the opportunities I’ve been given that have shaped me as a designer, producer, and person.

For my capstone project, I was given the chance to work on a new game to give Georgia Tech an entry into the annual Independent Games Festival – the first time undergraduate students have been allowed to do so for course credit. To make it happen, my group had to start planning ahead of the fall semester. We built a playable prototype for the game in the spring and showed it to industry professionals for feedback during our summer internships. By the first day of class, we already had a detailed development plan and tasks for every member of the team.

Our game, A Sticky Situation, is a puzzle-platforming game for the PC and Xbox 360. Players control a piece of gum who ventures outside the world of the gumball machine in search of his girlfriend who was vended away to a customer. I came up with the original concept and the gameplay mechanics, designed a couple levels, created all the marketing materials such as the website and trailer, and composed roughly half the game’s music. The team spent entire weekends (including every day of fall break) at my apartment working on it, averaging about 40 hours a week on top of our other classes and commitments. Our final product ended up being something that we are all very proud of, and it’s currently being judged in the Independent Games Festival. We’re anxiously awaiting to get the results in January because we believe it has a real chance at being selected as a finalist.

For as much as it seems like a culmination of my time at Tech, it’s hard to believe this capstone class was only four credit hours of the hundred or so I’ve taken in Computational Media. There were a few other courses I took that were related to game development of varying helpfulness to this project.

In the first semester of my sophomore year, I took LCC 2700 (“Introduction to Computational Media”) and CS 2261 (“Media Device Architecture”). Talking to students who had already taken them, I was excited that I would have the opportunity to make games after being stuck with core courses my freshman year.

LCC 2700 was an interesting class on multiple levels. I had Brian Magerko as my instructor, and he would later sponsor my capstone project. Most of the lectures dealt with high level media theory, and I struggled to find how they were relevant to the kind of work I wanted to do. The actual assignments were much more relevant, however, and although I didn’t appreciate them all at the time, I see a lot more value in them now that I’m out of the class. I also had to read Don Norman’s Design of Everyday Things, which I’ve read again since completing the course. In particular, the text adventure assignment was extremely helpful in making me a better game designer. I’ve actually used Inform, the interactive fiction software from the class, during my internships to prototype scenario designs for a game in the early stages of development. Playing through it revealed limitations in the concept and helped steer the team towards a different idea.

CS 2261 is called “the GameBoy class” by most CM students because the final project is to make a functional game for the GameBoy Advance. The idea of making a GameBoy game excited me, but I quickly learned that the class itself was more about learning how a computer works than it was making games. I struggled during most of the class, and for the first time at Tech, I began to feel like I was being taught things I would never be able to use in industry. The professor told the class that many of the concepts he was teaching were “required” if we ever wanted to make games, however, I had already gone through two complete development cycles and was about to release a new game on the Xbox 360. I had been able to do all of that with little knowledge of the material in this class, so I treated it with a hint of cynicism after that.

My logic was this: I want to be a designer or a producer. If I’m working for a big company, I will never be asked to write code in those positions beyond simple scripts, and the knowledge I gained from my previous Java and Python courses should be more than sufficient for that. I realized that Computational Media didn’t offer any sort of solution for someone in my position, and I still had a number of programming courses ahead of me. Towards the end of the semester, the professor claimed that “Computational Media is for the people who want to make ‘Maya,’ not use it.” One look at the Georgia Tech website says otherwise, and I honestly haven’t been able to treat my coursework with the same amount of respect as my personal projects since then.

I ended up taking a C in 2261 because I didn’t finish the final project. I had a deadline to meet for my Xbox 360 game in order for it to get published with the launch of one of Microsoft’s new delivery platforms. I met the deadline, the game got launched, and when I started looking for internships that fall, that game was the subject of every interview. When I arrived at EA, I learned that many of my co-workers, all industry veterans, didn’t have college degrees. I had been a straight A student until I got to Georgia Tech, but when the people who have the power to give me my dream job told me flat out that my grades don’t matter to them, it made it very difficult for me to put in the effort required to get A’s here.

In the fall semester of 2009, after my first internship, I enrolled in LCC 4725 (“Game Design as a Cultural Practice”). Even though I don’t like experimental games, I decided that this class would at least let me make something I might be able to add to my portfolio. I made a flash game called Interfaced with five other students for the class project, and I ended up working with many of these students again for my capstone project. The best part about this class was that the professor allowed team structures to reflect development teams in the industry, where each person has one or two disciplines. This was the only class I took at Georgia Tech that allowed group projects to work this way – the only time I didn’t have to do any programming.

The game itself wasn’t great, but I earned valuable experience working with the team through development. Apart from a few student-taught classes on Flash development, there was very little direction for the project from the class itself. We worked independently in apartments and coffee shops to get the game finished, learning from our mistakes as we went. This is actually my favorite way to make games because it’s almost exactly like what I do on my own time with personal projects, and it’s how the capstone game was developed as well.

I took CS 4455, “Video Game Design,” in the spring semester of 2010. I had to pull some strings to get into the class because I hadn’t taken one of the prerequisites, but the professor agreed my experience with game editors from my internship were a sufficient substitute for the CS 3451 Computer Graphics course. I arrived to the first day of class excited that I was going to get to spend class time doing nothing but game design.

It turns out the “design” portion of the class was worth 5% of the overall grade. The rest was programming. My heart sank, and I ended up struggling the entire semester. To make matters worse, the class required us to use C4, an obscure mess of a game engine. The only commercially released game C4 has been used in is City Bus Simulator 2008, and if you haven’t heard of it before, that’s exactly my point. Rather than teaching us how to use an editor associated with a game engine, we were taught all the tricks and workarounds for making C4 “kind of” do what we wanted it to. The class has since switched to the widely-used Unity game engine, so this complaint has mostly been addressed, but the fact that all students are still required to do programming in it and CS 3451 is still a prerequisite makes me believe that the games industry’s definition of “design” is somewhat different from Georgia Tech’s.

To reinforce that point, I was very frustrated during this capstone project when the advisor gave the team a failing grade for the “design” portion of a milestone early in the semester. I had created a wiki that detailed every mechanic in our game and every kind of interaction the player could have with it. There were descriptions of every level and sketches or videos of puzzles that had been prototyped. If printed out, it would have easily amounted to over thirty pages of content. We received a failing grade because, according to the advisor, that kind of work was not “design” but rather “concept,” and “design” meant he needed to see UML diagrams for the engine’s code. Georgia Tech is the only place I’ve ever encountered that definition of the word.

There are classes I’ve found to be very useful that aren’t directly related to the CM program. On the first day of her Science Fiction course (LCC 3214) last semester, Professor Lisa Yaszek told us her hopes for the course were to give us “cocktail talk.” She wasn’t trying to change the way we think about media, but rather wanted us to be more knowledgeable about a subject she was passionate about so we could share in discussing it with employers or co-workers. This past summer at EA, I was able to hold my own in a spontaneous discussion about Asimov.

I took MUSI 3450 (“Survey of Music Technology”) in my freshman year. It ended up being mostly math, and I was really unhappy for most of the course. Towards the end, though, I got to work with Reason 4.0, an advanced music authoring program. When a game I was making six months later needed a soundtrack, I was able to hop in and compose something. I’ve been writing music for my games ever since. This past summer, my team was entertaining Hollywood composers I was able to talk with them about how composition for games is different from composition for film. I’m certainly no expert, but I was competent enough for them to be interested in what I was saying. It was an empowering feeling and one of the more memorable opportunities I’ve taken with me from my work experience.

This essay calls for me to point out the concepts and skills I learned in these courses that will help me in life after I graduate. I’ve learned more during my time at Georgia Tech than I can possibly put on paper, but I’ve learned very little from my classes. Maybe I could say I reinforced my basic knowledge of Python and Java with my CS classes, or that I gained extra experience working with others on group projects, but to put it bluntly, I found many of the classes in Computational Media to be distracting from the things that I believe will bring me success in the future.

I’m not writing this as an angry or disillusioned college student. I love Georgia Tech and I’d come here again given the option. I believe this is the most honest way I can explain the things I’ve learned from this school that I will take with me for the rest of my life.

Computational Media’s website promises that the degree “can be shaped into whatever specialties you enjoy – from graphic design and web development to film animation or game development.” In my experience, it can’t be shaped into anything that specific because students don’t have the option to focus their studies beyond broad media theory classes. This stems from the major’s unique structure – when students are required to evenly split their courses between two very different disciplines, it makes them capable of many things, good at some things, but great at nothing.

I came into Georgia Tech wanting to be a game designer. If I was to do nothing outside of classes, I would have a fairly substantial knowledge of computer science theory (but very little programming experience) and basic familiarity with the Adobe Creative Suite. I’d also know a bit about media theory. After working one summer at Electronic Arts, I realized I had far more programming knowledge than I would ever need as a designer, but no 3D modeling experience – something that is essentially required to get a job anywhere in this industry. My knowledge of both disciplines might make me a good candidate for a producer, but I haven’t been able to take any sort of public speaking or finance courses beyond basic economics. No one would hire me as a programmer over someone with a degree in Computer Science, and my art skills, although not bad for a designer, are nowhere near good enough to get me a job as an artist.

To get the experience I needed, I looked outside of classes. I started a company and made a game with two other students during my sophomore year. When we had deadlines for various competitions coming up, we’d explain to our professors what was going on and show them what we were up to. They thought it was cool, but if we asked for an extension on a class assignment or for a little bit of leeway, we were immediately shut down. We all took multiple zeroes on assignments the semester Audiball was released, and it’s the only way the game would have gotten done. As a result of making Audiball, all three of us landed internships with EA. They didn’t care about my classes or even ask for my GPA. They just wanted to know about what I learned from making a game on my own.

The thing is, Audiball wasn’t even that great of a game. Apart from a couple crazy critics who thought the game was some sort of visionary pinnacle of innovation in rhythm games, most players panned it as over-complicated and ugly. EA was only impressed that I had managed to make something from start to finish and get it published. The quality of the product was irrelevant. What I did with Audiball is something every CM student should be able to do. Why is there no class at Tech with a final project that involves publishing something on Xbox Live Indie Games? The ability for me to tell someone to turn on an Xbox and download my game was amazingly powerful in every job interview I’ve had – much more valuable than telling someone to hop on my website, download a GBA emulator, download my game, and try to get the two to talk to each other.

Looking back, the fact that I didn’t get the kind of experience I needed through classes ended up being a good thing for me. If I had been making marketable games all throughout my college career like students at Carnegie Melon and USC, I probably wouldn’t have felt the need to start my own companies and work on so many independent projects. Having a resume that shows I did all of that independent work on top of school makes me a much more attractive candidate for the jobs I’ve applied for. Just like in the real workplace, I knew that I couldn’t do everything on my own so I found people who shared my drive for success and worked with them to achieve something.

I learned how to manage a business on my own. I learned how to prioritize commitments. I learned about what capacities in which I should trust other people, and perhaps more importantly, those in which I shouldn’t. I learned to know when I should solve problems on my own and when I should ask for help. I learned that developing games is what I want to do for the rest of my life, and there’s no satisfaction quite like seeing other people enjoy the things you’ve made. Those are the things I came to college to learn, and as crazy as it might sound, I owe founding those companies to Georgia Tech’s lack of relevant course offerings.

My regret is the way that Georgia Tech treated my success with independent projects. While they were being worked on, most professors were unsupportive and I had to let my grades suffer to get them finished. But as soon as a final product was released, people from all over the school wanted us to tell them all about it. I was thrilled that Georgia Tech put a picture of me on the front page of their website when Audiball was released, but it’s a very clear problem when I get to that point because I skipped classes and poured my heart into something with no help from the school.

When I was asked to answer a few questions for a “student profile” on the Computational Media website this semester, I decided I wasn’t a good person to represent this major for the reasons above. Right now, the best advice I can give (and have given) to other CM students is to work on personal projects and make games. When people ask me what courses they should take, I tell them “it doesn’t matter” aside from a couple gems in the rough. When people ask me why I’m in CM despite all of these complaints and criticisms, I tell them it’s because of the CM students. We’re in a major where we aren’t gaining the kind of experience we need to get jobs. Therefore, we feel the need to do work outside of classes. I don’t see that kind of passion in other majors, and I don’t know that I would have found students willing to start companies with me anywhere else. Those are the most honest answers I can give based on my experiences over the past four years.

The simplest change I would like to see in the Computational Media program is an increased emphasis on projects that can be used to kick start portfolio pieces. Students interested in game development need to be made more aware that they own the IP of games they make for classes, and encouraged to continue developing them after those classes end. School sponsored development teams and increased involvement with the many game making competitions available to students would do wonders for helping talented CM students meet the people they need to form complete teams and produce quality games that will help the program get noticed.

Maybe my concerns are part of the trick with Georgia Tech. The school’s reputation for shaping qualified individuals is unmatched, and everyone knows about the crazy workloads we have to deal with. A single look at Only at Tech shows that the campus is united by the stress we all share in our everyday classes. Even though we complain about it, we’re gain a huge sense of pride from it. The fact that our computer science building was funded by a Tech dropout summarizes the pride we all feel for our community better than anything I can describe in words. I’m proud that I’ve been able to accomplish what I have outside of classes, but I’m equally proud that I will be the first person in my family to get a college degree from one of the top universities in the country.