{'fraction_non_alphanumeric': 0.014580801944106925, 'fraction_numerical': 0.0, 'mean_word_length': 5.103703703703704, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Declarative processing for computer games

Most game developers think of databases as nothing more than a persistence solution. However, database research is concerned with the wider problem of declarative processing. In this paper we demonstrate how declarative processing can be applied to computer games. We introduce the state-effect pattern, a design pattern that allows game developers to design parts of their game declaratively. We present SGL, a special scripting language which supports this design pattern and which can be compiled to a declarative language like SQL. We show how database techniques can process this design pattern in a way that improves performance by an order of magnitude or more. Finally, we discuss some design decisions that developers must make in order to adopt this pattern effectively.