In the future, there is no need to continue writing
code generators for each engine used. While UE4
uses Skookum Script, this is not available in Unity
and hence a code generator for C# was needed. It
would be an enhancement to combine these two
initiatives in one and use a shared code generation
target. LUA would actually be a good choice for the
target language since it is supported by Unity as well
as Unreal Engine 4. Furthermore, it has a fairly small
footprint (Glasberg & Bresler, 2006) such that even if
a target game engine doesn’t support LUA, it could
easily be added.
The inclusion of generic function calls such as
“push and call” from figure 2 allows for LUA to work
in an aspect-oriented fashion on any created LUA
script as long as it’s registered in the .gs file. This is
an attractive and extensible solution since
theoretically one could add Blueprint support very
easily. The CPP composition specification would
only need to register the C++ call sites which are used
for Blueprints and this would work. Due to time
constraints, the current research has not included
Blueprints, however they are very popular in UE4
development (Wang & Nordmark, 2015). Adding
support for these would be critical to widespread
acceptance.
REFERENCES
Antao, S.G., et al. 2016 Offloading support for OpenMP in
Clang and LLVM. In: Proceedings of the Third
Workshop on LLVM Compiler Infrastructure in HPC.
IEEE Press.
Bosnjak, M. & Orehovacki T.. (2018, May). Measuring
quality of an indie game developed using unity
framework. In 2018 41st International Convention on
Information and Communication Technology,
Electronics and Microelectronics (MIPRO) (pp. 1574-
1579). IEEE.C. J. Kaufman, Rocky Mountain Research
Lab., Boulder, CO, private communication, May 1995.
Anderson, E.G., 2001. A Classification of Scripting
Systems for Entertainment and Serious Computer
Games. In 2011 Third International Conference on
Games and Virtual Worlds for Serious Applications
Cordy, J.R., 2006. Source transformation, analysis and
generation in TXL. In Proceedings of the 2006 ACM
SIGPLAN symposium on Partial evaluation and
semantics-based program manipulation (pp. 1-11).
ACM.
Courbis, C. Carine, &Finkelsteiin A., 2005 Towards aspect
weaving applications.In Proceedings of the 27th
international conference on Software engineering.
ACM
Dillet R., 2018. “Unity CEO Says Half of All Games Are
Made on Unity,” https://techcrunch.com/2018/09/05/
unity-ceo-says-half-of-all-games-are-built-on-unity/.
Dormans,J., 2012, Engineering emergence: applied theory
for game design. Universiteit van Amsterdam Press
Duffy, E.B., Malloy, B.A., Schaub, S., 2014. Exploiting the
Clang AST for analysis of C++ applications. In
Proceedings of the 52nd annual ACM southeast
conference.
M. Eysholdt, M., Behrens H., 2010. 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. ACM,
Hunicke, R. LeBlanc, M., Zubek.R, 2004. MDA: A formal
approach to game design and game research. In
Proceedings of the AAAI Workshop on Challenges in
Game AI. Vol. 4. 2004.
Geisler B.J., 2019. GAMESPECT: A Composition
Framework and Meta-Level Domain Specific Aspect
Language for Unreal Engine 4.NSUWorks Nova
Southeastern
Glasberg M., & Bresler J., 2006. The Lua Architecture. In
Advanced Topics in Software Engineering.
Gu,Z., et al. 2010. Has the bug really been fixed?,In
ACM/IEEE 32nd International Conference on Software
Engineering IEEE.
Holopainen, J., & Björk S. (2003). Game design patterns.
In Lecture Notes for GDC.
Kiczales., G., et al. 1997. Aspect-oriented programming. In
European conference on object-oriented programming
(pp. 220-242). Springer, Berlin, Heidelberg.
Kojarski, & D.H. Lorenz, D. H. (2007). Awesome: an
aspect co-weaving system for composing multiple
aspect-oriented extensions. ACM Sigplan Notices,
42(10), 515-534.
Kojarski, S., & Lorenz, D. H. (2005). Pluggable AOP:
Designing aspect mechanisms for third-party
composition. ACM SIGPLAN
Lorenz, D. H., & Mishali, O. (2012, March).
SPECTACKLE: toward a specification-based DSAL
composition process. In Proceedings of the seventh
workshop on Domain-Specific Aspect Languages
Martin M. (2012). The Technology behind the Unreal
Engine 4 Elemental Demo. Part of “Advances in Real-
Time Rendering in 3D Graphics and Games,”
SIGGRAPH, 2012.
Miller, K. (2009). Schizophonic performance: Guitar hero,
rock band, and virtual virtuosity. Journal of the Society
for American Music, 3(4), 395-429.
Moby Games Stats,” n.d. https://www.mobygames.com/.
Pinto, P., Carvalho, T., Bispo, J., Ramalho, M. A., &
Cardoso, J. M. (2018). Aspect composition for multiple
target languages using LARA. Computer Languages,
Systems & Structures
Polo, M., Piattini, M., & Ruiz, F. (2001, November). 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.