 Okay, welcome. Thank you for your patience while I'm getting started here, so I'm going to talk today about designing open source narrative driven interactive experiences. And my name is Melissa O'Clair, and I'm a software engineer at Studio Triumph, which is like the name that I publish my games under. So I'm going to be talking a little bit about game narrative and chat bots and things of that nature. So yeah, just a little bit about myself. I have about 30 years of experience gaming. I'm an independent game developer, and I've worked in the game industry maybe four years now. I've released a game to the iPhone app store, and this is my fifth open source summit. And you can tweet me or follow me at my Twitter or if you'd like. And my primary interests are in 2D action and adventure games, role playing games, and AR and VR more recently. So I just wanted to say that 2019 is a really, really good time to be a game developer. And there are many projects in the works. It's easier than ever to develop your own independent games, and there are many different tools available to do that. There's communities that have sort of built themselves around game development, like on Reddit or on various Internet forums. And it's very much easier. The barrier has been lowered significantly for entry into the industry. So I'm going to talk a little bit about the open source game development pipeline in 2019. And there are many engines that are available now, like Godot or Zenco, which is recently open sourced or monogame, which is basically like the XNA framework, which has been around for a while. And then there are 2D game engines like Cocoast 2DX or Panda, and there are many out there. And also 3D modeling programs like Blender and Make Human, and there are animation tools like OpenTunes, which is a cell animation program, and programs like Synfig Studio and Pencil2D and Krita and Gimp and Inkscape for digital art. So there are many tools available, many more than that even. So yeah, it's really up to your preference for what kind of assets that you would like to produce or that you're trying to produce or where you are in your pipeline, if you're in pre-production or if you're doing concept art or if you're doing programming or engine programming or debugging or in the post-production or any of the phases there are things out there to use. So my personal game design philosophy and these are my opinions sort of around game design that I have developed over many, many years I guess. So the first thing I would say is that the player is your friend and so it's important to treat them lovingly and with care and never ever fight the player in your design. This is my opinion. And so I guess it's sort of, I don't say that in terms of difficulty or like watering the game down, but I say that in terms of respecting the player's time and resources that they're putting into the game. I know there are games like online role-playing games where it takes several hundred or several thousand hours of gameplay to like find an item or maybe not several thousands, but just treating the player with respect and sort of realizing that the game isn't there to fight them. It's there to sort of entertain them. And so working from that perspective of customer satisfaction I guess, which is a weird thing in the games industry, but I think that's really important. And also in inclusivity games are better when a variety of voices are represented and when varying perspectives are brought to the table. So I really believe that's even more important nowadays because like games used to be very abstract things that have maybe character sprites and they're not very detailed and they're sort of walking around on an overworld map and like they could basically be anyone. Like anyone could put their sort of emotions into the characters and say, oh well this is a representation of what I might be like, but more recently it's become the characters have very detailed back stories and they're very detailed and like drawn characters with that look like actual humans. And because of that I think it's even more important that I think this is the main reason why inclusivity sort of became a focus is because the sort of detailed we've moved from the general to the specific. And because of that it is important now that that games be inclusive. And the third thing I would stress is novelty. So game ideas should be new and original and break new ground. And I think that's really an important tenet of like the way that I design games. And I think that it is very, how should I say, it's very important to sort of make a good game that it be innovative and not chase what other people are doing but sort of experiment with new ideas and with new ways of the gameplay mechanics and with new things. I think historically that has always been the case in the industry. Like the biggest and best games that have had the most impact did so because they were innovative. So don't imitate and hate. And the fourth thing I would say is important is social gaming. So I believe that social gaming is inherently superior to just gaming by itself. So I think it's better gaming together than gaming alone. And that building social skills and social interaction are part of that. And it's really important. So that's my philosophy basically. So this is a screenshot from California Games. It was designed by a company called Epics. And this was back in the 80s. I think this is the first game I ever played. And there were very many choices that you could make. And sometimes they would have pretty devastating consequences. And I hadn't had a manual at the time that I could go through in sort of reference. I couldn't really read at the time. And so I sort of had to wing it and make lots of mistakes like this sometimes with less than, I guess, desirable results in some instances. So I guess the takeaway from a design perspective from this would be to sort of make software accessible to the user just or intuitive. And to not sort of expect that they're going to be really knowledgeable going into it. Because that's how many people learn. Like they will try things and they will learn through trial and error. And so it's important that the design be intuitive and that you can go back on the choices that you have made in case you did not want to make them. So there's not a sense of permanency in your choices. Like there's always a way to go back and fix what you've done. So that's what I believe the takeaway from this would be. The next one would be Duck Hunt. And I guess this game is really also influential. There was a light gun that came with the game. It was a peripheral. And it was very shooting game. So you would shoot the ducks and they would fall below the grass and then this dog would sort of collect them. And so it was very innovative at its time. It was very easy to use. It was actually holding a gun as opposed to just maybe clicking a mouse or pulling a trigger on a controller. So it was a more immersive element to the experience. So you were actually shooting a light gun at the screen. And there are several games like that that have been developed like Time Crisis and Virtua Cop and House of the Dead. And most of them are arcade games. But that is a specific mechanic that made the game fun, entertaining, and enjoyable. So I guess the takeaway from that is to always sort of have user feedback and to make a process intuitive so that this kind of easy to use, easy to learn, but difficult to master sort of game. And this is Dragon Warrior 2 by Enix. And this is sort of another example of user interface that I would like to talk about. It's not very specific in certain instances. But basically the concept of Dragon Warrior was that you were walking around on an overworld map and there was lots of freedom that your character had to explore the game world. And sometimes you could go into areas where the monsters were significantly stronger than you. And there was little you could really do to sort of fight them or proceed through the game without clearing certain trials first. So you would get this kind of a situation in a lot where you're maybe killed by a dragon lord because you wandered off the path too much that you were supposed to be on. And this in and of itself is pretty difficult to understand. Like the G represents gold and E represents experience points. So the object of the game was to gain more experience and become stronger as a result of the experience. But you don't really know how much experience you need to gain to get to the next level or to build your character or how much gold the next set of items are going to cost. And that in and of itself, you have to play the game for a long time to really even know what these things are. So I guess this sort of an interface I guess would be not as friendly as I would like. So I guess the goal or the take away from that would be to sort of don't be intimidating with the way that you build the user interfaces and to make them approachable and understandable and to sort of have a friendliness with the way that you design games and software in general. And this is Eye of the Beholder. It's a similar type of game that was created by Strategic Simulations Incorporated. And it's based on the Dungeons and Dragons role-playing game. So it's like a video game adaption of that. And there's a lot of backstory into the way that this works. There are items that your characters can hold. There are different classes that you can choose at the beginning of the game. And depending on that, you will get certain items like this cross, which means that you're a cleric and you can use healing magic or this book, which is like Mages, Magician, Attack Magic spellbook, I guess. But you're not really told any of that at the beginning. You're sort of set into this game world and you don't know anything about these books or any of these weapons or anything about where you are. Even this is sort of basically a dungeon crawler where you go through the labyrinth and you sort of find stronger items and armor and equipment and defeat more successively powerful enemies and then you get to the bottom floor where you defeat the boss of this huge labyrinth. But in this case, there's a lot you need to actually know before being able to appreciate this type of game. Like a lot of Dungeons and Dragons backstory and a lot of alignments. And if you don't know what a magic missile is, it might be more difficult to navigate. And there's also an aspect of it that's like free, it gives you a lot of freedom over what to do. You could throw the book at a goblin and it will do one damage to them. But you actually need the book to clear the game. So in a sense it rewards you for doing something which, oh, I killed a goblin by throwing this book at them and it did one hit point of damage. But it really like, yeah, you're going to need that later because you need to cast the spells or revive your characters or use the different weapons which do a lot more damage than just throwing them or anything like that. So I guess the takeaway from this would be to really make your user interface intuitive and to really sort of explain in game what your items do and not sort of assume that there's this backstory of knowledge that everybody has or that everybody's supposed to know before they're able to play a game or enjoy it. Or if there's a sequel that everybody's played the first one or anything like that in order to really understand or appreciate the game. And I think that would be a barrier that you just spent $59 on this game and then you don't really know anything about how it works, basically. And there are like kind of tooltips and things like that built into modern software packages that make this sort of thing easier. So if you hover over an icon, you can pretty much tell what it does just by trial and error or by sort of hovering over the icon, getting explanation of it or its functionality. So things like that which weren't really common in this day and age but are really important to focus on. Also there's Chaos Head Noah which is a visual novel dating simulation game with branching pathways. So the object of the game is basically to get through a bunch of dialogue and there's this really interesting backstory that goes into this. And so in the game there's a mechanic called a delusion trigger. So when you push your right trigger or left trigger on your controller, it will allow you to add certain blurbs in the game that will come up and it will allow you to choose whether you have a good delusion or a bad delusion or if you don't pull the delusion trigger you stay neutral. So I actually played this game the first time completely neutral because I did not know that this delusion trigger functionality even existed. And it was really an essential way to access many parts of the story. There's only one ending that you can get if you do everything completely neutral. Also there's an achievement that you can unlock by using this delusion trigger. So if you click the delusion trigger and it'll show you, oh well you've accomplished this achievement and you can get a trophy for it. But there's really no way to sort of access certain areas of the game without knowing about this functionality offhand. So I guess it would have been really simple like if the first time this situation had sort of come up in the game, if there had been some sort of indicator that you can actually change the outcome or the branching path of the story by doing this thing at a certain point which will lead to the dialogue being different or a different outcome ultimately from what you're doing. So I guess the takeaway from that would be to sort of be really specific about what your key functionality in the game is and make the functionality with its importance like commensurate with how well that you're explaining, like how it's used and if it's important to highlight it in some way. So I guess that is what I would get from that. So now I'm going to talk about dialogue. And basically I won't say that much but I will say to have good dialogue it really needs to serve a purpose. Every line has to have at least one or preferably more purposes to it. So there are a, this is sort of related to game design in the sense that there are too many rooms in like a dungeon that don't really have like some sort of a purpose. If there are then what you tend to do is you end up wandering around more and more and not really accomplishing anything and not really knowing where to go and there's a chance you could get stuck or not say why does this room exist really? So in a similar way this story can kind of lose its pacing and not really accomplish the goal that it's attended to do which is entertain the audience. So it's important that the dialogue advance the story in some way and that by either helping character development or referring to plot points or something, some sort of ultimate purpose in the end. And then another thing that's important is to have subtext. So subtext is really the unspoken meaning behind what's being said. So if you have, like if you've ever read a tweet or like something and maybe sort of heard that there's a message beneath that or that isn't being said and it's kind of there. Like kind of a sentence below the sentence is actual words in a way. And there are layers to this. So there are layers of subtext. So you can go deeper and deeper with the layers of subtext beneath the subtext and things so it can get pretty complicated. But that sort of thing can sort of allude to things rather than just saying it out loud. And also a good dialogue really feels real but it's not ultimately because it's designed to entertain and connect with and get an emotional reaction from the viewer. So that's basically the main purpose of the dialogue and it's really not supposed to be real. Like it's not supposed to be realistic. It's entertainment and it's there to entertain and get a reaction ultimately. So it's good to keep that in mind. Also it's important to have empathy. So the empathy basics I would like to go over is basically the difference between sympathy and empathy. So sympathy is about feeling compassion for another person. Empathy is about actually feeling the same emotions as another person. And using these sort of cues can be taken as performance of a courtesy rather than like something in a game. And it can be seen as an actual carrying action to have a character do something for you in the story or say a thing to you. The way the brain processes that is of an actual courtesy that's being done to you rather than something that a character in a story does, if that makes sense. So I'm going to talk about chatbots later. An example of this would sort of to be a chatbot that can use a user's personality and sort of make that user by learning and studying from them. But first I guess I would like to sort of elaborate on where games are supposed to go from here. Because in terms of graphics we're pretty much there and this is sort of a render of a car. I don't know what type of car this is. I'm not very car savvy. But this is a render of a car in Unreal Engine 4. And it looks pretty much the same as the real deal. So there's lots of progress being made in this mainly with ray tracing and real time rendering which will become more and more prevalent over the next few years as GPU technology gets really more powerful. But that's sort of the way Pixar does. Companies like Pixar render their animation with the real time rendering and ray tracing. So this is going to become more prevalent for use in Engine within the actual gameplay itself rather than just cinematics. But we are pretty much very close to realism and graphics. So there's really not that much room for actual growth because of that in that area. So in a sense in order for gaming to really evolve beyond that it really has to be taken in a different direction. So the directions that I think are very important over the next few years are too. And one of them is chatbots. And that has to do with chatbots and intelligent agents and using AI to build personalities of characters. So a chatbot is basically just a piece of software that conducts a conversation with text or auditory methods. So there's sort of a vocabulary that goes behind this. But the main thing that it does is it tries to interpret the user's intent and it has entities which are basically like adverbs and adjectives to modify those intents. So it collects this data about the user and then it goes through a dialogue flow which is sort of a branching conversation flow that defines the responses to the intents and the entities. So basically it uses these dialogues to accomplish an overall goal and you can switch between these dialogues or trigger these dialogues at any point in time. So one of the main tools for doing that is RASA which is a set of open source tools for developers to build text and voice chat bots. And this is a picture of RASA X which is the user interface. So it's pretty easy to build bots and then train them in this interface. And so the way that they're trained is it uses a natural language understanding paradigm. So it uses that for intent classification and any extraction. And then it uses RASA Core which is the machine learning base contextual decision making part of that which uses things like word vectors for analyzing the intents and SVM and et cetera, et cetera. So there's also another tool available called BotPress which is an open source tool which does pretty much the same thing. It's a word press of chat bots essentially. It has these sort of blurbs that you can create the bots and sort of has defined the relationship between them and create dialogue flows from that. So there are many options out there. And a real world example is Repka which is an AI chat bot that is used for the sole purpose of becoming your friends basically. So what Repka does is it listens to you and it learns more about you and from that it sort of can build a personality and actually mimic you. And people are more actually willing to open up to these chat bots than they are to actual humans. Like they are willing to tell things that they would not tell their friends. And many people want that sort of sense of love and companionship that they really get from having people there to listen to them and people like to be listened to. So this is a very, I think, powerful technology that could come into use. And there is something called Cake Chat which is an emotionally generative dialogue system on which Repka is actually based and which has been open sourced and available on GitHub. So you could theoretically build your own also system like this with this dialogue system or sort of extend that if you would like. So I think that there is really a lot of possibility out there in the future for integrating this technology into games. It's already been integrated into talking avatars and like 3D characters which do use chat bots on the back end. There are frameworks which can communicate over the internet and sort of make these characters like sort of an avatar or like an in-game representation of the actual chat bot itself. And the other thing that I think will allow video games to grow over the next couple of years is extended reality. So there is something called the Open XR Standard and that was recently ratified by the Chronos Group. They're a consortium of sort of companies and non-profit that works with sort of defining standards and standardization. And so this was released and ratified at the previous GDC. They talked about it and it's up to 1.0.1. So it's a provisional standard and the goal is to standardize VR and AR development through means of application device and plugin interface. So you can basically develop on any headset with the same code base and it will run on all of the VR and AR hardware out there. There's a lot of backing to this from the industry and so essentially how it works is there's two parts to it. There's an application interface and a device layer that sort of goes into it. So a lot of the work in version 1.0 has been around the application interface, but there is also a lot to be done between the hardware layer and the device layer. So creating this API will hopefully make programming for individual hardware like Steam or Oculus I think of the past and basically you can get your game out to multiple different platforms. So also there are XR runtimes that have been built around this and there are only two so far. One's by Microsoft with their Windows Mixed Reality platform and the other is Monado and the word Monado doesn't really mean anything like it's just a word. But it's a fully open source XR runtime that runs on Linux and so the entire ecosystem can really collaborate beyond an open standard and on a common code base. They're essentially selling point of that. So it's available to try and test out on your own and this is the sponsor scene from Godot 3 which is running, this was built by Crytek. So there's many ways to sort of develop on this and ways to contribute. There's also open source so there's a way to get involved in the community and sort of help this process along. So that's it and that's all I have and if you have any questions just let me know. Thank you.