For me, the major was a success. While I missed out on a few classes I really would have liked to take because I divided myself between several departments, I learned enough across the board to feel confident in my abilities to learn independently if I ever find that I need to know something more. However, I can’t recommend this path for anyone who just wants to make games.
The courses I chose involved a lot of math and computer science courses that not everyone might be comfortable with. Before committing to the major, I had taken Mathematics 31B to 33B and Computer Science 31, competing with Math, Engineering, Computer Science, and other South campus majors, as you’d be doing in the more difficult upper division courses. After doing very well in these courses, I was certain I could succeed in any other technical courses I might choose for my curriculum. So to reiterate — it’s very important to make sure that one feels they’re confident and capable of competing in South Campus classes by taking several before following through with this kind independent major.
The following are the courses the that I included in my custom curriculum and which ones I found to be the most beneficial
- 152B – Interactive Media 2 (Arduino Hardware class)
- 156 series – 3D Modelling
- 157 series – Gaming (focus on Game Design and how to make something fun)
- 161A – Creative Internet
- 199 – Directed Research
- 115A – Linear Algebra (Lower division class would probably suffice)
- 180 – Combinatorics
- 161 – Artificial Intelligence
- 174A – Intro to Computer Graphics
Theater Film and Television
- Animation A and B courses
Courses that were not offered at convenient times:
CS174B,C – Computer Graphics / Animation Courses
From the design the department, the 3D Modeling course was very helpful in that it taught how to create 3D objects using the Maya software, which can be imported into a game engine. Overall it’s good for learning the tools to create art assets so games have something more complicated and interesting than cubes for graphics. You also learn about some of the more complicated topics involved with 3D modelling, such as normal mapping, UV mapping, animation, and others.
The gaming courses, of course, were very relevant. They focused on how to make a fun interaction and make something that was enjoyable to play. The second gaming class goes over how to use the Unity 3D game engine to make games.
The Interactive Media Arduino class was interesting, but less important when it comes to developing typical games. However, we’ve had some people use the Arduino to create custom controllers or unique interactions, so it depends on what you want to do. I’m not sure if this course will be offered again, though.
Creative Internet 161A was a filler course because I couldn’t get a more relevant one, and the 199 Directed Research I used for personal game development.
From the CS department, the most beneficial class was the CS174A intro to graphics OpenGL class. After the class I understood most cheats used in creating detailed real-time graphics in games. While it might be unlikely that someone will have to program for graphics at such a low level, understanding how this worked made using higher level 3D engines, like Unity, easier. This class is a must if building your own 3D engine, though.
The CS161 AI class focused less on directly game-related topics than I expected. It was a fascinating class, but some of the computer learning topics were less relevant. The portion that focused on different search techniques could be used for character or game ai, path finding, and other related applications, though.
I wish I had been able to take the remaining 174B and C classes to round out my understanding of programming for graphics. I also should have taken a class that covered multicore/threaded programming, though all of these can be learned independently outside of classes.
Linear algebra 115A has been pretty important when it comes to 3D programming, as well as graphics programming. There’s a lot of applications for it in general.
Combinatorics 180 could be important as well. There’s a lot that can be abstracted into graphs, such as path finding waypoints. The graphs, if I recall correctly, were also covered to an extent in the CS161 AI class, so the more important topics in this course may be covered elsewhere, but I know this is important for programming in general.
If these classes are overly technical or complex, the Design | Media Arts major can still offer a relatively diverse range of skills, especially if one goes out of their way to take some of the less rigorous programming classes from the Mathematics department, such as the PIC series. This curriculum is really for those who want to know about all facets of the game development process, both technical and artistic. However, if someone is interested solely in the artistic or technical portions, then the D|MA or CS departments alone can offer an adequate experience.
Being an independent major also means you have priority in no department. I had to get professor permission for every class, even in the design department. This, of course, made enrolling in classes very stressful, as I often didn’t know what I was taking until the end of second week every quarter. What this also means, though, is that enrolling in other department’s classes doesn’t get much easier. If you have a solid idea of which classes you want to take, I think it is possible to take the classes that I mentioned, prereqs included, by remaining in the design department if you start very early, though creating a major frees up some units for other classes.
If you’re still interested in making a major, the process involves naming it, finding a professor to endorse you, and writing a paper justifying your decision to make an independent major. To graduate, you have to turn in a final project or paper that combines what you learned throughout your classes as an independent major.
– Garrett Johnson