<p>While there’s so many programming languages an IMGD student can find useful, I’d say the most useful is C# because that’s the preferred language for Unity. And you will probably be using Unity every year. Download it for free from here and look into it/find a tutorial <a href=“http://unity3d.com/”>http://unity3d.com/</a></p>
<p>Unity is great because you can make your own small projects, it builds to many platforms, and it’s used a lot in industry. About 33% of Advanced Game Projects in the past 3 years have been in Unity. Notably, about 50% have been in Unreal, but that has a much steeper learning curve. It would behoove you to learn Unreal if you want to go into AAA game development.</p>
<p>Other languages to know would be C++ as a lower-level high-level language ubiquitous in industry. An IMGD student with basic but thorough knowledge of C++ is twice as sought after. Many coveted design positions involve scripting and debugging. </p>
<p>For a third language, I would say it depends on what you want to do. If you’re interested in mobile games then Java for Android or Objective-C for iOS (not Swift, yet). If you’re interested in HTML5 or web dev, then JavaScript. If you’re still figuring things out, then Python is a good choice also very popular, thus has good communities, tutorials, and Stack Overflow presence.</p>
<p>Software to know, besides Unity and Unreal, includes any thing else that can make a game or aid in the creative process. On the programming front, Xcode, Eclipse, Visual Studio, etc. For art, Photoshop, Flash, Maya, etc. For sound, Audacity, Garage Band, FMOD, etc. For a designer, things that not everyone thinks about but can be helpful include software for conveying and managing design, such as spreadsheets (stats and organization) and chart/flow creators (Google Drawing is easy and free).</p>
<p>I think learning the basics of animation is helpful, but becoming talented is not necessary unless you want to do animation as well. I can do programmer art, which works for prototypes, but have to leave anything for an actual game to the talented artists. Again, if it’s something you want to learn, go for it! If you’re just looking for a side skill to be more valuable then go with programming. Mediocre art won’t (shouldn’t) make it into release but adding functionality or fixing a bug will.</p>
<p>Some bonus info. You should become fluent in critical analysis of games and testing methodologies. This is super helpful for participating in discussions, becoming a better designer, and getting your foot in the door for QA roles and making sure your projects are quality games. These things should be taught in a class or two, but the more you know the better. Something just as important that is not explicitly taught in class is version control. I beg of you, learn SVN and Git! This has multiple benefits for you and whatever teams you’re on. Just the basics will make you more employable, able to back up your projects, and a more efficient collaborator. Don’t be the person who breaks the game project!</p>
<p>Lastly, IMGD students should be well versed in different types of design. The 3 that come to mind are mechanics, levels, and UX (includes UI). Having experience with all, which you’ll get in class, and being really good at at least one makes you more valuable than having breadth with no depth. All three rely on psychological underpinnings as well, which you’ll soon find out in class. This goes back to the analysis of games point and trying to get into players heads. In the end, the goal of the program is: How are you going to create an enjoyable, engaging experience?</p>