Design Patterns and Code Maintainability in Games: A Case Study
Resumo
Design patterns are a common strategy employed in software development to promote several aspects of software quality, including code maintainability. Game development is a multidisciplinary field that includes not only software development but also animations, interactivity, sound design and others. Given the short deadlines in which game developers commonly operate, on top of the intrinsic complexity of the field itself, code maintainability is often overlooked by game developers. Hence, this work investigates how design patterns can impact the code maintainability of games. First, we performed a review to understand how (and which) design patterns can be applied to different game mechanics. Next, we selected two small games and refactored the code by applying design patterns to some of the games’ mechanics. By leveraging static analysis to assess the games’ code maintainability before and after the application of the design patterns, we observed an overall code maintainability improvement of 5.5%. The preliminary results indicate the potential to use design patterns as a strategy to improve code maintainability in the context of game development.Referências
Ampatzoglou, A., Charalampidou, S., and Stamelos, I. (2013). Research state of the art on gof design patterns: A mapping study. Journal of Systems and Software, 86:1945–1964.
Ampatzoglou, A. and Stamelos, I. (2010). Software engineering research for computer games: A systematic review. Information and Software Technology, 52(9):888–901.
Barakat, N. (2019). A framework for integrating software design patterns with game design framework. Faculty of Informatics and Computer science.
Figueiredo, R. (2015). Gof design patterns applied to the development of digital games. In Proceedings of SBGames 2015, Teresina PI Brazil. XIV SBGames.
Gamma, E., Helm, R., Johnson, R., Johnson, R. E., Vlissides, J., et al. (1995). Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH.
Hunicke, R., LeBlanc, M., Zubek, R., et al. (2004). Mda: A formal approach to game design and game research. In Proceedings of the AAAI Workshop on Challenges in Game AI, volume 4, page 1722. San Jose, CA.
IEEE/ISO (2011). Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models. IEEE Computer Society.
Jones, M. (2022). Code metrics values. [link].
Kanode, C. M. and Haddad, H. M. (2009). Software engineering challenges in game development. In 2009 Sixth International Conference on Information Technology: New Generations, pages 260–265. IEEE.
Nystrom, R. (2014). Game Programming Patterns. Genever Benning.
Paschali, M.-E., Volioti, C., Ampatzoglou, A., Gkagkas, A., Stamelos, I., and Chatzigeorgiou, A. (2021). Implementing game requirements using design patterns. Journal of Software: Evolution and Process, 33(12):e2399.
Wedyan, F. (2020). Impact of design patterns on software quality: a systematic literature review. IET Software, 14(1):1–17.
Ampatzoglou, A. and Stamelos, I. (2010). Software engineering research for computer games: A systematic review. Information and Software Technology, 52(9):888–901.
Barakat, N. (2019). A framework for integrating software design patterns with game design framework. Faculty of Informatics and Computer science.
Figueiredo, R. (2015). Gof design patterns applied to the development of digital games. In Proceedings of SBGames 2015, Teresina PI Brazil. XIV SBGames.
Gamma, E., Helm, R., Johnson, R., Johnson, R. E., Vlissides, J., et al. (1995). Design patterns: elements of reusable object-oriented software. Pearson Deutschland GmbH.
Hunicke, R., LeBlanc, M., Zubek, R., et al. (2004). Mda: A formal approach to game design and game research. In Proceedings of the AAAI Workshop on Challenges in Game AI, volume 4, page 1722. San Jose, CA.
IEEE/ISO (2011). Systems and software engineering – Systems and software Quality Requirements and Evaluation (SQuaRE) – System and software quality models. IEEE Computer Society.
Jones, M. (2022). Code metrics values. [link].
Kanode, C. M. and Haddad, H. M. (2009). Software engineering challenges in game development. In 2009 Sixth International Conference on Information Technology: New Generations, pages 260–265. IEEE.
Nystrom, R. (2014). Game Programming Patterns. Genever Benning.
Paschali, M.-E., Volioti, C., Ampatzoglou, A., Gkagkas, A., Stamelos, I., and Chatzigeorgiou, A. (2021). Implementing game requirements using design patterns. Journal of Software: Evolution and Process, 33(12):e2399.
Wedyan, F. (2020). Impact of design patterns on software quality: a systematic literature review. IET Software, 14(1):1–17.
Publicado
06/11/2023
Como Citar
ESTEVAM, Vitor Braga; SANTOS, Alysson Diniz dos; PAIXAO, Matheus.
Design Patterns and Code Maintainability in Games: A Case Study. In: TRILHA DE COMPUTAÇÃO – ARTIGOS CURTOS - SIMPÓSIO BRASILEIRO DE JOGOS E ENTRETENIMENTO DIGITAL (SBGAMES), 22. , 2023, Rio Grande/RS.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2023
.
p. 299-304.
DOI: https://doi.org/10.5753/sbgames_estendido.2023.234103.