Visual Generative Behavior Patterns to Facilitate Game Development

The worldwide videogame and interactive entertainment industry revenue is expected to reach over $50 billion in 2009. The majority of the effort in game development revolves around content creation and many resources are spent on it. Game companies construct or buy a set of content creation tools to aid the designers in their work. However, these tools only focus on the artwork, interfaces, game levels, and so on but none of them really focus on the content which is related to the gameplay or the game story, that is, the dynamic aspect of the game. Creating this story-related content, namely the scripts for the behavioral aspect in computer games, and translating this into appropriate program code is a very difficult task. For complex scripting, the developer has to resort to manually write code using scripting languages (i.e. Lua or Python). Furthermore, these languages are not tailored for games which also do not make them easier. Over the years, game developers have come up with many predefined (parts of) solutions to improve the development process. In addition, in practice, people are also trying to avoid writing long scripts by using existing scripts and customizing them to fit their needs.

This brings us to the concept of design patterns, known from the Software Engineering (SE) domain. A design pattern specifies a well-defined solution to a problem that often appears when designing and developing software. Design patterns allow capturing the expertise of others in a well-defined way. In this work, we use the concept of Generative Design Patterns for specifying patterns of behavior that often occur in games. The use of Generative Design Patterns has the additional benefit (over traditional design patterns) that automatic code generation is possible. In this way they promote reuse since a pattern can be designed and implemented once and be used many times in different computer games and/or in different situations. In addition, the time of development can be reduced significantly by providing a library of patterns (or pieces of a solution) allowing the developer to select a pattern and fill in the details. These patterns can be used as first class elements in our existing visual behavior modeling language [6] giving us a number of extra advantages. A visual language can be very helpful for conveying complex models and designs. It can help people to grasp large amounts of information more quickly than large listings of scripting code. When designed well, a visual language is easier for understanding and also for learning. Finally, the diagrams can also be used to ease the communication between different and non- technical stakeholders.

The combination of the generative design patterns and the visual language provides a powerful mechanism to model complex behaviors for computer games as the required scripting code is automatically generated from these higher-level models.
Publication Reference
Pellens, B., De Troyer, O., Kleinermann, F.: "Visual Generative Behavior Patterns to Facilitate Game Development", Proceedings of the International FuturePlay Conference, pp. 13-14, ISBN 978-1-60558-685-4, Vancouver, Canada (2009)