ARTIFICIAL CITY A TRAFFIC SIMULATION INSPIRATION CitiesXL SimCity 4 http://forum.citiesxl.com/viewtopic.php?f=58&t=32 98 http://www.centgraf.net/metroviz/r_external.html INSPIRATION GTA IV Transport Tycoon http://rockstarhq.multiplayernetwork.net/news/2067/ http://abdussamad.com/archives/60-Classicstrategy-gaming-with-Transport-Tycoon.html INDUSTRY CONTEXT Transmodeler SUMO http://www.caliper.com/transmodeler/ http://sumo.sourceforge.net/ BRIEF To build a traffic simulator BREAKING DOWN Vehicles will need to react to each other More than one vehicle at a time Need mechanism to guide vehicles between them Multiple road elements Vehicles travel on roads You travel to a location Need mechanism to guide to goal REQUIREMENTS A road network to navigate in relation to Multiple vehicles with separate destinations that can react to each other A means for vehicles to move locate and reach their destination DESIGN DECISIONS Network generation? 2D vs. 3D Grid vs. Free-form Language? Metadata? Complexity DESIGN DECISIONS Network generation? 2D vs. 3D 2D Pre-coded Scenarios Grid vs. Free-form Free-form Language? C# Metadata? Not beyond performance Complexity Fixed vehicle attributes FREE-FORM ROADS Join the Dots Time expensive to design large networks this way System can speed process by calculating roads itself ROAD “STRIP” Two coordinates held in association Use offset values to render as a stretch of tarmac Smallest linear component of a road that may be curved Place together to represent curves MULTIPLE DIRECTION ROADS Issues with interpolating the nodes Made worse by sharp corners and multiple lanes Issues with smoothing SHARP CORNERS Road width increasing at corners SMOOTHING CORNERS Unequal number of lane elements Loss of relation to node VEHICLE CONCEPTS Components govern performance Occupant governs behaviours PERFORMANCE Acceleration/Speed depend on power and weight Cornering depends on brakes and chassis BEHAVIOURS Severity of Acceleration/Deceleration Stopping Distance Lane changing behaviours Comfortable top speed Depends on Driver Sometimes feelings, such as stress or impatience Other times as preference or habit BASIC MOVEMENT Move towards target node For example, one from a road “strip”. Don’t collide with other vehicles Try to match pace MORE COMPLEX INTERACTIONS Attempt to bypass obstructions Beware of new vehicles which might present collision risks FUZZY LOGIC Multi-value approach to logic Decimal based membership of values Represent Driver as collection of fuzzy sets Supply situational information and de-fuzzify key values to determine decisions LANE CHANGE EXAMPLE Driver waits at the back of queue for lights to change The driver method processes that the adjacent lane has a cars length of space Potential Space > Car Length The adjacent lane has no streaming controls, thus the driver can continue on a direct route to their destination from it Route suitability is true The driver has a low membership value to the Impatience fuzzy set, but currently possesses a high membership to the Stress set which has been increasing due to not reaching locations as rapidly as the path-finding algorithm expected them to. The de-fuzzified value combined with the earlier variables passes the threshold value and the car maneuvers into the free space PREREQUISITES The more freedom of navigation an automated element is given the greater the scope for error This can be managed by properly training the automated elements before declaring the simulation finalised Movement of vehicles with relation to nodes requires a finalised network structure ROUTE-PLANNING The means of determining the shortest route from point A to point B