An Exploratory Approach for Game Engine Architecture Recovery. Ullmann, G. C., Gu�h�neuc, Y., Petrillo, F., Anquetil, N., & Politowski, C. In Proceedings of the 7<sup>th</sup> International Workshop on Games and Software Engineering (GAS), pages 8–15, May, 2023. ACM Press. 8 pages.Paper abstract bibtex Game engines provide video game developers with a wide range of fundamental subsystems for creating games, such as 2D/3D graphics rendering, input device management, and audio playback. Developers often integrate these subsystems with other applications or extend them via plugins. To integrate or extend correctly, developers need a broad system architectural understanding. However, architectural information is not always readily available and is often overlooked in this kind of system. In this work, we propose an approach for game engine architecture recovery and explore the architecture of three popular open-source game engines (Cocos2d-x, Godot, and Urho3D). We perform manual subsystem detection and use Moose, a platform for software analysis, to generate architectural models. With these models, we answer the following questions: Which subsystems are present in game engines? Which subsystems are more often coupled with one another? Why are these subsystems coupled with each other? Results show that the platform independence, resource management, world editor, and core subsystems are frequently included by others and therefore act as foundations for the game engines. Furthermore, we show that, by applying our approach, game engine developers can understand whether subsystems are related and divide responsibilities. They can also assess whether relationships among subsystems are appropriate for the game engine.
@INPROCEEDINGS{Ullmann23-GAS-GameEngineArchitectureRecovery,
AUTHOR = {Gabriel Cavalheiro Ullmann and Yann-Ga�l Gu�h�neuc and
Fabio Petrillo and Nicolas Anquetil and Cristiano Politowski},
BOOKTITLE = {Proceedings of the 7<sup>th</sup> International Workshop on Games and Software Engineering (GAS)},
TITLE = {An Exploratory Approach for Game Engine Architecture
Recovery},
YEAR = {2023},
OPTADDRESS = {},
OPTCROSSREF = {},
EDITOR = {Kendra Cooper},
MONTH = {May},
NOTE = {8 pages.},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {8--15},
PUBLISHER = {ACM Press},
OPTSERIES = {},
OPTVOLUME = {},
KEYWORDS = {Topic: <b>Video game development</b>,
Topic: <b>Program comprehension</b>, Venue: <i>GAS</i>},
URL = {http://www.ptidej.net/publications/documents/GAS23a.doc.pdf},
PDF = {http://www.ptidej.net/publications/documents/GAS23a.ppt.pdf},
ABSTRACT = {Game engines provide video game developers with a wide
range of fundamental subsystems for creating games, such as 2D/3D
graphics rendering, input device management, and audio playback.
Developers often integrate these subsystems with other applications
or extend them via plugins. To integrate or extend correctly,
developers need a broad system architectural understanding. However,
architectural information is not always readily available and is
often overlooked in this kind of system. In this work, we propose an
approach for game engine architecture recovery and explore the
architecture of three popular open-source game engines (Cocos2d-x,
Godot, and Urho3D). We perform manual subsystem detection and use
Moose, a platform for software analysis, to generate architectural
models. With these models, we answer the following questions: Which
subsystems are present in game engines? Which subsystems are more
often coupled with one another? Why are these subsystems coupled with
each other? Results show that the platform independence, resource
management, world editor, and core subsystems are frequently included
by others and therefore act as foundations for the game engines.
Furthermore, we show that, by applying our approach, game engine
developers can understand whether subsystems are related and divide
responsibilities. They can also assess whether relationships among
subsystems are appropriate for the game engine.}
}
Downloads: 0
{"_id":"L49zw6sABgToywKM2","bibbaseid":"ullmann-guhneuc-petrillo-anquetil-politowski-anexploratoryapproachforgameenginearchitecturerecovery-2023","author_short":["Ullmann, G. C.","Gu�h�neuc, Y.","Petrillo, F.","Anquetil, N.","Politowski, C."],"bibdata":{"bibtype":"inproceedings","type":"inproceedings","author":[{"firstnames":["Gabriel","Cavalheiro"],"propositions":[],"lastnames":["Ullmann"],"suffixes":[]},{"firstnames":["Yann-Ga�l"],"propositions":[],"lastnames":["Gu�h�neuc"],"suffixes":[]},{"firstnames":["Fabio"],"propositions":[],"lastnames":["Petrillo"],"suffixes":[]},{"firstnames":["Nicolas"],"propositions":[],"lastnames":["Anquetil"],"suffixes":[]},{"firstnames":["Cristiano"],"propositions":[],"lastnames":["Politowski"],"suffixes":[]}],"booktitle":"Proceedings of the 7<sup>th</sup> International Workshop on Games and Software Engineering (GAS)","title":"An Exploratory Approach for Game Engine Architecture Recovery","year":"2023","optaddress":"","optcrossref":"","editor":[{"firstnames":["Kendra"],"propositions":[],"lastnames":["Cooper"],"suffixes":[]}],"month":"May","note":"8 pages.","optnumber":"","optorganization":"","pages":"8–15","publisher":"ACM Press","optseries":"","optvolume":"","keywords":"Topic: <b>Video game development</b>, Topic: <b>Program comprehension</b>, Venue: <i>GAS</i>","url":"http://www.ptidej.net/publications/documents/GAS23a.doc.pdf","pdf":"http://www.ptidej.net/publications/documents/GAS23a.ppt.pdf","abstract":"Game engines provide video game developers with a wide range of fundamental subsystems for creating games, such as 2D/3D graphics rendering, input device management, and audio playback. Developers often integrate these subsystems with other applications or extend them via plugins. To integrate or extend correctly, developers need a broad system architectural understanding. However, architectural information is not always readily available and is often overlooked in this kind of system. In this work, we propose an approach for game engine architecture recovery and explore the architecture of three popular open-source game engines (Cocos2d-x, Godot, and Urho3D). We perform manual subsystem detection and use Moose, a platform for software analysis, to generate architectural models. With these models, we answer the following questions: Which subsystems are present in game engines? Which subsystems are more often coupled with one another? Why are these subsystems coupled with each other? Results show that the platform independence, resource management, world editor, and core subsystems are frequently included by others and therefore act as foundations for the game engines. Furthermore, we show that, by applying our approach, game engine developers can understand whether subsystems are related and divide responsibilities. They can also assess whether relationships among subsystems are appropriate for the game engine.","bibtex":"@INPROCEEDINGS{Ullmann23-GAS-GameEngineArchitectureRecovery,\r\n AUTHOR = {Gabriel Cavalheiro Ullmann and Yann-Ga�l Gu�h�neuc and \r\n Fabio Petrillo and Nicolas Anquetil and Cristiano Politowski},\r\n BOOKTITLE = {Proceedings of the 7<sup>th</sup> International Workshop on Games and Software Engineering (GAS)},\r\n TITLE = {An Exploratory Approach for Game Engine Architecture \r\n Recovery},\r\n YEAR = {2023},\r\n OPTADDRESS = {},\r\n OPTCROSSREF = {},\r\n EDITOR = {Kendra Cooper},\r\n MONTH = {May},\r\n NOTE = {8 pages.},\r\n OPTNUMBER = {},\r\n OPTORGANIZATION = {},\r\n PAGES = {8--15},\r\n PUBLISHER = {ACM Press},\r\n OPTSERIES = {},\r\n OPTVOLUME = {},\r\n KEYWORDS = {Topic: <b>Video game development</b>, \r\n Topic: <b>Program comprehension</b>, Venue: <i>GAS</i>},\r\n URL = {http://www.ptidej.net/publications/documents/GAS23a.doc.pdf},\r\n PDF = {http://www.ptidej.net/publications/documents/GAS23a.ppt.pdf},\r\n ABSTRACT = {Game engines provide video game developers with a wide \r\n range of fundamental subsystems for creating games, such as 2D/3D \r\n graphics rendering, input device management, and audio playback. \r\n Developers often integrate these subsystems with other applications \r\n or extend them via plugins. To integrate or extend correctly, \r\n developers need a broad system architectural understanding. However, \r\n architectural information is not always readily available and is \r\n often overlooked in this kind of system. In this work, we propose an \r\n approach for game engine architecture recovery and explore the \r\n architecture of three popular open-source game engines (Cocos2d-x, \r\n Godot, and Urho3D). We perform manual subsystem detection and use \r\n Moose, a platform for software analysis, to generate architectural \r\n models. With these models, we answer the following questions: Which \r\n subsystems are present in game engines? Which subsystems are more \r\n often coupled with one another? Why are these subsystems coupled with \r\n each other? Results show that the platform independence, resource \r\n management, world editor, and core subsystems are frequently included \r\n by others and therefore act as foundations for the game engines. \r\n Furthermore, we show that, by applying our approach, game engine \r\n developers can understand whether subsystems are related and divide \r\n responsibilities. They can also assess whether relationships among \r\n subsystems are appropriate for the game engine.}\r\n}\r\n\r\n","author_short":["Ullmann, G. C.","Gu�h�neuc, Y.","Petrillo, F.","Anquetil, N.","Politowski, C."],"editor_short":["Cooper, K."],"key":"Ullmann23-GAS-GameEngineArchitectureRecovery","id":"Ullmann23-GAS-GameEngineArchitectureRecovery","bibbaseid":"ullmann-guhneuc-petrillo-anquetil-politowski-anexploratoryapproachforgameenginearchitecturerecovery-2023","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/GAS23a.doc.pdf"},"keyword":["Topic: <b>Video game development</b>","Topic: <b>Program comprehension</b>","Venue: <i>GAS</i>"],"metadata":{"authorlinks":{}}},"bibtype":"inproceedings","biburl":"http://www.yann-gael.gueheneuc.net/Work/Publications/Biblio/complete-bibliography.bib","dataSources":["8vn5MSGYWB4fAx9Z4"],"keywords":["topic: <b>video game development</b>","topic: <b>program comprehension</b>","venue: <i>gas</i>"],"search_terms":["exploratory","approach","game","engine","architecture","recovery","ullmann","gu�h�neuc","petrillo","anquetil","politowski"],"title":"An Exploratory Approach for Game Engine Architecture Recovery","year":2023}