3 min read
Featured Blog

Starting Games Programming

Opinion piece. Loads of people ask me about getting into game programming and mention Unity. I don't think Unity is the place to start.

I have a number of people these days asking me how to start games programming and have heard of Unity. In fact they ask me “how do I learn C# for Unity?” when they are getting into games programming and I thought I would throw in my two cents.

Start with learning core C# and then Monogame.

Now people may ask why as Unity is "super easy" and has an editor and is super mainstream right now. Don’t get me wrong Unity is great, I am a big evangelist of Unity. However in my opinion it is not the place to start learning games programming.

Learning Unity, you learn the basics of C# code and you may learn how a component based architecture works and you will become familiar with the API and how to use a nice editor and comfortably live in the Unity bubble. However you are limited to Unity’s way of doing it and actually might miss out on how a game engine actually works. Therefore we bring in Monogame.

Monogame/XNA is a straight up API, no nice editor, no built in component based architecture. It is lovely to use and gives you the opportunity to build your own game engine in a nice environment. People can learn how to become a game engine architect and design systems nicely as they will have to think about these things. What I have learnt in the past couple of years doing professional programming is that being a good programmer is partly knowing the ins and outs of a language and being able to code well, but it is also about designing systems that fit the purpose, are easy to read, maintainable and have the right level of performance you need. By starting with Unity straight off the bat, I think you people may miss that. Sure you can design systems , but if I was learning to game program right now and was primarily using Unity, I would be letting Unity dictate how my systems are designed rather than making Unity work for me.

“So enough of the why Lindsay! If you think Unity is not a good place to start then where should I?"

OK lets get down to business.

Well, you can do a couple of things. If you are studying for you live in the UK and studying for your GCSEs or A-levels (or equivalent if you don't live in the UK) and want to go to Uni and are thinking about a career in video games programming, then look at one of the specialized courses. I learnt how to game program and had an absolute blast doing my 4 year MEng course at the University of Hull

If you have not got the money or time to go to University (maybe for the second time) then here are a couple of good tutorials and books and articles to get you going:

Microsoft Channel 9 C# tutorials

C# Yellow Book

XNA Book

MonoGame tutorials

.Net Design patterns

Once you feel confident, build a small game like an r-type clone, space invaders clone, pong clone, some sort of match 3, basically something 2D and super simple. One of the coolest ways to I found to do this is to play lots and lots of big games then think, how can I make that smaller and a lot simpler.

To get your engine architecture/design on, take a look at a couple of links and books. Google “game engine design”. Here are some links to get you started.

Google Search – Game Engine Design

Data Orientated Game Design

Game Engine Architecture

Game Coding Complete

Latest Jobs


Playa Vista, California
Audio Engineer

Digital Extremes

London, Ontario, Canada
Communications Director

High Moon Studios

Carlsbad, California
Senior Producer

Build a Rocket Boy Games

Edinburgh, Scotland
Lead UI Programmer
More Jobs   


Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter


Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Follow us


Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more