skip to main content
research-article

A catalogue of game-specific anti-patterns based on GitHub and Game Development Stack Exchange

Published: 01 October 2023 Publication History

Abstract

With the ever-increasing use of games, game developers are expected to write efficient code and support several aspects such as security, maintainability, and performance. However, the need for frequent updates in game development may lead to quick-fix solutions and bad coding practices. Though unintentional, these bad practices may lead to poor program comprehension and can cause several issues during software maintenance. The quick-fix solutions might lead to technical debts due to the presence of anti-patterns and code smells, which may affect the functional and non-functional requirements of the game. To avoid such instances, game developers may need some guidelines to refer to during the game development process. Thus, to aid developers and researchers, in our previous work, we had presented an initial catalogue of anti-patterns in the domain of game development. To broaden the scope of the catalogue and diversify the instances of anti-patterns, we analyzed additional data from a Q&A platform. We present 15 game-specific anti-patterns based on thematic analysis of 189 issues, 892 commits, 104 pull requests from 100 open-source GitHub game repositories, and 971 questions from Game Development Stack Exchange. We see the catalogue as an effort towards improving the development and quality of the games. The catalogue containing a detailed description of every anti-pattern with the context, problem, solution, example(s), and their occurrences on GitHub and Game Development Stack Exchange is available at https://rishalab.github.io/Catalog-of-Game-Antipatterns/.

Highlights

The study analyzed non-code artifacts from GitHub and Gamedev Stack Exchange.
The manual thematic analysis yielded 15 game specific anti-patterns.
The catalogue is an effort towards improving the development and quality of games.

References

[1]
Abidi, M., Khomh, F., Guéhéneuc, Y.-G., 2019. Anti-patterns for multi-language systems. In: Proceedings of the 24th European Conference on Pattern Languages of Programs. pp. 1–14.
[2]
Agrahari, V., Chimalakonda, S., 2022. A Catalogue of Game-Specific Anti-Patterns. In: 15th Innovations in Software Engineering Conference. pp. 1–10.
[3]
Albaghajati A., Ahmed M., A co-evolutionary genetic algorithms approach to detect video game bugs, J. Syst. Softw. 188 (2022).
[4]
Amsel N., Ibrahim Z., Malik A., Tomlinson B., Toward sustainable software engineering: NIER track, in: 2011 33rd International Conference on Software Engineering, ICSE, IEEE, 2011, pp. 976–979.
[5]
Anderson C.A., Bushman B.J., Effects of violent video games on aggressive behavior, aggressive cognition, aggressive affect, physiological arousal, and prosocial behavior: A meta-analytic review of the scientific literature, Psychol. Sci. 12 (5) (2001) 353–359.
[6]
Bao L., Lo D., Xia X., Wang X., Tian C., How android app developers manage power consumption?-an empirical study by mining power management commits, in: 2016 IEEE/ACM 13th Working Conference on Mining Software Repositories, MSR, IEEE, 2016, pp. 37–48.
[7]
Bennett, C., Oduro-Marfo, S., 2018. GLOBAL Privacy Protection: Adequate Laws, Accountable Organizations and/or Data Localization?. In: Proceedings of the 2018 ACM International Joint Conference and 2018 International Symposium on Pervasive and Ubiquitous Computing and Wearable Computers. pp. 880–890.
[8]
Björk S., Holopainen J., Games and design patterns, Game Des. Read. (2006) 410–437.
[9]
Borg M., Garousi V., Mahmoud A., Olsson T., Stalberg O., Video game development in a rush: A survey of the global game jam participants, IEEE Trans. Games (2019).
[10]
Borges H., Valente M.T., What’s in a GitHub star? understanding repository starring practices in a social coding platform, J. Syst. Softw. 146 (2018) 112–129.
[11]
Borowa K., Zalewski A., Saczko A., Living with technical debt—A perspective from the video game industry, IEEE Softw. 38 (06) (2021) 65–70,.
[12]
Borrelli, A., Nardone, V., Di Lucca, G.A., Canfora, G., Di Penta, M., 2020. Detecting Video Game-Specific Bad Smells in Unity Projects. In: Proceedings of the 17th International Conference on Mining Software Repositories. pp. 198–208.
[13]
Brown W.H., Malveau R.C., McCormick H.W., Mowbray T.J., AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis, John Wiley & Sons, Inc., 1998.
[14]
Capra E., Francalanci C., Slaughter S.A., Is software “green”? Application development environments and energy efficiency in open source applications, Inf. Softw. Technol. 54 (1) (2012) 60–71.
[15]
Carvalho S.G., Aniche M., Veríssimo J., Durelli R.S., Gerosa M.A., An empirical catalog of code smells for the presentation layer of android apps, Empir. Softw. Eng. 24 (6) (2019) 3546–3586.
[16]
Cruz L., Abreu R., Catalog of energy patterns for mobile applications, Empir. Softw. Eng. (2019) 1–27.
[17]
Dalla Palma S., Di Nucci D., Palomba F., Tamburri D.A., Towards a catalogue of software quality metrics for infrastructure code, J. Syst. Softw. (2020).
[18]
Edholm H., Lidström M., Steghöfer J.-P., Burden H., Crunch time: The reasons and effects of unpaid overtime in the games industry, in: 2017 IEEE/ACM 39th International Conference on Software Engineering: Software Engineering in Practice Track, ICSE-SEIP, IEEE, 2017, pp. 43–52.
[19]
Fard A.M., Mesbah A., Jsnose: Detecting javascript code smells, in: 2013 IEEE 13th International Working Conference on Source Code Analysis and Manipulation, SCAM, IEEE, 2013, pp. 116–125.
[20]
Fereday J., Muir-Cochrane E., Demonstrating rigor using thematic analysis: A hybrid approach of inductive and deductive coding and theme development, Int. J. Qual. Methods 5 (1) (2006) 80–92.
[21]
Fowler, M., 1997. Refactoring: Improving the design of existing code. In: 11th European Conference. Jyväskylä, Finland.
[22]
Garcia J., Popescu D., Edwards G., Medvidovic N., Toward a catalogue of architectural bad smells, in: International Conference on the Quality of Software Architectures, Springer, 2009, pp. 146–162.
[23]
Giessen H.W., Serious games effects: an overview, Procedia Soc. Behav. Sci. 174 (2015) 2240–2244.
[24]
Gregory P., Barroca L., Taylor K., Salah D., Sharp H., Agile challenges in practice: a thematic analysis, in: International Conference on Agile Software Development, Springer, 2015, pp. 64–80.
[25]
Guamán, D., Pérez, J., Valdiviezo-Diaz, P., Canas, N., 2022. Estimating the energy consumption of software components from size, complexity and code smells metrics. In: Proceedings of the 37th ACM/SIGAPP Symposium on Applied Computing. pp. 1456–1459.
[26]
Hübener T., Chaudron M.R., Luo Y., Vallen P., van der Kogel J., Liefheid T., Automatic anti-pattern detection in microservice architectures based on distributed tracing, in: 2022 IEEE/ACM 44th International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP, IEEE, 2022, pp. 75–76.
[27]
Johnson D., Wiles J., Effective affective user interface design in games, Ergonomics 46 (13–14) (2003) 1332–1345.
[28]
Joshi S.D., Chimalakonda S., RapidRelease-A dataset of projects and issues on github with rapid releases, in: 2019 IEEE/ACM 16th International Conference on Mining Software Repositories, MSR, IEEE, 2019, pp. 587–591.
[29]
Kalliamvakou E., Gousios G., Blincoe K., Singer L., German D.M., Damian D., The promises and perils of mining GitHub, in: Proceedings of the 11th Working Conference on Mining Software Repositories, ACM, 2014, pp. 92–101.
[30]
Kamienski A., Bezemer C.-P., An empirical study of Q&A websites for game developers, Empir. Softw. Eng. 26 (6) (2021) 1–39.
[31]
Kanode C.M., Haddad H.M., Software engineering challenges in game development, in: 2009 Sixth International Conference on Information Technology: New Generations, IEEE, 2009, pp. 260–265.
[32]
Kermansaravi Z.A., Rahman M.S., Khomh F., Jaafar F., Guéhéneuc Y.-G., Investigating design anti-pattern and design pattern mutations and their change-and fault-proneness, Empir. Softw. Eng. 26 (1) (2021) 1–47.
[33]
Khanve V., Are existing code smells relevant in web games? an empirical study, in: Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ACM, 2019, pp. 1241–1243.
[34]
Kitchenham B.A., Pfleeger S.L., Pickard L.M., Jones P.W., Hoaglin D.C., El Emam K., Rosenberg J., Preliminary guidelines for empirical research in software engineering, IEEE Trans. Softw. Eng. 28 (8) (2002) 721–734.
[35]
Klug M., Bagrow J.P., Understanding the group dynamics and success of teams, Royal Soc. Open Sci. 3 (4) (2016).
[36]
Korhonen, H., Koivisto, E.M., 2006. Playability heuristics for mobile games. In: Proceedings of the 8th Conference on Human-Computer Interaction with Mobile Devices and Services. pp. 9–16.
[37]
Lee K.M., Peng W., What do we know about social and psychological effects of computer games? A comprehensive review of the current literature, Play. Video Games Motiv. Responses Consequences (2006) 327–345.
[38]
Lewis M., Jacobson J., Game engines, Commun. ACM 45 (1) (2002) 27.
[39]
Lin T., Fu X., Chen F., Li L., A novel approach for code smells detection based on deep leaning, in: EAI International Conference on Applied Cryptography in Computer and Communications, Springer, 2021, pp. 171–174.
[40]
McKenzie T., Morales-Trujillo M., Lukosch S., Hoermann S., Is agile not agile enough? A study on how agile is applied and misapplied in the video game development industry, in: 2021 IEEE/ACM Joint 15th International Conference on Software and System Processes (ICSSP) and 16th ACM/IEEE International Conference on Global Software Engineering, ICGSE, IEEE, 2021, pp. 94–105.
[41]
Moura I., Pinto G., Ebert F., Castor F., Mining energy-aware commits, in: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, IEEE, 2015, pp. 56–67.
[42]
Murgia, A., Tourani, P., Adams, B., Ortu, M., 2014. Do developers feel emotions? an exploratory analysis of emotions in software artifacts. In: Proceedings of the 11th Working Conference on Mining Software Repositories. pp. 262–271.
[43]
Murphy-Hill E., Zimmermann T., Nagappan N., Cowboys, ankle sprains, and keepers of quality: How is video game development different from software development?, Proceedings of the 36th International Conference on Software Engineering, ACM, 2014, pp. 1–11.
[44]
Nystrom R., Game Programming Patterns, Genever Benning, 2014.
[45]
Palomba F., De Lucia A., Bavota G., Oliveto R., Anti-pattern detection: Methods, challenges, and open issues, in: Advances in Computers, Vol. 95, Elsevier, 2014, pp. 201–238.
[46]
Pascarella L., Palomba F., Di Penta M., Bacchelli A., How is video game development different from software development in open source?, in: 2018 IEEE/ACM 15th International Conference on Mining Software Repositories, MSR, IEEE, 2018, pp. 392–402.
[47]
Petersen, K., Feldt, R., Mujtaba, S., Mattsson, M., 2008. Systematic mapping studies in software engineering. In: 12th International Conference on Evaluation and Assessment in Software Engineering. EASE 12, pp. 1–10.
[48]
Petrillo, F., Pimenta, M., Trindade, F., Dietrich, C., 2008. Houston, we have a problem... a survey of actual problems in computer games development. In: Proceedings of the 2008 ACM Symposium on Applied Computing. pp. 707–711.
[49]
Politowski, C., Fontoura, L., Petrillo, F., Guéhéneuc, Y.-G., 2016. Are the old days gone? A survey on actual software engineering processes in video game industry. In: Proceedings of the 5th International Workshop on Games and Software Engineering. pp. 22–28.
[50]
Politowski, C., Petrillo, F., Ullmann, G.C., de Andrade Werly, J., Guéhéneuc, Y.-G., 2020. Dataset of Video Game Development Problems. In: Proceedings of the 17th International Conference on Mining Software Repositories. pp. 553–557.
[51]
Politowski C., Petrillo F., Ullmann G.C., Guéhéneuc Y.-G., Game industry problems: An extensive analysis of the gray literature, Inf. Softw. Technol. (2021).
[52]
Ray B., Posnett D., Filkov V., Devanbu P., A large scale study of programming languages and code quality in github, in: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, ACM, 2014, pp. 155–165.
[53]
Santos, R.E., Magalhães, C.V., Capretz, L.F., Correia-Neto, J.S., da Silva, F.Q., Saher, A., 2018. Computer games are serious business and so is their quality: particularities of software testing in game development from the perspective of practitioners. In: Proceedings of the 12th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement. pp. 1–10.
[54]
Shanbhag, S., Chimalakonda, S., Sharma, V.S., Kaulgud, V., 2022. Towards a Catalog of Energy Patterns in Deep Learning Development. In: The International Conference on Evaluation and Assessment in Software Engineering 2022. pp. 150–159.
[55]
Shi Y.-R., Shih J.-L., Game factors and game-based learning design model, Int. J. Comput. Games Technol. 2015 (2015).
[56]
Silva, D., Tsantalis, N., Valente, M.T., 2016. Why we refactor? confessions of github contributors. In: Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering. pp. 858–870.
[57]
Tan M.L., Prasanna R., Stock K., Doyle E.E., Leonard G., Johnston D., Modified usability framework for disaster apps: a qualitative thematic analysis of user reviews, Int. J. Disaster Risk Sci. 11 (2020) 615–629.
[58]
Teruel M.A., Navarro E., González P., López-Jaquero V., Montero F., Applying thematic analysis to define an awareness interpretation for collaborative computer games, Inf. Softw. Technol. 74 (2016) 17–44.
[59]
Thielscher, M., 2010. A general game description language for incomplete information games. In: Twenty-Fourth AAAI Conference on Artificial Intelligence.
[60]
tong Cai W., Xavier P., Turner S.J., Lee B.-S., A scalable architecture for supporting interactive games on the internet, in: Proceedings 16th Workshop on Parallel and Distributed Simulation, IEEE Computer Society, 2002, p. 60.
[61]
Truelove A., de Almeida E.S., Ahmed I., We’ll fix it in post: what do bug fixes in video game update notes tell us?, in: 2021 IEEE/ACM 43rd International Conference on Software Engineering, ICSE, IEEE, 2021, pp. 736–747.
[62]
Uddin G., Sabir F., Guéhéneuc Y.-G., Alam O., Khomh F., An empirical study of iot topics in iot developer discussions on stack overflow, Empir. Softw. Eng. 26 (2021) 1–45.
[63]
Valenzuela-Toledo P., Bergel A., Evolution of GitHub action workflows, in: 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering, SANER, IEEE, 2022, pp. 123–127.
[64]
Varvaressos S., Lavoie K., Gaboury S., Hallé S., Automated bug finding in video games: A case study for runtime monitoring, Comput. Entertain. (CIE) 15 (1) (2017) 1–28.
[65]
Wesley D., Barczak G., Innovation and Marketing in the Video Game Industry: Avoiding the Performance Trap, Routledge, 2016.
[66]
Yan J.J., Choi H.-J., Security issues in online games, Electron. Libr. (2002).
[67]
Zhang T., Gao C., Ma L., Lyu M., Kim M., An empirical study of common challenges in developing deep learning applications, in: 2019 IEEE 30th International Symposium on Software Reliability Engineering, ISSRE, IEEE, 2019, pp. 104–115.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 204, Issue C
Oct 2023
486 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 October 2023

Author Tags

  1. Games
  2. Anti-patterns
  3. Catalogue
  4. Thematic analysis

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 23 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media