Scripting in video games is a complex challenge as it needs to allow a game designer (usually not a developer) to interact with an extremely complex piece of software: a game engine. Game engines handle AI, physics, rendering, networking and various other functions; scripting languages usually act as the main interface to drive the entities managed by the game engine without exposing too much of the complexity of the engine. A good scripting language must be very user-friendly because most of its users will not be developers; it must support transparent continuation mechanisms to ease the most common tasks faced when writing scripts and it must be easy to integrate in an existing game engine. Also, since games are very performance sensitive, the faster the scripting system the better. In this paper we present a monadic framework that elegantly solves these problems and compare it with the most commonly used systems.
[1]
John Hamer,et al.
A Modular Monadic Action Semantics
,
1997,
DSL.
[2]
Johannes Gehrke,et al.
Scaling games to epic proportions
,
2007,
SIGMOD '07.
[3]
Philip Wadler,et al.
How to declare an imperative
,
1997,
CSUR.
[4]
Philip Wadler,et al.
Comprehending monads
,
1990,
LISP and Functional Programming.
[5]
Brian Beckman,et al.
LINQ: reconciling object, relations and XML in the .NET framework
,
2006,
SIGMOD Conference.
[6]
Turner Whitted,et al.
Designing a PC Game Engine
,
1998,
IEEE Computer Graphics and Applications.
[7]
Roberto Ierusalimschy,et al.
Coroutines in Lua
,
2004
.
[8]
Eugenio Moggi,et al.
Notions of Computation and Monads
,
1991,
Inf. Comput..