Automatic Geodata Processing Methods for Real-World City Visualizations in Cities: Skylines

.


Introduction
Games, and video games in particular, are immensely popular, as documented in a recent survey by the Pew Research Center. According to this study, 90 percent of surveyed teenagers play video games of some kind either on a cell phone, computer, or a console [1]. Though games are mainly for entertainment, they have also been a subject of research in numerous studies across various academic fields, especially in education due to their ability to pass on information with ease [2,3]. In the field of urban planning, video games are often used for civic engagement [4][5][6]. City-building games represent a specific example of game use in the field of urban planning. Aside from inspiring new generations of city planners [7,8], these games have been used primarily in education, but have also recently begun to be utilized for visualizations of real-world places in participation projects [9][10][11][12]. However, the lack of professional tools and methods for processing geographical data often prevents the efficient use of video games for non-entertainment purposes. This problem also applies to Cities: Skylines. The possibilities of uploading geographical data into the game, or extracting the game objects into geographical data, are quite limited. Authors of previous case studies, where Cities: Skylines was used for visualizations of a real-world place, have reported that the creation process of the game model from geographical data is complicated and lengthy. Nevertheless, Cities: Skylines offers an extensive application programing interface (API) that allows for the game to be modified from its looks to its behavior. Using the API, a game modification (often referred to as a game mod) for processing

City-Building Game Genre Overview
The best-known city-building game is undoubtedly SimCity, from the development studio Maxis. Moss [7] walks us through the history of the city-building game genre from the original SimCity released in 1989, over various titles in this genre to the latest release in the SimCity series: SimCity 2013. Aside from being commercially successful, SimCity has also been recognized in the academic field, most notably as an experimental learning tool in spatial planning classes [27][28][29][30]. However, SimCity 2013-the most recent title in the SimCity series-encountered several problems after its release, which led to the game's poor reception among players [7]. In 2015, the Finnish game development studio Colossal Order released their take on a city-building game, named Cities: Skylines. This game was well received as it delivered desired features such as a 3D graphics environment, an extensive API for creating game modifications, a mass transit system, and well-functioning agent-based simulations controlling citizens, vehicles, and other game objects [7]. Today, Cities: Skylines is arguably the best city-building game on the market. We can conclude this from (1) its commercial success, where Cities: Skylines has sold six million copies [24] compared to SimCity 2013's two million copies [31]; and (2) the size of the gaming community gathered on forums on Reddit.com where the forum dedicated to Cities: Skyline r/CitiesSkylines has more than 200,000 subscribers [32] whereas the forum dedicated to SimCity's latest reincarnation, r/SimCity is followed by a much lower number of 25,000 subscribers [33].

Cities: Skylines Overview
Cities: Skylines can be described as a single-player open-ended city-building simulation. In the game, players engage in urban planning by establishing the road network, controlling zoning, providing public services and public transportation, and taxation. Players maintain various elements of the city such as its budget, education, employment, pollution levels, etc. All of the simulated phenomena can be monitored in 29 "info views" that provide visually attractive outputs [34]. Figure 1 presents an example of an info view displaying the noise pollution levels in the modeled city.

City-Building Game Genre Overview
The best-known city-building game is undoubtedly SimCity, from the development studio Maxis. Moss [7] walks us through the history of the city-building game genre from the original SimCity released in 1989, over various titles in this genre to the latest release in the SimCity series: SimCity 2013. Aside from being commercially successful, SimCity has also been recognized in the academic field, most notably as an experimental learning tool in spatial planning classes [27][28][29][30]. However, SimCity 2013-the most recent title in the SimCity series-encountered several problems after its release, which led to the game's poor reception among players [7]. In 2015, the Finnish game development studio Colossal Order released their take on a city-building game, named Cities: Skylines. This game was well received as it delivered desired features such as a 3D graphics environment, an extensive API for creating game modifications, a mass transit system, and wellfunctioning agent-based simulations controlling citizens, vehicles, and other game objects [7]. Today, Cities: Skylines is arguably the best city-building game on the market. We can conclude this from (1) its commercial success, where Cities: Skylines has sold six million copies [24] compared to SimCity 2013's two million copies [31]; and (2) the size of the gaming community gathered on forums on Reddit.com where the forum dedicated to Cities: Skyline r/CitiesSkylines has more than 200,000 subscribers [32] whereas the forum dedicated to SimCity's latest reincarnation, r/SimCity is followed by a much lower number of 25,000 subscribers [33].

Cities: Skylines Overview
Cities: Skylines can be described as a single-player open-ended city-building simulation. In the game, players engage in urban planning by establishing the road network, controlling zoning, providing public services and public transportation, and taxation. Players maintain various elements of the city such as its budget, education, employment, pollution levels, etc. All of the simulated phenomena can be monitored in 29 "info views" that provide visually attractive outputs [34]. Figure  1 presents an example of an info view displaying the noise pollution levels in the modeled city. As above-mentioned, Cities: Skylines can be adjusted significantly thanks to the rich modding environment. This game offers an extensive API written in the programming language C# as well as As above-mentioned, Cities: Skylines can be adjusted significantly thanks to the rich modding environment. This game offers an extensive API written in the programming language C# as well as online support in the form of modding documentation and user forums. Numerous mods created by the gaming community have been introduced to the game that modify simulations related to urban planning: mods that incorporate more realistic traffic patterns (e.g., traffic jams in the morning and afternoons when people go to and from work/school); mods that allow for the preservation of historical buildings, the lack of which was criticized by Bereitschaft [18]; and even mods that allow vertically combining commercial and residential zones. Table 1 lists selected Cities: Skylines game mods that work with geographical data or modify the simulated urban processes. Due to the capability of Cities: Skylines to simulate thousands of citizens and cars, Eisele et al. [35] used this game to model decentralized smart systems. To apply the desired behavior of traffic lights for the simulated scenarios, a mod was created using the game's API [35]. These examples demonstrate the strength of the Cities: Skylines' modding, which is arguably unmatched in the city-building genre.

Cities: Skylines in Visualization Case Studies
Cities: Skylines is built on the gaming engine Unity, thanks to which it offers a visually appealing graphics environment in a spacious 3D world that can be roamed almost freely. Though the game is primarily oriented toward building imaginary cities, many players have been inclined to use this game to create a model of their hometowns or other well-known real-world places [36]. However, visualizations in Cities: Skylines can also be interesting for the general public.
The city of Hämeenlinna, Finland held a contest to design an area near the city center using the game Cities: Skylines. First, the city planners created a map for the game containing the road network and water resources, which served as a template for the contestants, who then turned this map into a playable model of the given city area [9]. The city of Stockholm in Sweden used Cities: Skylines to model the intended development of the Royal Seaport district and offered this model to the general public, who could then explore the modeled area and contribute new ideas to the development plan [10]. Another visualization using Cities: Skylines was conducted at the Norwegian University of Life Sciences in Oslo. First, a model of Oslo was created in the game by an experienced player and then this model was examined by students from the point of view of urban planning and modeling [11].
A model of the German city of Braunschweig was created in Cities: Skylines to simulate the production of urban factories [12]. In this research, Juraschek et al. [12] chose Cities: Skylines for its simulating capabilities, visually rich outputs of simulated phenomena such as noise pollution, and the extended possibilities of amending the game with the use of "mods". However, regarding building the model, Juraschek et al. [12] states that: "As for now no automated script for transferring the topological data into the game is available that produces high quality results. This can make the creation of the model very time consuming in the beginning." Therefore, in order to remove the obstacles in the model creation process, this research presents methods that allow for automated, simple, repeatable, and geographically accurate modeling of most of the inhabited locations on Earth in Cities: Skylines.

Materials and Methods
An important task for using Cities: Skylines "seriously" is to find a way to efficiently process geodata for the purposes of the game. The current tools have many limitations and using them for model creation is time consuming and complicated. Therefore, the main focus of this research was to provide a tool that will help bridge the gap between the game and the GIS domain. This tool should offer automated, simple to use, repeatable, and geographically accurate methods of importing geodata into the game as well as exporting the game objects out as GIS data.
The presented game mod GeoSkylines was designed to include the following aspects: • Enable the use of any dataset of geodata (not tied directly to OSM).

•
Enable formatting of the source geodata.

•
Provide a minimalistic graphics user interface (GUI) so the mod is less prone to breaking after frequent game updates.

•
Give maximum focus to the accuracy of the import and export methods.
In order to fulfil the first two aspects, the process of preparing the geodata was done separately, before running the import methods of the GeoSkylines game mod. For storing the geodata, we chose to use a simple Comma Separated Value (CSV) format with geometry data recorded in Well-Known Text (WKT) format. Regarding the third aspect, the GeoSkylines mod does not include a GUI; instead, methods are activated via specified hot key combinations.
The overall process of creating a playable model in Cities: Skylines consists of three stages, as shown in Figure 2. model the intended development of the Royal Seaport district and offered this model to the general public, who could then explore the modeled area and contribute new ideas to the development plan [10]. Another visualization using Cities: Skylines was conducted at the Norwegian University of Life Sciences in Oslo. First, a model of Oslo was created in the game by an experienced player and then this model was examined by students from the point of view of urban planning and modeling [11]. A model of the German city of Braunschweig was created in Cities: Skylines to simulate the production of urban factories [12]. In this research, Juraschek et al. [12] chose Cities: Skylines for its simulating capabilities, visually rich outputs of simulated phenomena such as noise pollution, and the extended possibilities of amending the game with the use of "mods". However, regarding building the model, Juraschek et al. [12] states that: "As for now no automated script for transferring the topological data into the game is available that produces high quality results. This can make the creation of the model very time consuming in the beginning." Therefore, in order to remove the obstacles in the model creation process, this research presents methods that allow for automated, simple, repeatable, and geographically accurate modeling of most of the inhabited locations on Earth in Cities: Skylines.

Materials and Methods
An important task for using Cities: Skylines "seriously" is to find a way to efficiently process geodata for the purposes of the game. The current tools have many limitations and using them for model creation is time consuming and complicated. Therefore, the main focus of this research was to provide a tool that will help bridge the gap between the game and the GIS domain. This tool should offer automated, simple to use, repeatable, and geographically accurate methods of importing geodata into the game as well as exporting the game objects out as GIS data.
The presented game mod GeoSkylines was designed to include the following aspects: • Enable the use of any dataset of geodata (not tied directly to OSM).

•
Enable formatting of the source geodata.

•
Provide a minimalistic graphics user interface (GUI) so the mod is less prone to breaking after frequent game updates.

•
Give maximum focus to the accuracy of the import and export methods.
In order to fulfil the first two aspects, the process of preparing the geodata was done separately, before running the import methods of the GeoSkylines game mod. For storing the geodata, we chose to use a simple Comma Separated Value (CSV) format with geometry data recorded in Well-Known Text (WKT) format. Regarding the third aspect, the GeoSkylines mod does not include a GUI; instead, methods are activated via specified hot key combinations.
The overall process of creating a playable model in Cities: Skylines consists of three stages, as shown in Figure 2. First, using standard GIS tools, geodata are downloaded, transformed, and converted into a suitable CSV file. Prepared CSV files are stored in the game's default directory. This directory is also the storage location for CSV files that are created as an export of the game objects, the raster image of tree coverage that is used by the tree import method, CSV files used for matching the types of geographical objects to the types of game objects (e.g., road types), and a configuration file that is First, using standard GIS tools, geodata are downloaded, transformed, and converted into a suitable CSV file. Prepared CSV files are stored in the game's default directory. This directory is also the storage location for CSV files that are created as an export of the game objects, the raster image of tree coverage that is used by the tree import method, CSV files used for matching the types of geographical objects to the types of game objects (e.g., road types), and a configuration file that is used to define the latitude and longitude coordinates of the selected mid-point and other settings that help adjust the import and export processes.
In the second stage, a base model is created within the game's map editor by running import methods of the GeoSkylines game mod. All methods are described in Table 2. A full description of the presented methods is available on development platform GitHub [37]. To achieve the best result for the created base model, the methods should be called in this order: 1. Import terrain using the inbuilt heightmaps loader; 2.
Create game road network based on geographical road segment data; 3.
Optional step: create game rail network based on geographical rail segment data; 4.
Lower terrain to form water basins based on geographical water resources data; 5.
Create game tree coverage based on geographical tree coverage data (rasterized); and 6.
Create game services based on geographical data of services (e.g., OSM amenity data).
The last stage of creating a playable model in Cities: Skylines involves manual post-processing of the base model and turning it into a playable model that can run game simulations. The manual post-processing includes fixing issues of the generated base model (e.g., caused by inaccurate geodata), but also adding necessities such as connecting the city model to a highway (in order for new inhabitants to move in) or adding water resources (creating water basins is automated but placing a water resource must be done manually). The amount of time spent on manual post-processing of the base model depends on the required level of detail. Doing the bare minimum so the model is playable can take tens of minutes, but in cases where incorporating the greatest details (e.g., adding unique buildings) to maximize the attractivity of the model is desired, the manual post-processing can take hours to complete. Regardless of the case, the manual post-processing and fine tuning of the model should be conducted by an experienced Cities: Skylines player.

Converting Geographical Coordinates into Game Coordinates
The cornerstone of all import and export methods is the conversion of geographical coordinates into game coordinates (and vice versa). Cities: Skylines uses cells with dimensions of 8 × 8 m; 240 × 240 of these cells make one tile (1920 × 1920 m); 9 × 9 tiles make the maximum game area. This in metric is 17.28 × 17.28 km, for a total area of 298.5984 squared km. However, the playable area in the base version consists of just 5 × 5 tiles (9.6 × 9.6 km) and the maximum area can only be unlocked with the installation of the game mod named "81 tiles".
The game utilizes a projected coordinate system using meters as units. This coordinate system has three axes: x, y, and z, where the y axis, contrary to the geographical standards, stores height values (behavior inherited from the gaming engine Unity). Axis z then serves as the 'northing', according to the GIS conventions. The point of origin is in the center of the game area, thus the axes x and z range from −8640 to 8640.
We can consider the game's coordinate system as a variation of the Universal Transverse Mercator (UTM) projected coordinate system. For the actual coordinate conversion, we can then simply use existing methods for converting WGS 84 coordinates to UTM coordinates. The overall conversion process for import will then follow these steps: Game coordinates of any object created in the game then equal to UTM coordinates of this object minus the UTM coordinates of the mid-point; where X and Z represent the game axes in 2D space; E represents easting; N represents northing; O represents the geographical object; and M represents the mid-point.
Likewise, the conversion process for export will follow these steps: • Convert WGS 84 coordinates of the mid-point to UTM coordinates; • Calculate the UTM coordinates of the game objects: • Convert the UTM coordinates of game objects to WGS 84 coordinates (the required UTM zone is obtained from the UTM coordinates of the mid-point).

Exporting Game Objects as Geographic Information System (GIS) Data
The GeoSkylines game mod also offers methods to export game objects, specifically trees, roads, railways, buildings, and zones. This feature could be used for data collection in participation projects like the ones above-mentioned where players were asked to design a new suburb. Using the export methods in GeoSkylines, the best designs could be exported into GIS data that could then be further processed. As an example, Figure 3 shows the exported roads and buildings in QGIS. Purple lines represent game roads and grey polygons represent game buildings. Exported data were displayed on top of a base map layer in the location of the city of Svit (Slovakia), which confirmed the accuracy of the used algorithms for converting coordinates. Additionally, as visible in Figure 3, the Bezier curve algorithm was employed to efficiently export curved roads created within the game.
ISPRS Int. J. Geo-Inf. 2020, 9, x FOR PEER REVIEW 8 of 18 methods in GeoSkylines, the best designs could be exported into GIS data that could then be further processed. As an example, Figure 3 shows the exported roads and buildings in QGIS. Purple lines represent game roads and grey polygons represent game buildings. Exported data were displayed on top of a base map layer in the location of the city of Svit (Slovakia), which confirmed the accuracy of the used algorithms for converting coordinates. Additionally, as visible in Figure 3, the Bezier curve algorithm was employed to efficiently export curved roads created within the game.

Results
We tested the presented methods by building models of the cities below in the game Cities: Skylines: • Svit, Slovakia; and • Olomouc, Czech Republic.

City of Svit
The city of Svit (Slovakia), with a current population of 7790 inhabitants, was established in 1934 and thus is relatively young. This city was built as a "company town", according to urban planning practices of that time. We recognized that these modern urban planning practices were similar to the simulations of the game; therefore, we decided to select this town for study. Due to its reasonable size, this town was also primarily used for testing the import and export methods. Coordinates of the bounding box represent an area of 17.28 × 17.28 km for the selected location and are shown in Table 3.

Results
We tested the presented methods by building models of the cities below in the game Cities: Skylines: • Svit, Slovakia; and • Olomouc, Czech Republic.

City of Svit
The city of Svit (Slovakia), with a current population of 7790 inhabitants, was established in 1934 and thus is relatively young. This city was built as a "company town", according to urban planning practices of that time. We recognized that these modern urban planning practices were similar to the simulations of the game; therefore, we decided to select this town for study. Due to its reasonable size, this town was also primarily used for testing the import and export methods. Coordinates of the bounding box represent an area of 17.28 × 17.28 km for the selected location and are shown in Table 3. • ImportRoads() to generate the road network in the game. OSM data with the tag "highway" were used to prepare the roads_rwo.csv file. • ImportWaterWays() to generate water basins for waterways in the game. OSM data with the tag "waterway" were used to prepare the waterway_rwo.csv file. • ImportWaterBody() to generate water basins for resources of standing water in the game. OSM data with the tag "natural=water" were used to prepare the water_rwo.csv file. • ImportTreesRaster() to generate tree coverage in the game. The input raster image was prepared from the CORINE land cover layer. This layer was clipped according to the defined area and filtered to include only forested areas (codes 311, 312, 313). Forested areas covered a large part of the overall modeled area, resulting in breaching the limit of trees created (250,000). Therefore, the variable ImportTreesRasterMultiply was set to −2, meaning that every second creation of a tree will be skipped (i.e., dividing the total number of trees by 2). • ImportServices() to generate services in the game. OSM data with the tag "amenity" were used to prepare the amenity_rwo.csv file. To create a base model of Svit in Cities: Skylines, the following methods were completed: • ImportRoads() to generate the road network in the game. OSM data with the tag "highway" were used to prepare the roads_rwo.csv file. • ImportWaterWays() to generate water basins for waterways in the game. OSM data with the tag "waterway" were used to prepare the waterway_rwo.csv file. • ImportWaterBody() to generate water basins for resources of standing water in the game. OSM data with the tag "natural=water" were used to prepare the water_rwo.csv file. • ImportTreesRaster() to generate tree coverage in the game. The input raster image was prepared from the CORINE land cover layer. This layer was clipped according to the defined area and filtered to include only forested areas (codes 311, 312, 313). Forested areas covered a large part of the overall modeled area, resulting in breaching the limit of trees created (250,000). Therefore, the variable ImportTreesRasterMultiply was set to −2, meaning that every second creation of a tree will be skipped (i.e., dividing the total number of trees by 2). • ImportServices() to generate services in the game. OSM data with the tag "amenity" were used to prepare the amenity_rwo.csv file.  As part of the manual post-processing of the base model, the following methods were completed: • Fixing issues of the created base model (e.g., due to incorrect geographical data); • Adding water resources to created water basins; As part of the manual post-processing of the base model, the following methods were completed: • Fixing issues of the created base model (e.g., due to incorrect geographical data); • Adding water resources to created water basins; • Adding outside highway connections to the created road network in order for the inhabitants to move into the city; and • Adding zoning by using the game mod Image Overlay, which allows the display of pictures as a transparent layer in the game. A map image was created from Svit's zoning layer. Figure 5 displays the resulting playable model of Svit after manual post-processing of the base model. Figure 6 displays a closeup of the playable model. • Adding zoning by using the game mod Image Overlay, which allows the display of pictures as a transparent layer in the game. A map image was created from Svit's zoning layer. Figure 5 displays the resulting playable model of Svit after manual post-processing of the base model. Figure 6 displays a closeup of the playable model.    • Adding zoning by using the game mod Image Overlay, which allows the display of pictures as a transparent layer in the game. A map image was created from Svit's zoning layer. Figure 5 displays the resulting playable model of Svit after manual post-processing of the base model. Figure 6 displays a closeup of the playable model.

City of Olomouc
The city of Olomouc (Czech Republic) is the sixth biggest city in the country, with a population of 100,378 inhabitants. This city is very old, especially the center, which contains many churches and other historic buildings. However, the city of Olomouc has gone through significant changes in the last few decades [38]. This city was selected for this study for its history and size. Coordinates of the bounding box representing an area of 17.28 × 17.28 km for the selected location are shown in Table 4. To create a base model of Olomouc in Cities: Skylines, the following methods were completed: • Uploading terrain using the game's inbuilt option. A heightmap for the area was prepared in GIS software from the Czech Republic's national DEM DMR5G. • ImportRoads() to generate the road network in the game. OSM data with the tag "highway" were used to prepare the roads_rwo.csv file. • ImportWaterWays() to generate water basins for waterways in the game. OSM data with the tag "waterway" were used to prepare the waterway_rwo.csv file. • ImportWaterBody() to generate water basins for resources of standing water in the game. OSM data with the tag "natural=water" were used to prepare the water_rwo.csv file. • ImportTreesRaster() to generate tree coverage in the game. An input raster image was prepared from the Urban Atlas Street Tree layer. This layer was clipped according to the defined area. • ImportServices() to generate services in the game. OSM data with the tag "amenity" were used to prepare the amenity_rwo.csv file.

City of Olomouc
The city of Olomouc (Czech Republic) is the sixth biggest city in the country, with a population of 100,378 inhabitants. This city is very old, especially the center, which contains many churches and other historic buildings. However, the city of Olomouc has gone through significant changes in the last few decades [38]. This city was selected for this study for its history and size. Coordinates of the bounding box representing an area of 17.28 × 17.28 km for the selected location are shown in Table 4. To create a base model of Olomouc in Cities: Skylines, the following methods were completed:

•
Uploading terrain using the game's inbuilt option. A heightmap for the area was prepared in GIS software from the Czech Republic's national DEM DMR5G. • ImportRoads() to generate the road network in the game. OSM data with the tag "highway" were used to prepare the roads_rwo.csv file. • ImportWaterWays() to generate water basins for waterways in the game. OSM data with the tag "waterway" were used to prepare the waterway_rwo.csv file. • ImportWaterBody() to generate water basins for resources of standing water in the game. OSM data with the tag "natural=water" were used to prepare the water_rwo.csv file. • ImportTreesRaster() to generate tree coverage in the game. An input raster image was prepared from the Urban Atlas Street Tree layer. This layer was clipped according to the defined area. • ImportServices() to generate services in the game. OSM data with the tag "amenity" were used to prepare the amenity_rwo.csv file.   As part of the manual post-processing of the base model, the following methods were completed:

•
Fixing issues of the created base model (e.g., due to incorrect geographical data); • Adding water resources to the created water basins; • Adding outside highway connections to the created road network in order for the inhabitants to move into the city; • Adding zoning by using the game mod Image Overlay. A map image was created from Olomouc zoning layer; and • Adding unique buildings such as churches and skyscrapers. Figures 8 and 9 show the resulting playable model of the city center of Olomouc after manual post-processing of the base model. As part of the manual post-processing of the base model, the following methods were completed: • Fixing issues of the created base model (e.g., due to incorrect geographical data); • Adding water resources to the created water basins; • Adding outside highway connections to the created road network in order for the inhabitants to move into the city; • Adding zoning by using the game mod Image Overlay. A map image was created from Olomouc zoning layer; and • Adding unique buildings such as churches and skyscrapers. Figures 8 and 9 show the resulting playable model of the city center of Olomouc after manual post-processing of the base model.    As part of the manual post-processing of the base model, the following methods were completed: • Fixing issues of the created base model (e.g., due to incorrect geographical data); • Adding water resources to the created water basins; • Adding outside highway connections to the created road network in order for the inhabitants to move into the city; • Adding zoning by using the game mod Image Overlay. A map image was created from Olomouc zoning layer; and • Adding unique buildings such as churches and skyscrapers. Figures 8 and 9 show the resulting playable model of the city center of Olomouc after manual post-processing of the base model.   Aside from the physical visualizations, we also explored several game simulations in the created model of Olomouc. Figure 10 displays the simulated noise pollution in the Olomouc model. According to the game's algorithms, noise pollution is affected by traffic, industry, commercial zones, and specific types of buildings such as power plants.
ISPRS Int. J. Geo-Inf. 2020, 9, x FOR PEER REVIEW 13 of 18 Aside from the physical visualizations, we also explored several game simulations in the created model of Olomouc. Figure 10 displays the simulated noise pollution in the Olomouc model. According to the game's algorithms, noise pollution is affected by traffic, industry, commercial zones, and specific types of buildings such as power plants. Inhabitants of the model of Olomouc utilize the road system to travel to work, school, shops, etc. The game individually tracks the passage of every citizen's vehicle as well as service and freight vehicles. In the traffic info view, the player can observe the traffic flow of each road and identify problematic parts of the road system. Figure 11 displays the traffic info view for the created model of Olomouc.  Inhabitants of the model of Olomouc utilize the road system to travel to work, school, shops, etc. The game individually tracks the passage of every citizen's vehicle as well as service and freight vehicles. In the traffic info view, the player can observe the traffic flow of each road and identify problematic parts of the road system. Figure 11 displays the traffic info view for the created model of Olomouc. Aside from the physical visualizations, we also explored several game simulations in the created model of Olomouc. Figure 10 displays the simulated noise pollution in the Olomouc model. According to the game's algorithms, noise pollution is affected by traffic, industry, commercial zones, and specific types of buildings such as power plants. Inhabitants of the model of Olomouc utilize the road system to travel to work, school, shops, etc. The game individually tracks the passage of every citizen's vehicle as well as service and freight vehicles. In the traffic info view, the player can observe the traffic flow of each road and identify problematic parts of the road system. Figure 11 displays the traffic info view for the created model of Olomouc.  Although the average traffic flow is at an acceptable rate, there are several problematic parts where the traffic congestion is high. Examples of high congestion areas are Masarykova třída, Komenského, and Chválkovická Streets, or the intersection at Náměstí Hrdinů. For comparison, Figure 12 displays Environmental Systems Research Institute's (ESRI) World Traffic Service layer (source data provided by HERE Maps) where we can observe the authentic traffic situation in Olomouc. This layer identifies the same problematic parts of the Olomouc road network as the ones identified by the game's simulations.
Although the average traffic flow is at an acceptable rate, there are several problematic parts where the traffic congestion is high. Examples of high congestion areas are Masarykova třída, Komenského, and Chválkovická Streets, or the intersection at Náměstí Hrdinů. For comparison, Figure 12 displays Environmental Systems Research Institute's (ESRI) World Traffic Service layer (source data provided by HERE Maps) where we can observe the authentic traffic situation in Olomouc. This layer identifies the same problematic parts of the Olomouc road network as the ones identified by the game's simulations. The GeoSkylines game mod's code, detailed documentation for running the import and export methods, examples of configuration and input CSV files as well as all of the resulting base and playable models are available on development platform GitHub [37].

Discussion
Cities: Skylines is currently the most advanced city-building game on the market. This game offers features such as a visually appealing 3D graphics environment, a mass transit system, and agent-based simulations that present city related processes somewhat realistically. Due to these possibilities, Cities: Skylines has begun to be used for non-entertainment purposes. In all of the case studies identified, a model of a real-world place was created from geographical data. The resulting model was then used either for participation, education, or urban modeling projects [9][10][11][12]. However, the model creation process has been described as complicated and lengthy [12]. The lack of tools processing geodata for the purposes of Cities: Skylines is preventing a wider use of the game in nonentertainment ways.
Therefore, utilizing the game's modding API, we developed simple to use import methods to create a base model in Cities: Skylines accurate, fast, automated, and repeatable by using prepared geodata. During the development of the presented methods, maximum focus was given to enable the creation of as many game objects as possible with the highest achievable accuracy. The presented methods created road and rail networks, water basins, a tree coverage, zones, and services. An The GeoSkylines game mod's code, detailed documentation for running the import and export methods, examples of configuration and input CSV files as well as all of the resulting base and playable models are available on development platform GitHub [37].

Discussion
Cities: Skylines is currently the most advanced city-building game on the market. This game offers features such as a visually appealing 3D graphics environment, a mass transit system, and agent-based simulations that present city related processes somewhat realistically. Due to these possibilities, Cities: Skylines has begun to be used for non-entertainment purposes. In all of the case studies identified, a model of a real-world place was created from geographical data. The resulting model was then used either for participation, education, or urban modeling projects [9][10][11][12]. However, the model creation process has been described as complicated and lengthy [12]. The lack of tools processing geodata for the purposes of Cities: Skylines is preventing a wider use of the game in non-entertainment ways.
Therefore, utilizing the game's modding API, we developed simple to use import methods to create a base model in Cities: Skylines accurate, fast, automated, and repeatable by using prepared geodata. During the development of the presented methods, maximum focus was given to enable the creation of as many game objects as possible with the highest achievable accuracy. The presented methods created road and rail networks, water basins, a tree coverage, zones, and services. An accurate conversion of the geographical coordinates of the source data to the game coordinates of the game objects was achieved by implementing a standard conversion algorithm between the coordinate systems WGS 84 and UTM and then by simple recalculation of the UTM coordinates into the game coordinates (and vice versa). The conversion accuracy is confirmed in Figure 3, where the game objects, exported from the model of Svit and displayed in GIS software, properly aligned with the added base layer.
However, to create a playable model, manual post-processing of the base model is required. This process might include: • Fixing issues of the base model (e.g., due to incorrect source geographical data or the code's inability to efficiently generate complex parts of the model such as tunnels).

•
Adding necessities such as connecting the city to a highway for new inhabitants to move in or adding water resources.

•
Zoning in the case where GeoSkylines's method ImportZones() cannot be used (e.g., vector layer of zoning for the selected location is not available).

•
Adding unique buildings such as churches and skyscrapers.

•
Adjusting the game simulations by implementing selected game mods.
The amount of time spent on manual post-processing of the base model depends on the size of the model and required level of detail. Adding the necessities so that the model is playable can take tens of minutes. However, for a large model where a great level of detail is required, the manual post-processing can take hours to complete. To mitigate the amount of time spent on the manual post-processing, it is recommended that this activity is completed by an experienced Cities: Skylines player. The fact that manual post-processing is still required for the creation of the playable model in Cities: Skylines is a limitation. Nevertheless, by employing the presented methods, the complexity and the time spent on the creation of such a model decreases significantly.
Using the presented methods, we built playable models of the cities of Svit (Slovakia) and Olomouc (Czech Republic). The creation of the playable model of Svit took approximately 40 min because the modeled city is relatively small, and the planned level of detail of the model was set to low. The creation of the playable model of Olomouc took approximately 8 h because the city is much larger than Svit, and the planned level of detail of the model was set higher than in the case of Svit.
When creating roads-either by script or manually-the game automatically creates zone blocks along them. These zone blocks can then be assigned with one of the available zones in the game: residential low, residential high, commercial low, commercial high, office and industrial. After setting the zones, the game starts to automatically construct the buildings. This automated creation of buildings speeds up the overall model creation, on the other hand, the look of the resulting model is more generalized. The game offers many features to increase the visual accuracy of the model. Among others, unique buildings such as churches or skyscrapers can be added to the model. Unique buildings can be created in the game's asset editor or imported from 3D modeling software. Selected game mods allow the player to construct each individual building. Although all these options are very time consuming, we recommend utilizing them if the purpose of the model in Cities: Skylines is the visualization of a city or part of it.
If, however, the purpose of the model is to run simulations, then a high level of detail of visual accuracy is not necessary as the looks of the buildings and other game objects do not affect the simulations. In some cases, the visual accuracy can even be contradictory to the game simulations. For example, the university complex in Olomouc consists of several buildings, but the university in the game is represented by a single building. Hence, adding another university building to the game to comply with the visual accuracy would affect the simulation logic. Uploaded terrain also has a minimal effect on the game simulations and serves rather as an aesthetic feature. The created model of Olomouc consisted of parts where the visual accuracy was relatively high as well as parts where the visual accuracy was reduced in favor of the game simulations.
While playing the more detailed model of Olomouc, we encountered several limitations and unrealistic behavior of the game. The demand for some of the services such as fire stations was exaggerated in the game. There are two fire stations in Olomouc, and in reality, this is sufficient. However, the same number of fire stations in the created model of Olomouc were not enough to satisfy the exaggerated demand in the game, resulting in frequent fires. Fortunately, this and similar behavior can be mitigated by game mods (e.g., the game mod No Fires, which stops the fire simulation altogether). On the other hand, traffic simulations provided satisfying results. The game's traffic simulation identified the same problematic parts of the Olomouc' road network as the ESRI's World Traffic Service layer, which presents authentic traffic data. The possibilities of fine-tuning the model simulations are vast and should be addressed in future research The presented GeoSkylines game mod also provides methods for exporting game objects, specifically: road and rail networks, buildings, zones, and trees. Thanks to this feature, player creations in Cities: Skylines can be output as GIS data, which can then be processed further in professional software. By employing the export methods, the game could be used as a data collection tool in a participation project similar to the case study of the city of Hämeenlinna where players were asked to design a new suburb [9].
Other uses of the presented methods and the overall model creation process might involve implementing them into urban planning classes. The use of city-building games for education purposes is predominantly dedicated to SimCity; the latest implementation of SimCity was done by Terzano and Morckel [16]. However, Cities: Skylines has also begun to be experimented with in education [30]. Using the presented methods, a basic model of the selected city can be created, and this model then presented to students. By playing this model, students can apply their ideas of urban planning, as in a study done by Kim and Shin [39], where students created imaginary cities in SimCity.

Conclusions
The city-building game Cities: Skylines has begun to be used with for visualizations of real-world places in various participation or education projects. However, there is a current lack of tools that process geographical data for the purposes of the game, thus the model creation has been described as complicated and time consuming. The main aim of the presented research was to develop a tool that will help bridge the gap between the game Cities: Skylines and the GIS domain.
Programmed in the game's API, the game mod GeoSkylines offers import methods that create road and rail networks, water basins, a tree coverage, zones, and services. An accurate conversion of the geographical coordinates of the source data to the game coordinates of the game objects was achieved by implementing a standard conversion algorithm between the coordinate systems WGS 84 and UTM and then by simple recalculation of the UTM coordinates into the game coordinates (and vice versa). The game mod GeoSkylines also provides methods to export game creations into GIS data that can be further processed using professional software.
Using the presented methods, geographically accurate base models of the cities of Svit (Slovakia) and Olomouc (Czech Republic) were created in the game Cities: Skylines. However, even with the use of the presented methods, manual post-processing of the base models was required in order to make the models playable. To mitigate this limitation, the manual post-processing was completed by an experienced Cities: Skylines player.
Additionally, selected simulations of the more detailed model of Olomouc were explored. In several cases, the game simulations were unrealistic (e.g., frequent fires due to the game's exaggerated demand for fire services). To mitigate unrealistic behavior of some simulations, selected game mods were implemented. On the other hand, some simulations such as the traffic simulations of citizens', service and freight vehicles provided satisfying results. The possibilities of the Cities: Skylines simulations on models of a real-world place are vast and are planned to be explored in future research.
All of the developed methods have been bundled into our Cities: Skylines game mod named GeoSkylines. The code of this mod along with the example CSV files and models are freely available on development platform GitHub [37].