MM AiR: Micro-Machinations Analysis in Rascal

Machinations. Machinations is a visual notation for game design that foregrounds elemental feedback loops associated with emergent gameplay [1]. Using Machinations, game designers can express internal game ecomies, and reason about gameplay before a game is fully developed. Machinations visually depicts the rules as diagrams that consist of nodes and edges. When set in motion through play, the nodes step-by-step propagate resources along its edges. Here, we describe research that is not related to machinations.io, a commercial website and subscription service.

AdapTower
Johnny Jetstream
MeDeA: Mechanics Design Assistant
Vie: A Tiny Live Game Engine

Micro-Machinations. Micro-Machinations (MM) is a textual and visual programming language, a continuation of Machinations that addresses several technical shortcomings of its evolutionary predecessor. MM is as a DSL for game-economies (or game-economic mechanics) that speeds up the game development process by improving game designer productivity and design quality [2]. MM formalizes an extended subset of Machinations features, notably adding modularity and a textual storage format. Over the years, my research has produced methods, techniques and tools that are available as open source software.

MM AiR. For accurately predicting a game’s behavior, we have proposed MM Analysis in Rascal (MM AiR), a visual framework that analyzes reachability and invariant properties [2]. Using the Rascal meta-programming language and the SPIN model checker, MM AiR can check invariant properties against a game’s rules. MM AiR is available on GitHub: https://github.com/vrozen/MM-AiR.

MM Lib. MM introduces a live programming approach for rapidly prototyping, adapting and fine-tuning game mechanics, which includes anembeddable MM Library (MM Lib) written in C++ [3]. Using MM Lib, game developers and game designers, can embed MM diagrams inside game software to modifying game economies inside running games. We have performed case studies on AdapTower and Johnny JetStream, respectivly a tower defense game and a 2D fly-by shooter. MM Lib is released under the 3-Clause BSD license: https://github.com/vrozen/MM-Lib.

MeDeA. Mechanics Design Assistant (MeDeA) is a tool that features pattern-based editing using an extensible and programmable pattern palette [4]. Using MeDeA, game designers can perform pattern-based analyses and transformations of game economies in a mixed-initiative manner. MeDeA can recognize and explain patterns, and generate model extensions. MM AiR and MeDeA leverage meta-programming features of Rascal, e.g., pattern matching and visualization. MeDeA is available on GitHub: https://github.com/vrozen/MeDeA.

Current work. The current work focuses on Vie, a tiny live game engine for simultaneously prototyping and playtesting a game’s mechanisms [5, 6]. This new version of MM for live programming is based on C#. Read more about Vie.

Acknowledgements. We thank our collaborators in the Automated Game Design and Live Game Design NWO/SIA RAAK-MKB projects. A special thanks goes to Joris Dormans (LudoMotion), Loren Roosendaal (Knowingo) and Paul Brinkkemper (MoneyMaker.Games) for their continued collaboration over the years.

References

  1. Ernest Adams,and Joris Dormans. Game Mechanics: Advanced Game Design. New Riders, 2012.
  2. Paul Klint and Riemer van Rozen. “Micro-Machinations: A DSL for Game Economies”. In: Proceedings of the International Conference on Software Language Engineering. Vol. 8225. LNCS. Springer, 2013. DOI: 10.1007/978-3-319-02654-1_3
  3. Riemer van Rozen and Joris Dormans. “Adapting Game Mechanics with Micro-Machinations”. In: Proceedings of the International Conference on the Foundations of Digital Games. SASDG, 2014. URL: http://www.fdg2014.org/papers/fdg2014_paper_34.pdf
  4. Riemer van Rozen. “A Pattern-Based Game Mechanics Design Assistant”. In: Proceedings of the International Conference on the Foundations of Digital Games. SASDG, 2015. URL: http://www.fdg2015.org/papers/fdg2015_paper_79.pdf
  5. Riemer van Rozen. “Game Engine Wizardry for Programming Mischief”. In: Proceedings of the Workshop on Programming Abstractions and Interactive Notations, Tools, and Environments, PAINT. ACM, 2023. DOI: 10.1145/3623504.3623570
  6. Riemer van Rozen. “Cascade: A Meta-Language for Change, Cause and Effect”. In: Proceedings of the International Conference on Software Language Engineering. ACM, 2023. DOI: 10.1145/3623476.3623515