This document describes research on procedurally generating maps for asynchronous multiplayer shooters. It discusses motivations like reducing development time and improving longevity. A technique is presented that procedurally generates maps in 5 phases: populating tiles, cleaning up, identifying regions, connecting regions, and positioning strategic points. Maps are evaluated analytically by measuring properties like generation time, collision points, and fairness, and through an online user study. The research aims to quickly generate maps that provide good navigability, pacing, and fairness for asynchronous multiplayer gameplay.
8. 1) Motivation
• Procedural Generation of Map
“drastically reduce development time”
“improved longevity from unlimited maps”
• Human Imitating Bots [Extended Ver]
“brings Asychronous Gameplay to shooters”
“play a multiplayer shooter when friends are
unavailable”
9. 1) Motivation
2) Design & Implementation
a) Procedural Generation of Map
b) Human Imitating Bots
3) Evaluation
10. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Join
Rule
11. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
12. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
13. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
14. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
15. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
16. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Spawn (red)
Spawn (blue)
17. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
TeamFlag (red)
TeamFlag (blue)
18. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Flag
Flag
19. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Collision Point
20. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Cover Cover
Cover
21. 2a) Procedural Generation of Map
• Initialisation
PHASE I
Populating Game Tiles
PHASE II
Cleaning Up
PHASE III
Idenitfying Regions
PHASE IV
Connecting Regions
PHASE V
Positioning of Strategic
Points
Cover
Cover
Cover
Cover
Cover
22. 2a) Procedural Generation of Map
• Evolution
Map Fitness =
Connectivity
Forced Collision Points
limited to 1 or 2
Flag Fairness
difference in distance to own team flag
Overall Flag Fairness
difference in distance to all flags
+
+
+
In line with the DESIGN GOALS:-
- Fast generation
- Collision Points
- Flow - Navigability, Pacing
- Fairness
- Asthetics
25. 1) Motivation
2) Design & Implementation
a) Procedural Generation of Map
b) Human Imitating Bots
3) Evaluation
26. 3) Evaluation
• Analytical Evaluation
using measurements / analysis of generated map
• Subjective Evaluation
using online user study
- 53 respondents
- no knowledge of project nature
Based on Design Goals
27. Fast Generation
Analytical Subjective
• Generated 3 maps,
in 10.1s, 9.9s, 11.5s
• Not very acceptable
• Can be improved with
• Reached max fitness less populations
within 30 populations
• Much faster than
previous works
28. Collision Points
Analytical Subjective
• Defined well
• Prone to meet in middle
• Mean 3.60, StdDev 1.25
• Hypothesis that
locations are sparsely
located can be rejected
at 0.05 significance
29. Flow – Navigability & Pacing
Analytical Subjective
• Indoor/outdoor areas
• Unique items
• Few deadends • Good navigability
30. Flow – Navigability & Pacing
Analytical Subjective
• Indoor/outdoor areas
• Unique items
• Few deadends
• Mostly falls in middle
• May be due to difficulty
in measuring pacing
31. Fairness
Analytical Subjective
• Time to navigate to flags
- 58.88s from red team
- 60.21s from blue team
• Suggests high fairness at
0.05 significance
33. Play the game @
http://www.comp.nus.edu.sg/~hongjun/GD.html
Thank
You!
Bhojan Anand
(Presenter),
Wong Hong Wei
Editor's Notes
Recently, development in the industry resulted in the asynchronous multiplayer concept. Unlike most multiplayer games which demands players to play together at the same time, asynchronous multiplayer can be played even when other players are not around. In Draw Something, a player draws a picture given a word. The opponent does not need to respond instantly, and can choose to guess the word any time after that.
Global Domination is designed to experiment with the possibility of incorporating such an element into a multiplayer shooter. The player plays against an Artificial Intelligence (AI) Bot that imitates the behavior of another player. A common element is seen in Forza Motorstorm in the form of a Drivatar [11].
We restrict the scope of the game mode to “Capture and Hold” (eg. Killzone)
Remember to explain rules
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In our implementation, we will make use of SBPCG for map generation due to the abundance of research into the area. SBPCG utilises a generate-and-test approach in the following steps:
Candidate contents are created.
Each candidate is assigned a grade/fitness using a fitness function.
Candidates with lower fitness are discarded and replaced with a new candidate that can be a mutation and/or a combination of the better candidates.
Repeat 2 and 3 until a satisfactory fitness is obtained.
In such functions, features are retrieved from the content which is mapped directly to its fitness. We propose a list of measurable objectives (in decreasing priority) based on what constitutes a good multiplayer map (See Section 4). In the following, team flags refer to 2 flags (out of 4) that are the closest to the team base. The other 2 flags are team flags for the other team.
Flag Fairness – The mean distance travelled to team flags are measured for each team by moving from the team base to all flags with the A* algorithm. The negative value of the difference in the distance is used.
Forced Collision Points – This can only be either 0 or 1. It is 1 if there exists no more than 2 simple paths (room: vertex, edge: door between rooms) between any one of the team flags and the opponent’s team flags. This can only be applied for the Growth and Subdivision Methods.
Overall Flag Fairness – The mean distance travelled to all flags are measured in a way similar to above. The difference in the value is used. The weight for this feature is negative.
Pacing – The mean time to travel to all flags are measured for both teams (by computing mean distance/speed). While unsupported by any actual research, judging from our experience, we feel that the optimal pace would be to meet an opponent 12-18s after spawning from the team base. Therefore, the value would be 1 if the mean time falls between 12 and 18s, and decreases as it goes away from the range.
In such functions, features are retrieved from the content which is mapped directly to its fitness. We propose a list of measurable objectives (in decreasing priority) based on what constitutes a good multiplayer map (See Section 4). In the following, team flags refer to 2 flags (out of 4) that are the closest to the team base. The other 2 flags are team flags for the other team.
Flag Fairness – The mean distance travelled to team flags are measured for each team by moving from the team base to all flags with the A* algorithm. The negative value of the difference in the distance is used.
Forced Collision Points – This can only be either 0 or 1. It is 1 if there exists no more than 2 simple paths (room: vertex, edge: door between rooms) between any one of the team flags and the opponent’s team flags. This can only be applied for the Growth and Subdivision Methods.
Overall Flag Fairness – The mean distance travelled to all flags are measured in a way similar to above. The difference in the value is used. The weight for this feature is negative.
Pacing – The mean time to travel to all flags are measured for both teams (by computing mean distance/speed). While unsupported by any actual research, judging from our experience, we feel that the optimal pace would be to meet an opponent 12-18s after spawning from the team base. Therefore, the value would be 1 if the mean time falls between 12 and 18s, and decreases as it goes away from the range.
In such functions, features are retrieved from the content which is mapped directly to its fitness. We propose a list of measurable objectives (in decreasing priority) based on what constitutes a good multiplayer map (See Section 4). In the following, team flags refer to 2 flags (out of 4) that are the closest to the team base. The other 2 flags are team flags for the other team.
Flag Fairness – The mean distance travelled to team flags are measured for each team by moving from the team base to all flags with the A* algorithm. The negative value of the difference in the distance is used.
Forced Collision Points – This can only be either 0 or 1. It is 1 if there exists no more than 2 simple paths (room: vertex, edge: door between rooms) between any one of the team flags and the opponent’s team flags. This can only be applied for the Growth and Subdivision Methods.
Overall Flag Fairness – The mean distance travelled to all flags are measured in a way similar to above. The difference in the value is used. The weight for this feature is negative.
Pacing – The mean time to travel to all flags are measured for both teams (by computing mean distance/speed). While unsupported by any actual research, judging from our experience, we feel that the optimal pace would be to meet an opponent 12-18s after spawning from the team base. Therefore, the value would be 1 if the mean time falls between 12 and 18s, and decreases as it goes away from the range.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.
We will be attempting PCG for maps in multiplayer shooters, which are still in its early stages of research. While PCG is sometimes used by multiplayer shooter game designers who would have to alter the generated maps in the final product, our goal is to remove the middleman completely. Optimisation therefore becomes an issue. If we are successful, development time could be drastically reduced, and the result is an unlimited set of maps.