2D vector math hero - polar movement

Vector math for polar movement in 2D games (Unity)

Polar movement, i.e. moving objects at an angle, is something that people starting out in games programming often have trouble with. Coordinate systems are easy to understand, and so is moving things left and right or up and down; but what if you want to move at angles that are not parallel to an axis, like 30° upwards, or towards a target? How do you get a vector that represents that direction of movement?

Continue reading
Emission lighting in Unity

Getting your emission maps to work in Unity

Emission maps (also known as emissive maps) are textures that can be applied to materials to make certain parts of an object emit light (like the cube in the image above). In Unity, lights from emission maps don’t start affecting the scene as soon as you place them on the material. There are a lot of settings you have to get right in your scene and material settings to get the emission maps working right.

Continue reading
Collision Detection Modes in Unity

Collision detection modes in Unity’s Rigidbody component

Update (14 August 2020): Looking for an article on the Interpolate property on Unity Rigidbodies? We’ve put one together recently, so have a look here.

It isn’t particularly difficult to set up physics-based movement for objects in Unity — simply add a Rigidbody component onto an object that has a Collider component, and you’ll have yourself an object that moves and collides realistically with other objects.

Discrete collision
This was set up in 10 minutes.

If you start having fast-moving objects however, you might start to see these objects tunnel through obstacles.

Discrete collision tunnelling
Just like quantum physics. Sort of.
Continue reading
Coding your projectile arc

Coding projectiles for your tower defense game — Part 2

In the second part of this series, we will be exploring how to give our projectiles a nice vertical arc as they travel towards the target. This article will expand upon the work in Part 1, where we coded a projectile that could home in onto the target and detect collision with the target without using Unity’s physics engine’s.

Continue reading
Homing projectiles

Coding projectiles for your tower defense game

If you’re developing a tower defense game, one of the first questions you are going to be dealing with is this: how do you make the projectiles that your towers fire hit their targets? After all, these fired projectiles take time to reach their targets – targets that are constantly moving. Sometimes, by the time a projectile gets to where it was aiming at, their targets would’ve sometimes moved out of the way.

Continue reading
Image by Martin Vorel from https://stocksnap.io/photo/KLIK5Q5KX2
Image by Martin Vorel from https://stocksnap.io/photo/KLIK5Q5KX2

A primer on images for game developers

If your work involves sitting in front of a computer, chances are — at some point or another — you’ll have to work with digital images. For most people, it’s more than enough to know how to save images into the right formats. If you’re a game developer though, it’ll help to have a bit more in-depth knowledge, since you’ll be working with game engines that like to throw around obscure terms like true color, bit-depth or ARGB-16.

I struggled a lot with images during my early days in game development precisely because of these terms — Google searches and Wikipedia articles only led me to pages with big words that confused me even more. With time, I eventually figured things out — hence this primer. Hopefully, reading this means you won’t take as long as I did to figure things out.

Continue reading
Viking Harbour by Whiteoxygen

Making use of inheritance in game programming

A common problem I see in novice Unity game programmers is that they often create too much unnecessary, duplicate code. Take, for example, the programmer who creates a simple 2D platformer with a player character and a generic enemy character to be duplicated across the level. What often happens is that two separate scripts will be created — one for the player character, and one for a generic enemy character. Each individual script will define its own behaviours for things such as movement, jumping, dealing damage and receiving damage, and most of the code between these two scripts is similar because the character types have so much in common.

Continue reading

War of the Worlds - Melcolm Lek
Art by Melcolm Lek: https://www.deviantart.com/whiteoxygen

The high concept: what it is and why you need it.

The high concept is a concept (no pun intended) that is very relevant to people working or studying in creative fields. Since I take up the identity of a games design lecturer some of the time, I’ll be tackling this idea from the perspective of games design.

Let’s start with a simple definition of what a high concept is: it is the first thing you tell someone when they ask you what your game is about. Here are some traits a high concept should have:

Continue reading