-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
38 lines (31 loc) · 2.38 KB
/
Copy pathREADME
File metadata and controls
38 lines (31 loc) · 2.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
td - Distributed Genetic Evaluation of Tower Defense Game Positions
Final Project for CPE512 Parallel Programming Course
Dependencies:
Google Test (sudo apt-get install libgtest-dev)
Project Proposal:
Tower Defense games are described by wikipedia[1] as a "subgenre of real-time strategy
computer games. The goal is to try to stop enemies from crossing the map by building towers
which shoot at them as they pass." The goal of this project will be to create a small tower
defense simulation and develop a distributed genetic algorithm to determine favorable tower
placement locations.
The simulation will consist of a closed rectangular area. Enemies will appear from one or
more points on the edge of this area, and attempt to move to a goal point by using simple
pathfinding techniques. Towers will be placed within the area to attempt to destroy the
enemies before they can reach the goal point. There will be at least 3 types of towers: a long
range/low damage tower, a short range/high damage tower, and a tower that temporarily
slows the movement speed of the enemies, but does no damage. There will be a limited
number of towers available to be placed. The tower positions will be constrained to a
rectangular grid within the simulation area, and any position that completely blocks the
movement of enemies towards the goal point will be ruled invalid. In other words, there must
always exist at least one path from the entry point to the goal point.
This project will use a distributed genetic algorithm to determine favorable tower positions for
destroying the largest number of enemies. The fitness of each placement will be evaluated
by running a simulation to determine how many enemies reach the goal point. The parallel
performance will be evaluated both in terms of speedup (the number of genetic permutations
that can be evaluated in a certain wall clock time), efficiency of evaluating positions, and also
by the quality of the best positions generated (as measured against the fitness function.)
The project will be written in C++ and MPI and use the altix.asc.edu cluster to test the parallel
performance. A survey of existing open-source tower defense games will be performed, and if
a suitable existing project is found, it may be used for the serial implementation. If no suitable
existing project is found, a basic serial simulation will be written from scratch.
[1] http://en.wikipedia.org/wiki/Tower_defense