ArcGIS and game engines
ArcGIS and game engines
Back in March, 2020 we had our first ever Virtual User Conference (VUC) to replace the Regional User Conference series due to the COVID-19 lockdown. I was a part of the Eagle Technology technical updates team and my contribution was presenting on GIS and game engines. We had to make it a little bit shorter than planned so this blog is an opportunity to present all of the content as originally intended.
For more information and queries please contact Zorko Sostaric
Introduction: ArcGIS and game engines, and the application for the AEC industry
My gaming past and interests
Sometime close to the end of the last century I bought my first computer and like all teenagers at the time was exploring and hoarding games and needless to say, I fell in love with them. Through the years computers and games evolved at a great pace and I was fully immersed. I played all kinds of games, from puzzles to adventure, arcade, and shoot-them-up.
Later, there was less time and opportunities for gaming, but I still kept my hand in. New kinds of games came on the market but more about that a little bit later.
You may not be familiar with the term game engine but in short, that's the term for a tool (or a set of tools, more accurately) for creating games. All of the games you may be playing on your mobile phone, console, or PC are made using a game engine. Game engines are big, complex, and require a lot of skill to fully utilize their potential. Game engines handle all aspects of a game – from graphics to sound, animation, art, physics, end platforms, and everything else that creates an end game.
Game engines are versatile, and they have multiple uses. That may be for a virtual reality type game like Half-Life: Alyx or a fully immersive experience like Star Wars: Secrets of the Empire. You may have played an augmented reality game like Pokemon GO or Angry Birds AR: Isle of Pigs.
Why are game engines important?
There are all kinds of different games today running on almost any possible device. Modern games allow players to interact with the world in an intuitive way. For instance, If there is a door you can expect it can be opened (unless blocked by debris) and if it requires a key the game will tell you. You can move objects around; some are inert, and others interact with one another. For instance, dropping a wooden crate from a roof will cause it to break; that's the rule of physics, and a game follows this logic.
If done well the game becomes an immersive and believable world. Often games will have a photorealistic look and AAA games can make it hard to distinguish between a real object and its representation in a game.
This has led to organisations such as The Architecture, Engineering and Construction (AEC) industry adopting game engines as presentation and rendering tools. In 2019 over 50% of users surveyed by the CG Architect site are experimenting with additional rendering engines (like game engines).
There are multiple studios creating games with communities of game developers that are large, very active, and supportive.
GIS and the history of games
So if this technology is emerging in the mainstream now, how did GIS or real-world data play a part? Certainly, there were games that used spatial/GIS principles like the beloved SimCity franchise. These games featured layers for water, power, etc as well as demand/supply models. But they didn't have the option to import real-world data.
Nevertheless, games like these started a whole sub-genre of city building games and with more recent games like City Skylines, modders (individual developers) began to create optional modules that enabled the loading of real-world data. Modern open-world games allow players unrestricted movement across the gaming world and even to build entire worlds such as in Minecraft.
This has sparked a whole new interest in re-creating neighbourhoods or cities in these game/virtual environments. To do this manually is a very tedious and time-consuming job, but is being overcome by using professional tools. For example, FME was used to process and import cities in Minecraft.
What can I do today?
Today there are several options for bringing in GIS data into game engines. CityEngine is the application that provides the most options. From CityEngine one can combine existing GIS data, create procedural models of buildings for example, and export models to industry-standard formats like glTF, FBX, and OBJ. These formats are supported by the vast majority of mainstream game engines such as Unreal Engine, Unity, Unigine, Godot, and others.
CityEngine also offers an option of exporting models to simple VR applications, ArcGIS 360 VR. ArcGIS 360 VR runs on Samsung's Gear VR and it is good entry point into VR apps.
The real strength of CityEngine is in support of Unreal Engine. Support comes in several ways, primarily in the form of the Datasmith format. Datasmith was created by Epic Games for Unreal Engine back in 2017. Epic Games is making great strides in supporting and developing applications for AEC, automotive industry, and entertainment/media.
Working in the game engine environment can be a challenge so Esri's R&D team developed templates to ease this process. CityEngine VR Experience is an application template allowing one to create VR or standard application with an almost plug-and-play workflow.
The ArcGIS Platform supports game engines and tools in several ways, primarily via CityEngine but that is not the only option. There are several options aimed for developers using most used tools like Maya and Houdini. Esri has developed plugins, Serlio and Palladio respectively, that allow the use of CityEngine's rule packages within these applications. The latest plugin is Vitruvio for Unreal Engine.
On the other hand, game engine developers are increasing support for GIS data and features. In the latest release of Unreal Engine, LiDAR point cloud data is supported natively. All options we see for LiDAR in ArcGIS Pro are also in Unreal Engine editor.
Following this rapid development of game engines and their increased use in enterprise applications, Esri is expanding its product range. At the Esri Developer Summit in March, Esri announced the Beta Program for two new products – ArcGIS for Unreal and ArcGIS for Unity for the main game engines on the market.
With these products, developers will be able to bring in GIS data and services directly to game engines and incorporate them in-game/application design. And the AEC industry will continue to uptake the data now available.
The future is exciting and it will be interesting to see how these two communities will influence one another.
View all blog posts