An Empirical Analysis of Unity Performance Bugs
In the age of modern technology various game engines or game frameworks are used to develop games for different platforms and Unity is one of the most popular and commonly used game engines. Games, real-time 3d animations, etc. can be created using Unity's fully integrated development environment. Though Unity is mainly a game engine, it is also used to create various AR or VR apps used for medical, education and business purpose. Since Unity applications are being downloaded in a large number, it's high time to focus on the performance of Unity. For any kind of software product, performance is very important to indicate its overall quality. Software's quality or performance is deteriorated by different performance bugs and it can result in poor user experience, wasted computer resources. Though Unity is widely used and performance bug is as damaging as functional bugs, till now no research has been done on Unity's performance bugs. To provide researchers and developers further working on detecting, localizing and fixing performance bugs of Unity, we prepared a dataset of 230 performance bug fixing commits collected across 100 open source Unity project from GitHub. With our detail analysis we generated Unity's performance bug taxonomy which can be helpful for developers and future researchers. With our AST level code change analysis we identified that Unity's call-back method such as Update, Start, etc. are prone to performance issues and Unity performance fix commits are large due to code dependency issues. Apart from that our code change analysis also identified that performance fix can be in combination of source code and prefab files or sometimes only prefab files.