Beginning Game Programming with C#

Start learning how to program video games using the C# programming language. Plenty of practice opportunities are included!

About The Course

The Beginning Game Programming with C# course is all about learning how to develop video games using the C# programming language. Why use C# instead of C++, Java, ActionScript, or some other programming language you may have heard of? First, using C# lets us use the Microsoft XNA and open-source MonoGame frameworks, which help us quickly develop games for Windows, Android, iOS, Mac OS, and others. Second, the Unity game engine is very popular with indie game developers, and C# is one of the programming languages you can use in the Unity environment. And finally, C# is a really good language for learning how to program.

That learning how to program comment is important because this course doesn't assume you have any previous programming experience. Don't worry if you've never written code before; we'll start at the very beginning and work our way up to building a small, complete game by the end of the course. Throughout the course you'll learn core programming concepts that apply to lots of programming languages, including C#, and you'll also learn how to apply those concepts when you develop games: drawing all the entities in the game world, updating the game world based on user input and simple physics, playing music and sound effects in your games, and so on.

Computer programming is really fun in general, and programming games is even better!

We're working on figuring out when the next session will run, but in the meantime you can sign up for the session that started in September 2013. That will let you work through all the course materials at your own pace so you don't have to wait until the next session to get started.

Frequently Asked Questions

Will I get a Statement of Accomplishment after completing this class?
Students earning a 70% or above will receive a Statement of Accomplishment signed by the instructor.

What resources will I need for this class?
For this course, you'll need to install the free Microsoft Visual C# 2010 Express environment and the free Microsoft XNA Game Studio 4.0 Refresh framework. Although the ebook is strongly recommended, you can complete the course without it by spending extra time using online resources. And, of course, you'll need time, motivation, and brain power!

Can I use a Mac or Linux for the class?
The default development environment for the programming in the course -- Visual C# 2010 Express and XNA Game Studio 4.0 Refresh -- is definitely for Windows, so if you can boot into Windows you should use the default environment. If not, though, Mac and Linux users can use MonoDevelop and MonoGame to do all the course work. I provide all the course materials for Windows users, Mac users, and Linux users.

What if I Can't Install XNA with Windows 8?
Some people have run into compatibility issues when trying to install XNA on a Windows 8 machine. If you  run into that problem, check out the steps here. One of my Coursera students also discovered this link -- -- which I haven't tried, but it is another option.

What's the coolest thing I'll learn if I take this class?
Contrary to pop culture stereotypes, programming is pretty cool on its own. Even better, though, you'll be learning to program games!

Recommended Background

No previous programming experience required; all are welcome!