1 free read left. Create a free account for unlimited reading + AI research.
Create free accountWhitepaperCentrum Wiskunde
Distilling the key insights…
The game development industry frequently utilizes Lua for its flexibility and ease of embedding within C++ engines. However, as projects scale, developers face significant challenges regarding code maintainability and quality, primarily due to the lack of robust, source-level static analysis tools. Existing solutions often rely on dynamic analysis, which only identifies errors at runtime, or manual, error-prone interoperability code. To address these limitations, the Lua Analysis in Rascal (Lua AiR) framework was developed to provide static analysis for Lua scripts within their specific embedded contexts.
The framework leverages Interface Definition Language (IDL) models to bridge the gap between engine libraries and script logic. By utilizing the Rascal Meta-Programming Language, Lua AiR performs a series of model transformations—including parsing, abstract syntax tree generation, and control flow analysis—to identify potential issues such as undefined variables, scope errors, and type mismatches. This approach allows for the validation of function call arguments against formal parameter types defined in the engine, significantly reducing the need for complex type inference and improving development feedback loops.
Developed in collaboration with the Dutch SME IC3D Media, the framework is designed to integrate directly into the development environment, providing immediate, actionable insights. While current implementations focus on core static analysis features, the project highlights the potential for extending these methods to support domain-specific languages for higher-level game concerns, such as mission design and character behavior. By automating the analysis of embedded scripts, the framework aims to mitigate the technical debt associated with large-scale game development, offering a more reliable alternative to manual coupling and runtime-only debugging.
Each row is a game or company this document names, each column a document, oldest first. A mark means that document names it. Select a row to see those documents.
Game Developers Conference · 2020