Writing Retro Games is the Best Way into Software Development

Photo by Lorenzo Herrera on Unsplash

I started coding in college and hated it. I hated the rules, how petty it was. And more importantly, how shit I was at it. Just one character out of place, just on! And the whole thing ceased to work. What a joke.

But I spent some time, watched some YouTube videos and become one of the best in the class. It didn’t take much really, because no one else was really putting in much effort and really didn’t enjoy coding. So a few hours here and there was enough to be in the top 3 or so. And you feel good when people come to you for help, which reinforces your identity as a developer and your resolve to get better.

We started coding in VB and really it was a good way to get started, we moved onto C# eventually and in both these languages we started with event driven windows forms. It was cool to see a genuine windows app, with familiar buttons etc, do things that I had coded. We grew up with windows, and now we were making windows applications!

Ignore people who say that one language is crap and another is awesome. Most languages can do most things. And more importantly, almost no develop is pushing the limits of performance of any language.

It’s not a bad way to get started but I think I really got into coding when we moved onto making basic 2D games in C#. We were using the XNA framework which took a lot of the complexity out of it and let us focus on the important things, making games! It’s great and nowadays it exists as part of the Xamarin framework. (It was mono before that too)

I really think making basic 2D games is the best way to learn development. I think it is partly to do with the visual feedback you get for every line of code that you write. You start to develop a game and what do you do first? You draw something on the screen — a spaceship lets say. Next? Well you get the spaceship to move. On from there, you might add some enemies, some bullets. Collision detection.

Before you know it you have a playable game, that you, yourself have created! It’s a great feeling and you really feel like you are making something of value. You can also hand it to somewhere else to try. You can bet they’ll be more interested than if you showed them a hello world HTML page.

Games have a character to them that websites do not. A lot of websites look similar, you’ll probably have a logo, a menu of some kind. But each game is extremely different from every other. Even in the small details. You could sit two people down and ask them to make a game containing a spaceship flying around the screen and you could bet that if you played both games, those spaceships would fly entirely differently. One would be quicker than the other, maybe one would be more precise — or take longer to come to a stop. I think this adds value and you feel like what you are creating is much more of a piece of art than a desktop or web application would be.

If you are interested in development I would say give game development a try. Find a nice simple framework that takes some of the thought out of it and try putting together a basic game. You may find yourself becoming a software — or even better, game developer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store