Abstract
Video game programming is a diverse, multi-faceted endeavor involving elements of graphics programming, systems programming, UI, HCI, and other software engineering disciplines. Game programmers typically employ a new “codebase” per software artifact which often means a unique choice of game engines and scripting languages. Non-portable code is exacerbated by a lack of a shared language and a lack of translation utilities between languages. Meanwhile, many game programming tasks occur time and time again. Aspect-oriented programming was largely developed to assist software engineers in decoupling tasks while maintaining software reuse. GAMESPECT is a language that promotes software reuse through aspects while also providing a platform for translation of software artifacts which has enabled it to be used in multiple game engines across multiple projects. Code reuse on these projects has been high and our methodologies can be summarized by discussing three tenants of GAMESPECT: 1) composition specifications, which define source to source transition properties 2) pluggable aspect interpreters and 3) high level language constructs and modeling language constructs (MDAML) which encourage designer friendly terminology. By comparing accuracy, efficiency, pluggability, and modularity, these three tenants are demonstrated to be effective in creating a new game programming language.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Bispo, J., Cardoso, J.M.: Clava: C/C++ source-to-source compilation using LARA. SoftwareX 12, 100565 (2020)
Kojarski, S., Lorenz, D.H.: Pluggable AOP: designing aspect mechanisms for third-party composition. ACM SIGPLAN Not. 40, 247–263 (2005)
Shonle, M., Lieberherr, K., Shah, A.: XAspects: an extensible system for domain-specific aspect languages. In: Companion of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 28–37 (2003)
Kojarski, S., Lorenz, D.H.: Awesome: an aspect co-weaving system for composing multiple aspect-oriented extensions. ACM SIGPLAN Not. 42, 515–534 (2007)
Lorenz, D.H., Mishali, O.: SPECTACKLE: toward a specification-based DSAL composition process. In: Proceedings of the 7th Workshop on Domain-Specific Aspect Languages, pp. 9–14 (2012)
Walk, W., Görlich, D., Barrett, M.: Design, dynamics, experience (DDE): an advancement of the MDA framework for game design. In: Korn, O., Lee, N. (eds.) Game Dynamics, pp. 27–45. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-53088-8_3
Zohaib, M.: Dynamic difficulty adjustment (DDA) in computer games: a review. Adv. Hum. Comput. Interact. 2018, 12 (2018)
Bartle, R.: Hearts, clubs, diamonds, spades: players who suit MUDs. J. MUD Res. 1, 19 (1996)
Hunicke, R., LeBlanc, M., Zubek, R.: MDA: a formal approach to game design and game research. In: Proceedings of the AAAI Workshop on Challenges in Game AI, p. 1722 (2004)
Koster, R.: Theory of Fun for Game Design. O’Reilly Media Inc., Newton (2013)
Blow, J.: Game development: harder than you think. Queue 1, 28–37 (2004)
Adams, E., Dormans, J.: Game Mechanics: Advanced Game Design. New Riders, Indianapolis (2012)
Geisler, B.J., Kavage, S.L.: Aspect weaving for multiple video game engines using composition specifications. In: ENASE, pp. 454–462 (2020)
Gregory, J.: Game Engine Architecture. CRC Press, Boca Raton (2018)
Pinto, P., Carvalho, T., Bispo, J., Cardoso, J.M.: LARA as a language-independent aspect-oriented programming approach. In: Proceedings of the Symposium on Applied Computing, pp. 1623–1630 (2017)
Cordy, J.R.: The TXL source transformation language. Sci. Comput. Program. 61, 190–210 (2006)
Sherrod, A.: Ultimate 3D Game Engine Design & Architecture. Charles River Media Inc., Newton (2006)
Kiczales, G., et al.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997). https://doi.org/10.1007/BFb0053381
Moby Games Stats (n.d.). https://www.mobygames.com/
Emms, R., Wixon, D., Wiscombe, S., Malaika, Y.: Spatializing play structures and interaction flow using GSML (Game System Modelling Language). Comput. Games J. 3(2), 40–53 (2014). https://doi.org/10.1007/BF03395951
Gee, J.P., Hayes, E.: No quitting without saving after bad events: gaming paradigms and learning in The Sims. Int. J. Learn. Media 1, 49–65 (2009)
Eysholdt, M., Behrens, H.: Xtext: implement your language faster than the quick and dirty way. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, pp. 307–309 (2010)
Courbis, C., Finkelsteiin, A.: Towards aspect weaving applications. In: Proceedings of the 27th International Conference on Software Engineering, pp. 69–77 (2005)
Geisler, B.J.: GAMESPECT: a composition framework and meta-level domain specific aspect language for unreal engine 4 (2019)
Polo, M., Piattini, M., Ruiz, F.: Using code metrics to predict maintenance of legacy programs: a case study. In: Proceedings IEEE International Conference on Software Maintenance, ICSM 2001, pp. 202–208. IEEE (2001)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Geisler, B.J., Kavage, S.L. (2021). A Multi-engine Aspect-Oriented Language with Modeling Integration for Video Game Design. In: Ali, R., Kaindl, H., Maciaszek, L.A. (eds) Evaluation of Novel Approaches to Software Engineering. ENASE 2020. Communications in Computer and Information Science, vol 1375. Springer, Cham. https://doi.org/10.1007/978-3-030-70006-5_14
Download citation
DOI: https://doi.org/10.1007/978-3-030-70006-5_14
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-70005-8
Online ISBN: 978-3-030-70006-5
eBook Packages: Computer ScienceComputer Science (R0)