Live programming is a style of development characterized by incremental change and immediate feedback. Instead of long edit-compile cycles, developers modify a running program by changing its source code, receiving immediate feedback as it instantly adapts in response. In this paper, we propose an approach to bridge the gap between running programs and textual domain-specific languages (DSLs). The first step of our approach consists of applying a novel model differencing algorithm, tmdiff, to the textual DSL code. By leveraging ordinary text differencing and origin tracking, tmdiff produces deltas defined in terms of the metamodel of a language. In the second step of our approach, the model deltas are applied at run time to update a running system, without having to restart it. Since the model deltas are derived from the static source code of the program, they are unaware of any run-time state maintained during model execution. We therefore propose a generic, dynamic patch architecture, rmpatch, which can be customized to cater for domain-specific state migration. We illustrate rmpatch in a case study of a live programming environment for a simple Communicated by Prof. DSL implemented in Rascal for simultaneously defining and executing state machines.
Abstract. In textual modeling, models are created through an intermediate parsing step which maps textual representations to abstract model structures. Therefore, the identify of elements is not stable across different versions of the same model. Existing model differencing algorithms, therefore, cannot be applied directly because they need to identify model elements across versions. In this paper we present Textual Model Diff (TMDIFF), a technique to support model differencing for textual languages. TMDIFF requires origin tracking during text-to-model mapping to trace model elements back to the symbolic names that define them in the textual representation. Based on textual alignment of those names, TMDIFF can then determine which elements are the same across revisions, and which are added or removed. As a result, TMDIFF brings the benefits of model differencing to textual languages.
Digital games are a powerful means for creating enticing, beautiful, educational, and often highly addictive interactive experiences that impact the lives of billions of players worldwide. We explore what informs the design and construction of good games to learn how to speed-up game development. In particular, we study to what extent languages , notations , patterns, and tools , can offer experts theoretical foundations, systematic techniques, and practical solutions they need to raise their productivity and improve the quality of games and play. Despite the growing number of publications on this topic there is currently no overview describing the state-of-the-art that relates research areas, goals, and applications. As a result, efforts and successes are often one-off, lessons learned go overlooked, language reuse remains minimal, and opportunities for collaboration and synergy are lost. We present a systematic map that identifies relevant publications and gives an overview of research areas and publication venues. In addition, we categorize research perspectives along common objectives, techniques, and approaches, illustrated by summaries of selected languages. Finally, we distill challenges and opportunities for future research and development.
Abstract. In the multi-billion dollar game industry, time to market limits the time developers have for improving games. Game designers and software engineers usually live on opposite sides of the fence, and both lose time when adjustments best understood by designers are implemented by engineers. Designers lack a common vocabulary for expressing gameplay, which hampers specification, communication and agreement. We aim to speed up the game development process by improving designer productivity and design quality. The language Machinations has introduced a graphical notation for expressing the rules of game economies that is close to a designer's vocabulary. We present the language MicroMachinations (MM) that details and formalizes the meaning of a significant subset of Machination's language features and adds several new features most notably modularization. Next we describe MM Analysis in Rascal (MM AiR), a framework for analysis and simulation of MM models using the Rascal meta-programming language and the Spin model checker. Our approach shows that it is feasible to rapidly simulate game economies in early development stages and to separate concerns. Today's meta-programming technology is a crucial enabler to achieve this.
Grammar-based procedural level generation raises the productivity of level designers for games such as dungeon crawl and platform games. However, the improved productivity comes at cost of level quality assurance. Authoring, improving and maintaining grammars is difficult because it is hard to predict how each grammar rule impacts the overall level quality, and tool support is lacking. We propose a novel metric called Metric of Added Detail (MAD) that indicates if a rule adds or removes detail with respect to its phase in the transformation pipeline, and Specification Analysis Reporting (SAnR) for expressing level properties and analyzing how qualities evolve in level generation histories. We demonstrate MAD and SAnR using a prototype of a level generator called Ludoscope Lite. Our preliminary results show that problematic rules tend to break SAnR properties and that MAD intuitively raises flags. MAD and SAnR augment existing approaches, and can ultimately help designers make better levels and level generators.. Grammar-based level generation is a form of Procedural Content Generation (PCG) that raises the productivity of game level designers. Instead of hand-crafting levels, designers create a level transformation pipeline that generates levels for them by authoring modules, grammars and rewrite rules. The grammar rules work on data structures such as strings, tile maps and graphs, which can be used for generating names, level layouts and missions. These artifacts are step-by-step transformed and combined until a final detailed and fully populated level is generated, with missions, power-ups, challenges, enemies, hidden treasures, secret pathways, encounters, etc. Ideally, each generated level has the intended qualities. Unfortunately, improving the productivity of level designers comes at the cost of quality assurance. In practice, many small problems arise, such as levers in walls, blocked pathways, missing encounters and lava adjacent to water. A lack of direct manipulation compromises the ability of designers to isolate and improve level qualities, e.g., when authoring bridges, forests or paths. As a result, some generated levels may lack intended goals, challenges and missions. This chapter was previously published as R. van Rozen and Q. Heijn. "Measuring Quality of Grammars for Procedural Level Generation".
Card game creation is a powerful tool for game design.Using playing cards, game designers can rapidly prototype and iteratively playtest a game's core mechanisms to explore alternatives and improve the gameplay. However, this process is time-consuming, imprecise and challenging to steer and focus. We aim to empower designers with solutions that automate game design processes. In particular, we study to what extent a unified game design language can offer theoretical foundations, systematic techniques and practical solutions.We propose a novel approach towards a solution that leverages the expressive power of playing cards. Initially focusing on wellknown card games, we illustrate the steps for creating CardScript, a formal language and toolkit that supports game design processes.The approach also has the potential to impact a wider research area. When fully developed, a unified language with a common tool set can enable reuse, and eventually support joint research agendas. We start the discussion by highlighting perspectives that relate open challenges to opportunities for future collaboration. CCS CONCEPTS• Software and its engineering → Domain specific languages; Integrated and visual development environments; • Applied computing → Computer games.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.