Game Development
This week started with Michele, Neall and myself splitting off to organise the PCG for Project Helix. We agreed that we would use a Binary Space Partition (BSP) system, which will utilise a binary tree to organise the rooms within the world (http://pcgbook.com/wp-content/uploads/chapter03.pdf). After this we decided on the key tasks that would need to be completed to start the PCG system. The three most important tasks we came up with were:
1. Make blueprint rooms to place in the world.
2. Make a binary tree implementation.
3. Use the binary tree to place rooms using BSP.
I took the blueprint rooms, which entailed making a collection of rooms and corridors. Each are made as a blueprint, which makes it easier for the PCG system to drop them in as a complete room. These rooms were made from the block-out elements created by our artists.
On Thursday I had completed my tasks and was without a task to complete, so I spent some time being a general dog's body. Becky then assigned me to investigate getting input from the Oculus. At time of writing I haven't made much progress with this task.
1. Make blueprint rooms to place in the world.
2. Make a binary tree implementation.
3. Use the binary tree to place rooms using BSP.
I took the blueprint rooms, which entailed making a collection of rooms and corridors. Each are made as a blueprint, which makes it easier for the PCG system to drop them in as a complete room. These rooms were made from the block-out elements created by our artists.
On Thursday I had completed my tasks and was without a task to complete, so I spent some time being a general dog's body. Becky then assigned me to investigate getting input from the Oculus. At time of writing I haven't made much progress with this task.
Dissertation
After some searching I have found a simulation made by a Artem Volkhin that runs in a browser. He designed the system as part of his undergrad, to use as the base for testing genetic AI algorithms for traffic control. This made it extremely useful for my purposes too.
However there are still some changes that need to be made to the system before it is fit or my purposes. Over the last week I have completed the following changes to the system:
1. Traffic lights now operate to allow left & forward flow, then right flow. Instead of the default left flow and froward & right flow.
2. Cars now prioritise the leftmost lane for forward flow. Combine with No. 1 this was designed to avoid lane clogging which was being caused by forward cars in both lanes. However I have not found a way to ensure forward flow is from only the leftmost lane, this may be a limitation on the current simulation.
3. Added debug text functionality for each traffic signal. This is in anticipation of per signal traffic monitoring.
However there are still some changes that need to be made to the system before it is fit or my purposes. Over the last week I have completed the following changes to the system:
1. Traffic lights now operate to allow left & forward flow, then right flow. Instead of the default left flow and froward & right flow.
2. Cars now prioritise the leftmost lane for forward flow. Combine with No. 1 this was designed to avoid lane clogging which was being caused by forward cars in both lanes. However I have not found a way to ensure forward flow is from only the leftmost lane, this may be a limitation on the current simulation.
3. Added debug text functionality for each traffic signal. This is in anticipation of per signal traffic monitoring.