Since the appearance of computers puzzle games are popular. A special kind of these games are where the user has to solve logical puzzles in a labyrinth in order to get to the goal. The main reason of their popularity is that they combine logic and creative thinking with entertainment.
Nowadays, there is an increasing demand by players to create their own, custom levels for games. Games providing this feature can benefit a lot from it, because if the users can create their own levels, the game will keep their interest for a longer time. However, creating custom levels is not a common feature in labyrinth-puzzle games. The main reason for this is that creating levels for a game usually demands some level of programming knowledge from the user. Using a domain-specific language (DSL) solves this problem, as describing a level with a domain-specific language requires only the knowledge of the domain instead of a rather complex classical programming language. It is also easier to understand the given problem when using a DSL.
In my thesis, I'm going to present a domain-specific language developed by me. The language can describe the rules of a specific labyrinth game. I have also created a game engine responsible for parsing and using the rules provided by the language. The application also provides a user-friendly graphical interface for the game. The game is centered around custom levels, which can be depicted using the language.
First I'm going to present the technological background of the game and the usual toolset of textual domain-specific languages. After that I'm going to elaborate the ruleset and the workflow of the game. This part is followed by introducing the created DSL and its connection to the game. Finally, I'm going to demonstrate how the solution works in practice through a case study.