Image for post
Image for post
Image by PublicDomainPictures from Pixabay

This blog post will focus on discussing the correct way to make use of game development tutorials. I know this might sound bizarre but it can be easy, especially for new game developers to overuse them. Overusing tutorials can have a negative long term effect on our ability to become great game developers, which is why it’s important we use them correctly.

Types of game development tutorials?

I don’t want to say game development tutorials are bad and put anyone of ever using them so I thought I would specify the difference between game development tutorials that can cause problems and those that cannot.


We all want to write clean code but sometimes things get in way

Image for post
Image for post
Photo by Sarah Dorweiler on Unsplash

The real reason it’s difficult to write clean code has little to do with technical challenges. Instead, the difficulty comes from trying to maintain a high standard of code quality while dealing with other aspects of our lives.

What is Clean Code?

For those of you that are unfamiliar with clean code, it’s a term that describes the act of making code as readable as possible. To understand its importance, you only have to remember a time when you’ve looked at your own code, or someone else’s, and struggled to understand what it’s doing.

I won’t go into detail on how to write clean…

Spend less time worrying about how to download, compile, and link external libraries

Image for post
Image for post
Photo by Shane Rounce on Unsplash

In my last article, I discussed some difficulties posed by trying to use third-party libraries within our own C++ programs. Many of these difficulties are due to a lack of understanding of some simple concepts related to C++ development.

I started by looking at each of the stages involved in compiling a C++ program and showing how to compile a C++ program using the MSVC toolset.

In this article, I want to look at navigating the world of distributed C++ code.

A common way of distributing code on the internet is to use a library. A library can come in…

A series of articles exploring issues I’ve encountered using C++

Image for post
Image for post
Photo by Markus Spiske on Unsplash

One of the hardest things I found when first learning C++, outside of learning about pointers and memory management, was how to successfully compile code using third-party libraries.

As a game developer, you rely a lot on libraries for aspects of your game, such as rendering and physics, and it can be surprisingly tricky to successfully compile an empty project with these libraries included.

I struggled because I simply didn’t understand how C++ programs were built and distributed over the internet. …

Polymoprhism’s use and benefits

Image for post
Image for post
Photo by Delila Ziebart on Unsplash

In this piece, we will look at everything you need to know about polymorphism. The name might incline you to believe it’s difficult, but in fact, polymorphism is easy to understand.

Polymorphism does require an understanding of inheritance, and this piece’s code samples are in C++, so if you’re unsure as to what inheritance is, then maybe come back and read this piece once you’re familiar.

For those who have heard the concept but need a refresher, I’ll provide a quick recap before jumping into polymorphism.

Quickly Recapping Inheritance

Inheritance is a concept that allows us to reuse code through an is-a relationship…

Image for post
Image for post
Photo by Tristan Colangelo on Unsplash

In this article we will look at understanding delta time, a concept I know from experience, can be difficult for beginners.

Delta time, or also referred to as elapsed time is usually a value that is calculated for us within modern game engines such as Unity or Unreal. Delta time describes the time difference between the previous frame that was drawn and the current frame.

Note: A frame refers to the image we see on the screen, which gets updated a certain number of times a second. …

Break programming problems down into smaller steps that can then be translated into working C++ code

Image for post
Image for post
Photo by Volodymyr Hryshchenko on Unsplash

In my last article, I gave some advice and insights about how to overcome programming problems. I realize that I never showed how to put some of the advice I gave to use so I wanted to change that now.

In this post, I want to look specifically at learning how to understand and break down programming problems.

Knowledge Required

  • Basic C++ language.
  • Arrays.
  • If statements.
  • For loop.
  • Variable.

The Problem

I have purposefully picked a problem that requires as little programming knowledge as possible:

Write a program that finds the largest value in an array of numbers and prints it out to the…

Image for post
Image for post
Photo by Émile Perron on Unsplash

When I first started learning to program, I was taught many things, but I was never taught how to solve problems and because of this I struggled a lot in the beginning. A lack of confidence is a sure-fire way of killing a passion. Fortunately for myself I am damn stubborn and carried on regardless, and eventually I stumbled my way through enough programming problems that my confidence started to grow, and I got a real sense of knowing what I was doing.

Fast forward a few years and I am now working professionally as a game developer having built…

Image for post
Image for post
Photo by Émile Perron on Unsplash

In my previous article I looked at how we can apply information hiding to our scripts to potentially reduce the amount of code we need to rewrite when we make changes, and to help minimise bugs. One problem that you might have noticed when reading this post is that by making our variables private, we lose access to a big feature of Unity, accessing values in the inspector.

Having access to values in the inspector is beneficial as it allows us to easily modify properties of our game objects such as changing the speed in which a character can run…

Image for post
Image for post
Photo by Markus Spiske on Unsplash

Writing code is a difficult process that can be made even worse when you write code that ends up a massive ball of spaghetti. Spaghetti code is bad. Spaghetti code means you can fix a bug only to end up introducing five more. Spaghetti code means adding a new feature might result in rewriting a large part of your code base. Spaghetti code for developers working in a team means you can be constantly getting in each other’s way spending endless amounts of time dealing with things such as merge conflicts.

Like I said, spaghetti code is bad. Which is…

Drew Campbell

Game developer writing articles about: game development and programming | Read more at

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