Basic implementation of a genetic algorithm that solves the problem of finding the shortest distance to an object
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


This repository contains a Genetic Algorithm I created for my second year programming assessment on complex game systems. This Genetic Alogrithm solves a simple problem of finding the quickest route to an object. The visual representation of the algorithm needs some work, which I plan to do.

What is this repository for?

The main use of this repository is to have an online backup of my programming work and an example of my knowledge.

How do I get set up?

Refer to the aieBootstrap section for information on how it's used in this project.

The only setup that should be required is setting the envrioment to be run in x86. All of the dependencies are contained in the deps folder.

Who do I talk to?

James Creaton


The base project code used for the Advanced Diploma of Professional Game Development to aid in graphical real-time applications.

Bootstrap is a static library that can be linked against to implement real-time graphical applications with OpenGL as the base API.

To build and run projects ensure that Bootstrap is the first project built, and ensure you have set the Working Directory to the bin folder, i.e. "$(SolutionDir)bin".

Provided is VS2015 project templates that can create a basic 2D project, and another for a 3D project. These are within the Tools sub-folder as .zip files. Add these to your Visual Studio Project Template directory, i.e "C:/Users/username/Documents/Visual Studio 2015/Templates/ProjectTemplates/Visual C++ Project/".

Alternatively, to create an application simply derive from the aie::Application class like so:

class MyApplication : public aie::Application {

	virtual ~MyApplication();

	virtual bool startup();
	virtual void shutdown();

	virtual void update(float deltaTime);
	virtual void draw();


Then implement a main() function to create an instance of your application:

int main() {
	auto app = new MyApplication();
	// window title, dimensions and if it is fullscreen
	app->run("AIE", 1280, 720, false);
	delete app;

	return 0;

The run() method implements a game loop that executes in the following manner:

  if startup() is true then
    while quit is false