{'fraction_non_alphanumeric': 0.017396907216494846, 'fraction_numerical': 0.001288659793814433, 'mean_word_length': 5.313008130081301, '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}}
Applying Dynamic Scripting to "Jagged Alliance 2"

Many modern computer games are fairly complex, with a vast amount of game states and a high degree of randomization. Most of those games fail to provide an adequate artificial intelligence which leads to the player being more adept than the computer controlled agents after a short amount of time. As a consequence, the developers need to artificially strengthen the computer controlled agents to keep up the challenge. Ultimately the player may loose interest in the game because he feels that the odds are not even. A real adaptive artificial intelligence would go a long way towards immersive digital games. However the above mentioned characteristics of todays computer games raise some issues when trying to apply standard procedures known from machine learning and data mining. The desired learning processes need to be fast and reliable. An algorithm named 'Dynamic Scripting' has been developed by Pieter Spronck specifically for the deployment in modern computer games. This thesis covers the application of 'Dynamic Scripting' in 'Jagged Alliance 2', a commercially developed and distributed computer game. After explaining the game's basics and the mechanisms of the learning algorithm, the implemented artificial intelligence is evaluated thoroughly. The emphasis of this paper lies in providing a real world example of implementing an adaptive artificial intelligence in a complex game, along with various suggestions of customizing or combining 'Dynamic Scripting' with other techniques.