This repository holds the code created for my and Johan's batchelors thesis at Malmö University and is also an entry to the GDMC competition for 2021. This generator was creted for the McEdit Unified framework. To use it the repo should be exctracted to a directory then that directory is placed in the stock-filter directory. Afterwards the filter is available for use in the McEdit client. The current implementation by 2021-07-13 can at most handle a 256x256 area and takes aproximately 10 minutes to execute on that sized area.
- Follow the GDMC Instructions for getting started
- In your python 2.7 environment, esnure you have pygame 1.9.4 installed (use the "pip install pygame==1.9.4" command in the commandconsole)
- Extract this repo to the McEdit stock-filters directory (..\mcedit\stock-filters\MultiAgentFilter_AE_JF)
- Run McEdit and check in the filter list. This should be visible as "[MultiAgentFilter_AE_JF]main.py"
The generator utilizes agents to accomplish its task. These are deffined as a thing which exist in the world, can take in information about its vicinity and act to make changes in the world.
To generate a settlement the generator uses a sequence of 4 steps.
- Scanning and Data processing
- Finding settlement start position
- Generating Roads
- Generating Buildings
The Scanning step reads in the selected area in the minecraft world and uses the data to build the required datastructures. For example the heightmap and graph. Then the start position is selected as a position in the largest flat area in the selection. The road generation uses two different agents to create a well connected road network the minecraft player character can travese. Finally the buildings are generated by finding available plots adjacent to roads and constructed on.
To get the full explanation of the generator see chapter 4 in our thesis paper published on diva-portal.