Visualising Game Engine Subsystem Coupling Patterns. Ullmann, G. C., Gu�h�neuc, Y., Petrillo, F., Anquetil, N., & Politowski, C. In Hlavacs, H. & Iorio, A. D., editors, Proceedings of the 22<sup>nd</sup> International Conference on Entertainment Computing (ICEC), pages 263–274, November, 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-ICEC-GameEnginesCouplingPatterns,
AUTHOR = {Gabriel Cavalheiro Ullmann and Yann-Ga�l Gu�h�neuc and
Fabio Petrillo and Nicolas Anquetil and Cristiano Politowski},
BOOKTITLE = {Proceedings of the 22<sup>nd</sup> International Conference on Entertainment Computing (ICEC)},
TITLE = {Visualising Game Engine Subsystem Coupling Patterns},
YEAR = {2023},
OPTADDRESS = {},
OPTCROSSREF = {},
EDITOR = {Helmut Hlavacs and Angelo Di Iorio},
MONTH = {November},
NOTE = {8 pages.},
OPTNUMBER = {},
OPTORGANIZATION = {},
PAGES = {263--274},
PUBLISHER = {ACM Press},
OPTSERIES = {},
OPTVOLUME = {},
KEYWORDS = {Topic: <b>Video game development</b>,
Topic: <b>Program comprehension</b>, Venue: <c>ICEC</c>},
URL = {http://www.ptidej.net/publications/documents/ICEC23.doc.pdf},
PDF = {http://www.ptidej.net/publications/documents/ICEC23.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":"YWFto7CvdKGvuWqyR","bibbaseid":"ullmann-guhneuc-petrillo-anquetil-politowski-visualisinggameenginesubsystemcouplingpatterns-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 22<sup>nd</sup> International Conference on Entertainment Computing (ICEC)","title":"Visualising Game Engine Subsystem Coupling Patterns","year":"2023","optaddress":"","optcrossref":"","editor":[{"firstnames":["Helmut"],"propositions":[],"lastnames":["Hlavacs"],"suffixes":[]},{"firstnames":["Angelo","Di"],"propositions":[],"lastnames":["Iorio"],"suffixes":[]}],"month":"November","note":"8 pages.","optnumber":"","optorganization":"","pages":"263–274","publisher":"ACM Press","optseries":"","optvolume":"","keywords":"Topic: <b>Video game development</b>, Topic: <b>Program comprehension</b>, Venue: <c>ICEC</c>","url":"http://www.ptidej.net/publications/documents/ICEC23.doc.pdf","pdf":"http://www.ptidej.net/publications/documents/ICEC23.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-ICEC-GameEnginesCouplingPatterns,\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 22<sup>nd</sup> International Conference on Entertainment Computing (ICEC)},\r\n TITLE = {Visualising Game Engine Subsystem Coupling Patterns},\r\n YEAR = {2023},\r\n OPTADDRESS = {},\r\n OPTCROSSREF = {},\r\n EDITOR = {Helmut Hlavacs and Angelo Di Iorio},\r\n MONTH = {November},\r\n NOTE = {8 pages.},\r\n OPTNUMBER = {},\r\n OPTORGANIZATION = {},\r\n PAGES = {263--274},\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: <c>ICEC</c>},\r\n URL = {http://www.ptidej.net/publications/documents/ICEC23.doc.pdf},\r\n PDF = {http://www.ptidej.net/publications/documents/ICEC23.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":["Hlavacs, H.","Iorio, A. D."],"key":"Ullmann23-ICEC-GameEnginesCouplingPatterns","id":"Ullmann23-ICEC-GameEnginesCouplingPatterns","bibbaseid":"ullmann-guhneuc-petrillo-anquetil-politowski-visualisinggameenginesubsystemcouplingpatterns-2023","role":"author","urls":{"Paper":"http://www.ptidej.net/publications/documents/ICEC23.doc.pdf"},"keyword":["Topic: <b>Video game development</b>","Topic: <b>Program comprehension</b>","Venue: <c>ICEC</c>"],"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: <c>icec</c>"],"search_terms":["visualising","game","engine","subsystem","coupling","patterns","ullmann","gu�h�neuc","petrillo","anquetil","politowski"],"title":"Visualising Game Engine Subsystem Coupling Patterns","year":2023}