Firaxis Programmers Marek Vojtko and Eric Jordan talk about how what you say is more important than the programming language you use to say it.



Programming Languages You Need to Learn


One of the questions we're asked most frequently is: "What programming language do I need to learn to make games?" The answer can vary, however, the two languages game programmers agree you have to know are C and C++. Other languages may be used in specific cases, but C and C++ are universal.

C and C++ aren't easy to learn if you've never programmed before. So, if you're completely new to programming, or you have just started to write some code and want to build your skills, here are some other tools you can access that will help you learn the fundamentals and put you on the road to a career in game programming.

Absolute Beginners


Alice is a 3D programming environment that is designed to be a teaching tool for people learning introductory programming concepts. It's very easy to use - kids in middle school can learn to create stuff with Alice - and its' set up specifically to teach you how to think like a computer programmer. If you've never done any programming before, try starting with Alice. It will bring you up to speed quickly, so you can try your hand at making your own game prototype. Oh, and it's free!

Ready to Prototype


If you're already comfortable with the basics of programming, you can try two new languages: C# with XNA, and Flash ActionScript.

C# is a programming language and XNA is a library - a framework for building things in C#. Both C# and XNA will introduce you to more advanced concepts in game programming. You'll start to learn about some of the more gaming-specific aspects of programming like effects, lighting, and particles. They're both well-supported and will extend what you've learned in Alice. C# and XNA development tools are free too!

Adobe's Flash is multimedia software with a programming language called ActionScript. It's often used for animation and multimedia on the web and has become an important tool for game creation as well - some really interesting online games have been made in Flash. Flash provides an instant framework for many of the services you need in making a game (drawing bitmaps, animation, and sound), which frees up the programmer to focus on designing an interesting game. You can learn more about Adobe's Flash here:

http://www.adobe.com/products/flash

http://www.flashdevelop.org

Get a Programming Degree


While you can certainly teach yourself a great deal about coding games, ultimately there's no substitute for a college degree in programming. In a four-year degree program for Computer Science, you're going to learn the intricacies of algorithms and data structures, and you'll need this foundation in order to use current-generation game development tools. More and more universities are offering game programming tracks, so keep your eyes out, and if your university's CS department teaches C++, then you should definitely sign up for that! Check out the "Career Advice" page on the Firaxis website (http://www.firaxis.com/jobs/career.php) for links to information on school programs around the country.

And while you're in college, you should be applying what you've learned to make your own games. Making your own game is the best way to impress a potential employer if you want to work in the industry, and it's an excellent way to put what you've just learned into practice. Working on a mod is a good way to show off your skills, but make sure you can identify your contribution to the project.

Once you've learned to program well, you'll find the question "what programming language do I need to know" doesn't matter as much as having a solid understanding of programming fundamentals.