# A Systematic Review of Perception System and Simulators for Autonomous Vehicles Research
## 5 Simulation
### Games and Physic Engines for Simulation  
A common alternative to using a dedicated simulator for vehicle and robot simulation is to repurpose an available game engine for simulation and research [67]. However, in general, any available game engine could conceivably be used for the purpose of simulation. A game engine is the software part of a computer game that contains a 2D or 3D graphic representation (rendering engine), representations of physical laws (physics engine), or collision detection (and collision response), sound, scripting, animation, artificial intelligence, networking, streaming, memory management, threading, localization support, scene graph, and may include video support for cinematic. The most modern game engines also include support for Virtual Reality (VR) simulation. Game engines are generally independent of the specific scenarios or applications for \begin{table}
\begin{tabular}{l c c c c c} \hline \hline \multirow{2}{*}{**Simulators**} & \multicolumn{5}{c}{**XIL**} \\ \cline{2-6}  & **License** & **Open Models** & **ISO 26262 Compliant** & **MIL** & **SIL** & **HIL** \\ \hline PaTAVTT [63] & GPL & x & U & & x \\ Simulink \& Matlab [61] & Commercial & - & X & x & x \\ dSpace GmbH [56] & Commercial & - & X & x & x \\ LabVIEW [64] & Commercial & - & X & x & x \\ CarSim [65] & Commercial & u & X & x & x \\ CAT Vehicle [66] & GPL/Open Source & x & U & x & x \\ \hline \hline \end{tabular}  
* Yes \(\mid\) u
- Unknown or couldn’t be determined \(\mid\)  
\end{table} 
Table 3: Summary of the main features of simulator platforms for AV. which they were originally developed, and the source code of some game engines is partially open. Therefore, researchers can use the source codes of the game engine to create completely new scenarios and applications. Some of the key features that game engines provide, which are favorable to robotics and autonomous vehicles researchers [68], are listed below:  
* Physical fidelity: Realistic simulation, suitable for virtual-reality environments, such as a driving simulator; most recent game engines feature both rigid and soft body dynamics, some of them even use a new dedicated hardware named Physics Processing Unit (PPU). Cutting-edge lightning effects, polygon rendering, and realistic destructible environments are also present/considered
* Distributed architecture: Support for multiple processor cores is included in earlier frameworks for maximum computational resources exploitation. It is possible to simulate multiple entities in multiple networked computers, distributing the processing power over all nodes. * Cutting-edge graphics: Use of game engines will significantly increase the level of detail and realism of the environment; relating to camera sensor simulation, higher resemblance from the virtual to the real world can be achieved. * Scriptable environment: Featuring simple but powerful scripting languages, game engines can be rapidly extended to support a new type of sensor, or an optimized statistics module  
The main problem with game engine simulators is that they may not be high fidelity. A game engine allows you to test the dynamics based on behavior, but when a high-fidelity simulation is required, you must use models or software that contains a mathematical representation of the subsystems to achieve realistic calculations. This software is often validated with HIL tests, used to a large extent in the evaluation of computer-based test equipment. The high-level algorithms for trajectory planning, vision processing and interactions of multi-agent systems are examples of suitable fields for use with simulators based on game engines. The principal game engines used in the development of autonomous vehicle simulators, or for some of its subsystems, are:  
Unity 3D [69] is an open source Game Engine, which is primarily used to develop video games and simulations for computers, consoles and mobile devices. The Unity graphics engines use OpenGL, Direct3D, OpenGL for Embedded Systems (OpenGL ES) for mobile platform (iOS, Android) and various APIs.