English

SAGA: A DSL for Story Management

Programming Languages 2011-09-06 v1 Multimedia Software Engineering

Abstract

Video game development is currently a very labour-intensive endeavour. Furthermore it involves multi-disciplinary teams of artistic content creators and programmers, whose typical working patterns are not easily meshed. SAGA is our first effort at augmenting the productivity of such teams. Already convinced of the benefits of DSLs, we set out to analyze the domains present in games in order to find out which would be most amenable to the DSL approach. Based on previous work, we thus sought those sub-parts that already had a partially established vocabulary and at the same time could be well modeled using classical computer science structures. We settled on the 'story' aspect of video games as the best candidate domain, which can be modeled using state transition systems. As we are working with a specific company as the ultimate customer for this work, an additional requirement was that our DSL should produce code that can be used within a pre-existing framework. We developed a full system (SAGA) comprised of a parser for a human-friendly language for 'story events', an internal representation of design patterns for implementing object-oriented state-transitions systems, an instantiator for these patterns for a specific 'story', and three renderers (for C++, C# and Java) for the instantiated abstract code.

Keywords

Cite

@article{arxiv.1109.0776,
  title  = {SAGA: A DSL for Story Management},
  author = {Lucas Beyak and Jacques Carette},
  journal= {arXiv preprint arXiv:1109.0776},
  year   = {2011}
}

Comments

In Proceedings DSL 2011, arXiv:1109.0323

R2 v1 2026-06-21T18:59:36.202Z