 Dwi'n gweld David Buckley. David sefydlu yn cael ei foddon o'r university. Prydu cîn a'r Llyfrgell, great hon i ni, a ddo i'r wythnos yn y ffroed, y'r wythnos yn y mewn lŷn cyfnod cyfnod cyfnod. Fy nid yw'r ffroed yma hynny os ydynt. Prydiau lle ar y cyfnod cyfnod cyfnod yw cael Renid. Felly rydw i'r ffordd ar gyfer oherwydd yng Nghaerdydd. Felly mae'n rwyf i'n meddwl i'r strategaidd Eru Yn'r Besin. Ie ddweud y maen nhw'n cymdeithasol yn ei ddweud y bydd. Ac mae'n gweithio ar gyfer y fawr, a'r adabtyfytu. Mae'n meddwl yn LHCI, yma yw y cymdeithasol, a'r adabtyfydd yn ei ddweud y bydd y cymdeithaeth. Mae'n cymdeithasol yn dda i'r cymdeithasol. Mae'r adabtyfytu yn y ddweud. Gwneud yn cyfrifiad, mae'n gallu ei ddwyllfa yma, i'w ddwyllfa yma, i'r argymau, i'n credu ei ddweud. I'm not doing a PhD in graphics. This is sort of advanced interfaces group realm more. So that would be research in rendering and shaders and stuff like that. And this is Unreal Tournament. There's research going into bots and artificial intelligence in the world. And I'm not doing that either. That's artificial intelligence. I'm doing machine learning, which is very similar, but it's slightly different. And this is Portal. It's one game of the year. This is a fantastic game, innovative, loads of great game mechanics. And it's also not what I'm doing. This is for game designers. This is more commercial stuff than what I'm doing. And this is Left 4 Dead. This is a zombie survival game where the players have to get to an end goal. And I actually am doing a little bit of this. So in Left 4 Dead there's an AI director which controls some of the game content. It monitors the players, it monitors the intensity of the game, and adjusts it accordingly. And this is what I'm doing. So why should we be adapting games? Well, everyone has different preferences. People are different tastes in music in the same way they are different tastes in games. Some players like racing games and some players like first person shooters. In fact players can have different preferences in the same genre. So players of World of Warcraft can like hitting things or they might like go collecting things or selling things. So by adapting the game we can increase the audience. People also have different skill levels. So some people are better than others, some people are terrible. So it would be great if we can adapt the game to account for that as well. So if a game is too hard we need to decrease frustration. Now that's just one example how we can adapt the game. And at the end of the day why shouldn't we adapt the game? We have machine learning techniques which can learn players' opinions, how players like things. And the games we run on computers. So why not? The next question is what can we adapt? So here's a big list or a short list actually of things that you can adapt. And I'm going to be looking at four of these just for now to give you an idea of what you can adapt. So Enemies is the first one. Here's a screenshot of a game, Black Mesa, in which you have a few enemies in the distance. Nice and easy, straightforward. What happens if you've got a tank and three turrets? What are you going to do? And this is an example of how changing the enemies can change the game, how changing the frequency of your opponent and the types of enemies that you see. We can also adapt the weapons, the weapon types, when they appear, where they appear. Here we go. This is another screenshot of Black Mesa. You have a giant fish and you've got to shoot it with a crossbow. Not too difficult. What if you have a crowbar? So that's how changing where the weapons appear can change the game. You can also change the levels, so people have different preferences in games. So this is an example of where you have to navigate a lot of tripmines in case the whole world explodes basically. So you can either do that or you actually might just enjoy jumping over platforms. That's a different type of level. So we could adapt the frequency in which these types of levels appear in the game. Finally, difficulty. This is a bit harder to show with screenshots, but this has been present for a while in games. It's been known as dynamic difficulty adjustment, trying to change how the game is played by people to make it harder or easier for players depending on how good they are. You could change how the damage is inflicted or received, or you could change all the components that I've just talked about to change the difficulty. So more enemies obviously means a harder game, for instance. So some examples of adaptivity include adaptive doom, which some of you might have heard of. Jonathan Roberts is working here in the department and he's been working on creating random doom levels to try and figure out what combination of these weapons, levels, players like. So Matt Ulter, the number of enemies that you might have, all the different types, the combinations, and then try and figure out using machine learning what you actually like. Next, here's an example of the Galactic Arms Race game, which is part of a research project in evolutionary algorithms. So evolutionary algorithms in machine learning are similar to the biological idea in which small mutations happen. So in this case, the weapons are changed slightly to produce different concepts. So a player can select over a long period of time what sort of weapons they like by trying out different things and the computer can infer what they actually like. Max Payne is an early example of dynamic difficulty adjustment. Aim assist could be enabled automatically, as well as changing how much damage the player was doing, depending on how well you were doing in the game. I've already mentioned Left 4 Dead, but here is a graph that Valve produced in their presentation about how the AI director works. So on the top row, we have a population that the game would like to put out, how many monsters it had over a period of time. So on the left, we have a cluster of monsters and then a few minutes later, you might have another cluster. The second row is what the AI director thinks that the intensity should be like. So the relaxed areas are where it would like to relax the game, make it easy, and then it spikes it again, lots of monsters. So the final row is the combination of the two, trying to adjust the number of monsters essentially. That's a simple example of adaptivity. There are two parts to adaptivity in games. The first one is player modelling, the second is optimisation. So this first part is trying to figure out what the player is feeling. If we don't know what the player is feeling, how can we adapt the game? So we have to create some kind of model based on what the player is feeling. So we do this via data collection. There are different ways of doing this, first of which might be physiological data. We could plug someone up to a machine, measure their heart rate, respiration, sweat, stuff like that, except it's very intrusive and it's quite noisy as well at times. So another way might be observing people. We can watch players as they're playing a game. That's a bit more difficult with video game players, because they all sit like this. So an alternative is asking them directly, but then we have the problem of people might lie, people might not know how they feel. And this all falls under the category of human interaction and trying to figure out how players, whether players are enjoying themselves or not. Log files are a key to this. If we can record what the players are doing and somehow attribute that to how players are feeling, so watching what they're doing, we can then perhaps automatically determine whether they're enjoying themselves or not. Examples of the data you might record are low-level data might be a mouse movement or key presses. A high-level data might be the number of kills you get or the number of interactions you have with another player. The second step, optimization, is using the player model that we've got and trying to adjust the emotions that they're feeling. So here's a small example of an algorithm we might use to optimise the game. You get someone to play a level, you work out what they're feeling using one of the previous techniques we discussed. You then change the level slightly, use our model to determine whether the player will now enjoy this more or less. And then if it is, we've done it right. If not, we have to adjust the level again. And you could just keep repeating this to try and make the level better and better. Examples of the application of this in research today include Mario. So an open-source version of Mario has been used to try and do some player modelling, trying to figure out six different emotions of players. So they've tried to model frustration, predictability, anxiety, difficulty, for instance, and then using that to then optimise the game. So on the right, we have a game with lots of gaps and a game with lots of enemies. So by using those emotions, we can just flip from one to the other depending on what the response might be. They also do some feature selection to determine which of these features are most important. So it might be the case that the direction the player is going is a very important feature. On the other hand, it might be the case that lots of shells might be very important to note. And they do some analysis of this, so they try and figure out the behaviour and the correlation between how a player is feeling and what it's recording, essentially, which is very interesting to my research particularly. And then secondly, I'd like to discuss the Playware platform. It's not a video game, but the principles apply. So in this testbed, there are several tiles, which a child, for instance, might interact with. So you press a tile and then you're interacted with a game. So an example game might be something equivalent to Whack-a-Mall where you hit a mall with a hammer. So you can measure the interactions between the player and the game. So measuring how hard they're pressing the tile, for instance, might indicate that they're having lots of fun. Or they're very frustrated, maybe. So they do a little bit of optimisation with this platform, trying to optimise the emotions which you've already modelled using the game. So, this is essentially applied to me to science. One example of the modules that is very applicable to this is Comp24111, which some of you might be doing or have done, the machine learning module. So you learn some future selection in that with the digit data. You also do some SVMs as well, and that's very important, very integral to the research I'm doing. You also mention neural networks as well, and all of this correlates very strongly with this sort of research. But also it goes into further depth, having a look at different learning algorithms, such as active learning, which Jonathan Roberts is using in his project. Another example of a module which is very important is the image processing module, in which we have here representations of levels in 2D. So we've got a very open level on the right and a level with more corridors on the left. So you could represent these in any number of ways, but here's just two examples. In image processing techniques, you can work out, for instance, how wide the corridors are using granularity techniques, or try eroding or diffusing to try and figure out features that might be important. So my research in particular is focusing on first person shooters, multiplayer first person shooters. So an example of that is Team Fortress 2 here on the right, which is quite popular these days. In particular, I'm focusing on the levels in a multiplayer first person shooter, known as a map in this area. This is the architecture or the area that you play in. So it includes things like walls, ceilings, mountains that might be in the way. If we can explore that, we can find out what sort of features might be interesting. So here's an example of a map. There's a small room with a control point. These are all features of the map that might be very interesting to measure. One key aspect that I'll be exploring in my PhD is log files. We have to figure out what sort of features, what things are interesting in this log file. So that's where feature selection and feature extraction are important, because mouse movement might be really integral to what a player is feeling. So if a player is moving a mouse wildly, that would be really excited, but we don't know that and no one's had a look at it yet. So that's where we have to do research into that. And we also have to do feature extraction to try and find more high-level examples that we can record. So this is the architecture of my research. On the left, we can see the satisfaction model, and this is the player modelling part of the research. And on the right, we have the optimisation stage, where the feedback happens, where the map model or the model of the player's preference for a particular level is fed back into the generator, which gives you the more optimal map. So as you can see, the player plays the game, which produces a log file. On the very left, you might just make out a little file with a Q in, and that's the questionnaire. So we need to figure out what features of the log file are important, and by doing that we'd ask a player initially. But hopefully over time we'd be able to remove the need for that questionnaire so that further research can go on without having to ask anything of the player and just read it all from a log file somewhere. Finally, these are the challenges that my research and research in this field face. So, as I've already mentioned, we need to find the features in a log file, and that's quite a difficult task, particularly if actually nothing is correlated, and that's quite hard to work out. If we've got a multiplayer game, we have to be able to model multiple players at the same time, because everyone might be feeling something different, and we might be playing the same map, but not everyone might like that map, so you have to work that out. In addition, we have to be able to distinguish between the feeling you might have for an opponent and the feeling you have for a level. If you're playing on a map you really like, but you hate all the players who are playing it, you're not going to enjoy the game. If you're playing on a map you hate, but you like the people, maybe you'll enjoy it. So you have to be able to determine the difference between those, and that's a challenge we face. The representation of levels is important. As people who have studied machine learning might know, the more features you have, the more complicated the machine learning side is. It becomes slower, it becomes harder, it becomes more fuzzy. So we have to be able to represent the levels compactly while describing them thoroughly. Finally, your preference changes over time. So like in music, you might like human music when you're 15, and you might like rap when you're 20. But by the time you're 40 you might be listening to classical music. So we have to be able to determine which levels you like at a particular moment in time. Because you might like going from first-person shooters to role-playing games, and we have to be able to account for that. And that's it. Are there any questions? Yes? I personally love the frustration in my games, because people give me the sort of challenge for myself to get better at it. Like, super made boy. I start with something. So how would you sort of account for that? Like people sort of admit preferences for the difficulty that they like? There are player types. So some players might have different preferences. So you might like frustration. So when we were doing our data collection, when we're asking questions, we can ask whether they enjoyed the game, and ask them whether they were frustrated. Or they might fall under a particular type of player. There's also possibly, I was talking about recently with someone, might be two different types of frustration. A frustration with yourself, because you can't complete something, and a frustration with the game, which is not usually very enjoyable. Like if you're playing something and it's a terrible game, it's not fun. Exactly. Yes? How generic are the models that you can create for the first-plus shooters? Does it only work with one specific game? Or could it work with, is it reasonably adaptable, but you can use it with other first-plus shooters? It depends on the data we use. So if we managed to get the low-level data to work, things that are common among lots of first-plus shooters, then it would be very generic. So mouse movement, key presses. We'd have to do research to make sure that it does actually apply to different games, because even first-plus shooters have very different mechanics. So Counter Strike Source has its very mechanic base, so if you make one-to-one mistake, that could be it for you. Whereas something like Team Fortress 2 I posted an example of before, it's much more forgiving. So there might be differences that we'd have to account for. There you go. These profiles you create are these transparent between different genres of computer games? Like if there's a sports simulation, is somebody who plays a sports simulation likely to have the same behavior on a first-plus shooter? So it's a similar response. Yes and no. There are player types, as I mentioned, so there are four player types, apparently, in the gaming world, together, and you will generally fall under one or maybe two of these at one time. So you will behave similarly with respect to the players, but you might do different things if that makes sense. So you'd have to adapt the model, essentially, the player model to the game as well, particularly if you're going between genres. In terms of feelings about the levels and the players, could you just discuss some of the ideas that you've been considering for that? Sorry, can you repeat the question? In terms of the feelings for the players and the levels, the difference in them, could you just discuss some of the ideas that you've been considering for that, as in how to differentiate between the two? Between the two... Feelings for the... Oh, I see, right, okay, yeah. Yeah. So, at the moment, I've been considering... Well, one of the ways to get around this is to increase the number of games you play, particularly against other players, so changing the diversity between players. And if you find correlations between particular players, so if you play a player over different maps and you always feel the same, then it's likely that it's the play you don't like rather than that. That's one of the risks I have with my research. It might be the case that it's too hard to actually do that. So, in which case we'd have to take a step back again and have a look at it again. Shall I give that a feature and say that none of the offensive words end the player? Yes, yes, absolutely. But on the other hand, it might be the case that you just frustrated the game and you're swearing at everyone anyway. Yep. So, you did this with your PhD? Yes. And you're going to try a thesis? About video games, yes. But at the end of your thesis you're going to have some conclusions based on some evidence which is scientifically proven. It's interesting that a lot of the motivation here is about how people feel. What kind of population of players are you going to need to do this research on to really substantiate some concrete conclusions in your thesis? A couple of hundred, probably. Hopefully less. So, Jonathan Roberts got at least 100 players playing his game online. So, one of the stages of this research is to release it online so people can play from wherever and whenever, which will certainly increase the number of players and hopefully validate the claims. But then we obviously get into the issue of people lying and having to do crowd sourcing essentially of the data. Yes, does that answer the question? Yep. Fantastic. Thank you, David. If you're interested in all these research talks that are going online, so if you just google Manchester Research showcase all this talk and the subsequent ones are online. Next week's talk is going to be from Alan Spokes who's going to be talking about sensor networks. Come on if you're interested. Join me in thanking David.