A domain-specific embedded language approach for the scripting of game artificial intelligence

A computer game’s artificial intelligence is often scripted using a domain-specific language designed specifically for the game. An approach to language design and prototyping, particularly appropriate to domain-specific ones, is that of embedding a language within a general purpose host language. In this paper, we present an approach to artificial intelligence scripting using embedded languages where the embedded language scripts become data objects in the host language enabling parametrized strategies and their manipulation through host language programs. We identify three classes of scripts: (i) fixed scripts written directly in the embedded language; (ii) adaptive scripts, dynamically generated and modified by the host language programs whilst reacting to the state of the game; and (iii) adaptive scripts which, by means of multi-tiered language frameworks, allow for different levels of abstraction in the specification of game artificial intelligence.

[1]  Paul Hudak,et al.  Modular domain specific languages and tools , 1998, Proceedings. Fifth International Conference on Software Reuse (Cat. No.98TB100203).

[2]  Paul Hudak,et al.  Building domain-specific embedded languages , 1996, CSUR.

[3]  G. Pace,et al.  Embedded Languages for Origami-Based Geometry , 2007 .

[4]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[5]  Jr. Guy L. Steele,et al.  Common LISP: the language (2nd ed.) , 1990 .

[6]  Gordon J. Pace HeDLa : a strongly typed, component-based embedded hardware description language , 2007 .

[7]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[8]  Gordon J. Pace,et al.  An Embedded Domain Specific Language to Model, Transform and Quality Assure Business Processes in Business-Driven Development , 2008 .

[9]  Gordon J. Pace,et al.  An embedded language framework for hardware compilation , 2002 .

[10]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[11]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

[12]  Gordon J. Pace,et al.  An embedded geometrical language in Haskell : construction, visualisation, proof , 2007 .

[13]  Conal Elliott,et al.  An Embedded Modeling Language Approach to Interactive 3D and Multimedia Animation , 1999, IEEE Trans. Software Eng..

[14]  Samuel N. Kamin Research on Domain-specific Embedded Languages and Program Generators , 1997, US-Brazil Joint Workshops on the Formal Foundations of Software Systems.