In this series of articles I'm going to be implementing 'boids' in UnrealEngine. This is primarily a learning experience for myself as I expand my gameplay programming skills, and my C++! I am by no means an UnrealEngine or C++ expert so I may do dumb things occasionally, if you spot something, please drop me a message or comment to let me know :)

What Are 'Boids'?

Boids is the name of a series of algorithms created by Craig Reynolds in 1986 to simulate the behaviour of flocking or schooling animals. I based my particular implementation on pseudocode published by Conrad Parker. The basic structure of the main program loop is :

	PROCEDURE move_all_boids_to_new_positions()

		Vector v1, v2, v3
		Boid b

		FOR EACH BOID b
			v1 = rule1(b)
			v2 = rule2(b)
			v3 = rule3(b)

			b.velocity = b.velocity + v1 + v2 + v3
			b.position = b.position + b.velocity
		END

	END PROCEDURE

 The important parts here are the three rules that define the change in velocity of the boids, I'll go through them one by one. I will be referring to the collective group of boids as a 'flock' throughout these articles.

Rule 1 - Coherence

This rules states that each boid will try and move towards the centre of mass of the flock as a whole.

Rule 2 - Separation

This rule states that each boid will try to maintain a minimum distance from other boids.

Rule 3 - Alignment

This rule states that each boid will try to align it's direction with the rest of the flock.

Pretty simple huh? These three simple rules combine to create a surprisingly natural flocking behaviour in simulation. Now we will look at how to implement this in UnrealEngine....with a few differences that I will cover as we run through the code in the next section.

Part 2

{fcomment}