Smart composition of game objects using dependency injection

Most game engines are based on inheritance of game objects and/or componentization of behaviors. While this approach enables clear visualization of the system architecture, good code reuse, and fast prototyping, it brings some issues, mostly related to the high dependency between game objects/compon...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Computers in Entertainment 2009-12, Vol.7 (4), p.15
Hauptverfasser: Passos, Erick B, Sousa, Jonhnny Wesiley S, Gonzales, Esteban Walter, Montenegro, Anselmo, Murta, Leonardo
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue 4
container_start_page 15
container_title Computers in Entertainment
container_volume 7
creator Passos, Erick B
Sousa, Jonhnny Wesiley S
Gonzales, Esteban Walter
Montenegro, Anselmo
Murta, Leonardo
description Most game engines are based on inheritance of game objects and/or componentization of behaviors. While this approach enables clear visualization of the system architecture, good code reuse, and fast prototyping, it brings some issues, mostly related to the high dependency between game objects/components instances. This dependency often leads to static casts and null pointer references that are difficult to debug. In this article we propose the use of the dependency injection design pattern to safely initialize game objects and lessen the programmer's role in handling these issues both during the prototyping and production phases. Since these dependencies are attributes of game objects and the injection occurs only at the initialization pass, there is no performance penalty at the game loop. [PUBLICATION ABSTRACT]
format Article
fullrecord <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_reports_228825318</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1935355111</sourcerecordid><originalsourceid>FETCH-proquest_reports_2288253183</originalsourceid><addsrcrecordid>eNpjYuA0NDUx0TW2tDBkgbFNzU04GLiKi7MMDIzMgYiTwSY4N7GoRCE5P7cgvzizJDM_TyE_TSE9MTdVIT8pKzW5pFihtDgzL10hJbUgNS8lNS-5UiEzDyQBVMrDwJqWmFOcyguluRkU3VxDnD10C4ryC0tTi0vii1IL8otKiuONjCwsjEyNDS2MiVEDAH4ROC8</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>228825318</pqid></control><display><type>article</type><title>Smart composition of game objects using dependency injection</title><source>ACM Digital Library Complete</source><creator>Passos, Erick B ; Sousa, Jonhnny Wesiley S ; Gonzales, Esteban Walter ; Montenegro, Anselmo ; Murta, Leonardo</creator><creatorcontrib>Passos, Erick B ; Sousa, Jonhnny Wesiley S ; Gonzales, Esteban Walter ; Montenegro, Anselmo ; Murta, Leonardo</creatorcontrib><description>Most game engines are based on inheritance of game objects and/or componentization of behaviors. While this approach enables clear visualization of the system architecture, good code reuse, and fast prototyping, it brings some issues, mostly related to the high dependency between game objects/components instances. This dependency often leads to static casts and null pointer references that are difficult to debug. In this article we propose the use of the dependency injection design pattern to safely initialize game objects and lessen the programmer's role in handling these issues both during the prototyping and production phases. Since these dependencies are attributes of game objects and the injection occurs only at the initialization pass, there is no performance penalty at the game loop. [PUBLICATION ABSTRACT]</description><identifier>ISSN: 1544-3574</identifier><identifier>EISSN: 1544-3981</identifier><language>eng</language><publisher>New York: Association for Computing Machinery</publisher><subject>Code reuse ; Computer &amp; video games ; Computer architecture ; Computer programming ; Prototypes ; Studies</subject><ispartof>Computers in Entertainment, 2009-12, Vol.7 (4), p.15</ispartof><rights>Copyright Association for Computing Machinery Dec 2009</rights><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>312,776,780,787</link.rule.ids></links><search><creatorcontrib>Passos, Erick B</creatorcontrib><creatorcontrib>Sousa, Jonhnny Wesiley S</creatorcontrib><creatorcontrib>Gonzales, Esteban Walter</creatorcontrib><creatorcontrib>Montenegro, Anselmo</creatorcontrib><creatorcontrib>Murta, Leonardo</creatorcontrib><title>Smart composition of game objects using dependency injection</title><title>Computers in Entertainment</title><description>Most game engines are based on inheritance of game objects and/or componentization of behaviors. While this approach enables clear visualization of the system architecture, good code reuse, and fast prototyping, it brings some issues, mostly related to the high dependency between game objects/components instances. This dependency often leads to static casts and null pointer references that are difficult to debug. In this article we propose the use of the dependency injection design pattern to safely initialize game objects and lessen the programmer's role in handling these issues both during the prototyping and production phases. Since these dependencies are attributes of game objects and the injection occurs only at the initialization pass, there is no performance penalty at the game loop. [PUBLICATION ABSTRACT]</description><subject>Code reuse</subject><subject>Computer &amp; video games</subject><subject>Computer architecture</subject><subject>Computer programming</subject><subject>Prototypes</subject><subject>Studies</subject><issn>1544-3574</issn><issn>1544-3981</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2009</creationdate><recordtype>article</recordtype><recordid>eNpjYuA0NDUx0TW2tDBkgbFNzU04GLiKi7MMDIzMgYiTwSY4N7GoRCE5P7cgvzizJDM_TyE_TSE9MTdVIT8pKzW5pFihtDgzL10hJbUgNS8lNS-5UiEzDyQBVMrDwJqWmFOcyguluRkU3VxDnD10C4ryC0tTi0vii1IL8otKiuONjCwsjEyNDS2MiVEDAH4ROC8</recordid><startdate>20091201</startdate><enddate>20091201</enddate><creator>Passos, Erick B</creator><creator>Sousa, Jonhnny Wesiley S</creator><creator>Gonzales, Esteban Walter</creator><creator>Montenegro, Anselmo</creator><creator>Murta, Leonardo</creator><general>Association for Computing Machinery</general><scope>JQ2</scope></search><sort><creationdate>20091201</creationdate><title>Smart composition of game objects using dependency injection</title><author>Passos, Erick B ; Sousa, Jonhnny Wesiley S ; Gonzales, Esteban Walter ; Montenegro, Anselmo ; Murta, Leonardo</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_reports_2288253183</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2009</creationdate><topic>Code reuse</topic><topic>Computer &amp; video games</topic><topic>Computer architecture</topic><topic>Computer programming</topic><topic>Prototypes</topic><topic>Studies</topic><toplevel>online_resources</toplevel><creatorcontrib>Passos, Erick B</creatorcontrib><creatorcontrib>Sousa, Jonhnny Wesiley S</creatorcontrib><creatorcontrib>Gonzales, Esteban Walter</creatorcontrib><creatorcontrib>Montenegro, Anselmo</creatorcontrib><creatorcontrib>Murta, Leonardo</creatorcontrib><collection>ProQuest Computer Science Collection</collection><jtitle>Computers in Entertainment</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Passos, Erick B</au><au>Sousa, Jonhnny Wesiley S</au><au>Gonzales, Esteban Walter</au><au>Montenegro, Anselmo</au><au>Murta, Leonardo</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Smart composition of game objects using dependency injection</atitle><jtitle>Computers in Entertainment</jtitle><date>2009-12-01</date><risdate>2009</risdate><volume>7</volume><issue>4</issue><spage>15</spage><pages>15-</pages><issn>1544-3574</issn><eissn>1544-3981</eissn><abstract>Most game engines are based on inheritance of game objects and/or componentization of behaviors. While this approach enables clear visualization of the system architecture, good code reuse, and fast prototyping, it brings some issues, mostly related to the high dependency between game objects/components instances. This dependency often leads to static casts and null pointer references that are difficult to debug. In this article we propose the use of the dependency injection design pattern to safely initialize game objects and lessen the programmer's role in handling these issues both during the prototyping and production phases. Since these dependencies are attributes of game objects and the injection occurs only at the initialization pass, there is no performance penalty at the game loop. [PUBLICATION ABSTRACT]</abstract><cop>New York</cop><pub>Association for Computing Machinery</pub></addata></record>
fulltext fulltext
identifier ISSN: 1544-3574
ispartof Computers in Entertainment, 2009-12, Vol.7 (4), p.15
issn 1544-3574
1544-3981
language eng
recordid cdi_proquest_reports_228825318
source ACM Digital Library Complete
subjects Code reuse
Computer & video games
Computer architecture
Computer programming
Prototypes
Studies
title Smart composition of game objects using dependency injection
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-28T15%3A58%3A39IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Smart%20composition%20of%20game%20objects%20using%20dependency%20injection&rft.jtitle=Computers%20in%20Entertainment&rft.au=Passos,%20Erick%20B&rft.date=2009-12-01&rft.volume=7&rft.issue=4&rft.spage=15&rft.pages=15-&rft.issn=1544-3574&rft.eissn=1544-3981&rft_id=info:doi/&rft_dat=%3Cproquest%3E1935355111%3C/proquest%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=228825318&rft_id=info:pmid/&rfr_iscdi=true