Abstract
Game development businesses often choose Lua for separating scripted game logic from reusable engine code. Lua can easily be embedded, has simple interfaces, and offers a powerful and extensible scripting language. Using Lua, developers can create prototypes and scripts at early development stages. However, when larger quantities of engine code and script are available, developers encounter maintainability and quality problems. First, the available automated solutions for interoperability do not take domain-specific optimizations into account. Maintaining a coupling by hand between the Lua interpreter and the engine code, usually in C++, is labour intensive and error-prone. Second, assessing the quality of Lua scripts is hard due to a lack of tools that support static analysis. Lua scripts for dynamic analysis only report warnings and errors at run-time and are limited to code coverage. A common solution to the first problem is developing an Interface Definition Language (IDL) from which ”glue code”, interoperability code between interfaces, is generated automatically. We address quality problems by proposing a method to complement techniques for Lua analysis. We introduce Lua AiR (Lua Analysis in Rascal), a framework for static analysis of Lua script in its embedded context, using IDL models and Rascal.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Ierusalimschy, R.: Programming in Lua, 2nd edn (2006), Lua.org
Ierusalimschy, R., de Figueiredo, L.H., Celes, W.: The Evolution of Lua. In: Proceedings of the Third ACM SIGPLAN Conference on History of Programming Languages, HOPL III, pp. 2–1–2–26. ACM, New York (2007)
Ierusalimschy, R., De Figueiredo, L.H., Celes, W.: Passing a Language through the Eye of a Needle. Commun. ACM 54(7), 38–43 (2011)
Williams, K., McCandless, J., Gregg, D.: Dynamic Interpretation for Dynamic Scripting Languages. In: Proceedings of the 8th Annual IEEE/ACM International Symposium on Code Generation and Optimization, CGO 2010, pp. 278–287. ACM, New York (2010)
Blow, J.: Game Development: Harder Than You Think. ACM Queue 1, 28–37 (2004)
White, W., Koch, C., Gehrke, J., Demers, A.: Better Scripts, Better Games. Commun. ACM 52, 42–47 (2009)
Ramsey, N., Assis, F.: Almost Good Enough to Scale: A Lua Mail Handler and Spam Filter (presentation slides). In: Lua Workshop (2008)
Klint, P., van der Storm, T., Vinju, J.: RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation. In: Proceedings of the 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation, SCAM 2009, pp. 168–177. IEEE Computer Society, Washington, DC (2009)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer-Verlag New York, Inc., Secaucus (1999)
Fleutot, F., Tratt, L.: Contrasting Compile-Time Meta-Programming in Metalua and Converge. In: Workshop on Dynamic Languages and Applications (July 2007)
Palmer, J.D.: Ficticious: MicroLanguages for Interactive Fiction. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, SPLASH 2010, pp. 61–68. ACM, New York (2010)
Furtado, A.W.B., Santos, A.L.M., Ramalho, G.L.: SharpLudus Revisited: from ad hoc and Monolithic Digital Game DSLs to Effectively Customized DSM Approaches. In: DSM 2011. SPLASH 2011 Workshops, pp. 57–62. ACM, New York (2011)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 IFIP International Federation for Information Processing
About this paper
Cite this paper
Klint, P., Roosendaal, L., van Rozen, R. (2012). Game Developers Need Lua AiR. In: Herrlich, M., Malaka, R., Masuch, M. (eds) Entertainment Computing - ICEC 2012. ICEC 2012. Lecture Notes in Computer Science, vol 7522. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-33542-6_69
Download citation
DOI: https://doi.org/10.1007/978-3-642-33542-6_69
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-33541-9
Online ISBN: 978-3-642-33542-6
eBook Packages: Computer ScienceComputer Science (R0)