This blog will be dedicated to game development, in a bit of an old-fashioned way. Most game development these days is based on some third-party engine such as Unity or Unreal Engine. We will not go that route – instead we will build everything more or less from scratch. That is not to say we won’t be using any third-party libraries, but we will keep them to a minimum and write most of the low-level stuff ourselves.

This means that if your aim is to learn the skills necessary to get a job in the game industry as quickly as possible, this blog may not be a great resource for you. Your time will almost certainly be better spent learning the ins and outs of a commercial game engine such as those I mentioned above. If, on the other hand, you are a nerdy hobby developer who likes to have an understanding of what goes on behind the scenes, we are on the same page.

It should here be noted that although I do work full-time as a software engineer, I have no real working experience from the game industry. Game development is only a hobby of mine, which makes me only an amateur in that field. My professional experience does of course help, because it has given me a quite deep understanding of the tools I will be using, but there are still some major differences between games and other applications when it comes to software design, user interactions, performance trade-offs and so on. I do not claim to be doing things in the most correct or efficient way possible, so I always appreciate any feedback you might have on improvements that could be made, things I seem to be misunderstanding, inconsistencies in my code style or just ideas for cool things I should implement.

The blog is not really intended to be a programming tutorial – some basic knowledge of programming is assumed. I will mainly be writing code in C++ using the newest version of Microsoft Visual Studio. The Community edition is free to download and use, although with some restrictions that typically won’t be a problem for most hobby developers.

I am currently doing all my development on a computer that I built in 2012. It has an Intel Core i7-2700K CPU, 16GBs of RAM and a GeForce GTX 670 graphics card. We can probably agree that this is somewhat outdated hardware, which means you will absolutely not be needing a state-of-the-art computer to follow along.

The blog will be accompanied by a GitHub repository (check the Info page for more information). Most of the blog entries will be associated with one or more commits in the repo. That way you can follow along even if the blog entry doesn’t go into detail on all the code changes that are being made – which it typically won’t.

We will start by creating a simple introduction project where we draw and animate some graphics, and perhaps play some sound effects. After that we will try to implement our own clones of a few classic arcade games, which can be quite an educational experience. I may also throw in the occasional test project if there is some specific concept I want to focus on. After that, who knows where the path may lead us.

A little disclaimer: While you are free to follow my blog, download my code and do pretty much whatever you like with it, you do so at your own risk. I cannot be held responsible for any inconvenience you might experience as a result of it. I will always test that my code builds and runs before I push it to GitHub, so it will probably work for you too. Even so, nothing is guaranteed, and I will not be able to commit to providing any type of support. If for some reason you experience problems building or running my code, feel free to leave a comment about it, and you may or may not receive a helpful answer from me or someone else.

By alfred

Leave a Reply

Your email address will not be published. Required fields are marked *