hi everyone let's get started there might be a few more people coming in we'll let them let them feel like they're late and they're missing out that's more fun before we get going can you put your mobile phones on silent and at the end can you please remember to fill in your session evaluation forms because it's always nice to hear what people think and that would make me feel very happy so thank you very much for coming right my name is John Ingold and I'm the narrative director of inkle we're a small independent studio from the UK and we made these things we made eightydaze & Sworcery which are games and we also made Inc which is not a game it's a scripting language for interactive fiction but it kind of demonstrates our philosophy in the way that it's built and the way that it's designed it's sort of human focused it's quite wibbly-wobbly it likes to branch a lot it doesn't have an intrinsic structure it's much more ad hoc and those are all things that we like to do
they're all quite strange things to want to do within a programming context and they come from the same root philosophy all of these things have the same root philosophy today I'm going to talk about our new title I'm going to talk about our new system that we've been doing we've overhauled things quite a lot to produce some I think really quite extraordinary results and I hope that it will convince that but it's a good idea to just back up a bit and see how we get there so you can see the process that we've been through apologies to anyone whose company of my previous GDC talks because a little bit of this will be recap but I'll try to get through it smoothly so that I said who we are and I said who I am but I won't say what we do in a philosophical sentence so the best I could come up with was this we make playable stories with high player freedom this is a really carefully chosen rubric by worried about this a lot I didn't ask anyone else on my team if they thought it was appropriate because I didn't want them to tell me that it wasn't and it's obviously composed of two main
bits you'll notice first up that it doesn't have the word game in it anywhere because games are useless word that doesn't mean anything and it does say playable stories and I feel like that's quite honest when we design one of our games product when we design one of our products we start with the story we start with the character what we want the player to do and feel and then we try to design the minimum number of mechanics possible to generate that sensation so sorcery is a fantasy adventure you have a sword you have a spell book you go around clobbering monsters there are some potions we try to keep it as light touch as possible there isn't any crafting because no one actually does that when they're on a fantasy adventure it would be ridiculous until breadth of world came along and did that rather well actually similarly in 80 days is a playable story it's about traveling so you travel you pack your suitcases you talk to people that's basically it the second thing is high player freedom and again that's a slightly surprising phrase to use I
haven't said high player agency and that's quite deliberate to me agency suggests that players can strategize to achieve a particular outcome and in our games that's very rarely true we worked with in highly contextual environments where what happens one moment might not be available in the next moment so strategy can be quite difficult all I'm saying is our games are inherently very unfair and I'm good with that but what we do try to offer is we try to offer a sense of freedom that in any given moment in this story you can behave in the sort of way you might want to behave given the limitations of the interface or whatever so you shouldn't feel that you're stuck on a track you shouldn't feel that you're pressing the only button that the author gave you to press you shouldn't feel that you're just tapping through options that's high player freedom but I wouldn't go so far as to say that it was agency nonetheless even though we don't necessarily allow the player to strategize and achieve a particular outcome we still have a problem to solve here because we have an
oxymoron between those two things a story is inherently unfree and freedom is inherently pretty dull for storytelling actually if people can do anything they tend to just muck about so how do we deal with that well okay we have two simplifications the first one we tend to use an episodic structure so almost all of our games are structured like 1980s Star Trek series is you go to somewhere you do something any amount of complicated stuff can happen but by the end of the episode you be pretty confident the Picard wife is going to turn out to be a hologram of a thousand-year-old dead woman or an evil robot or some other kind of mental illness that he's got from a clonk on the head by the end of the episode very little is carried into the next episode because that's the most convenient way to write it and that's what we do in sorcery and that's what we do in 80 days we used to say what happens in Vegas stays in Vegas and that's basically true of the construction of 80 days there's nothing wrong with that that's fine Assassin's Creed does exactly the same thing it will say you can take out this fortress via a stealth or via brute force it's always brute force because
they're stealth is so terribly balanced that it doesn't work at all but by the end of that encounter when you go to the next one it doesn't matter what you did in the last one episodic structure the other thing that we do is the thing I suppose in a way we're most famous for perhaps is we use a content heavy approach to branching we use a scale first approach so when we do branch because of course we do branch we do give you some agency and some influence over the outcome of your adventures we just write more we just make me and we can do that because we're delivering everything through text historically and it's very easy well it's relatively easy to produce lots of text so all of that is where we are and what we've done which brings me to our next project or new project which is this thing it's called heavens vault it's a archaeological narrative adventure you play as this lady alia allows Rahul's in open-world nebula and discovers lost ruined sites and ancient inscriptions in an entire ancient language which we've invented for the game which is absolutely not what this
talk is about and from a narrative design point of view heavens vault had two core elements that we started with this isn't even retrofitted this is actually true Joe and I sat down and said what do we want to achieve with this project since we've done what we wanted to achieve with linear prose fiction and that the two things were firstly to take the episodic structure and turn it into a single continuous plot fine okay we wanted everything that the player does to further some core narrative that doesn't mean we're not using episodes I'll talk about our exact structure later in the talk but the idea is instead every episode should further the core narrative of the game in some meaningful consistent and solid way we're trying to not have too much in the way of stand-alone encounters but rather encounters that make sense within the narrative if you like it's Star Trek discovery rather than Star Trek The Next Generation only without the torture porn Klingon sex the second thing that we do is we wanted to move away from purely text-based delivery to a 3d game world to explore
quite why we wanted to do that I look back on and I'm not really sure it's a terrible financial decision it's been a it's extended the length of the project it's usually hopefully people will think it is pretty which is quite a good reason to do something it does mean though we have necessarily a limited number of locations we have a limited size of cast so we can't use a scale first approach to simply make that problem of branching content go away we have to reuse stuff we have to be a bit different in our redundancy so one thing I like about this game is I like the title I like the title a lot it took us a long time to come up with the title and one of the reasons I like it is we had our two crutches we have thrown them both away simultaneously in a leap of faith a heavens vault if you will to create this new game and in order to do that we've had to expand our sort of core philosophy a little bit as well to produce what I think is the best description of it I have so far which is this we are now a company making a narrative adventure game type thing with high player freedom so that's the goal
that's what I'm in tempting to present to you is our system for producing a narrative adventure game type thing with high player freedom now if you were to walk into a design meeting with that rubric of course everyone would say that I can see an immediate question which is your what after all what is freedom exactly what does it mean how do we offer it to a player what are we what are we actually talking about this is really interesting this is a really interesting question what do we mean when we say player freedom and we say player agency we're pretty good at analyzing that we can say well you know can you formulate a strategy can you execute a plan those are the sort of questions but what's the right question for this freedom concept that I'm sort of loosely defining well I think the right question to be asking is is actually what question is the player asking themselves that's the question we should be asking what's the player thinking so here is my here is my freedom access it's my beautiful graph of a freedom axis and at the very bottom of the freedom axis and I want to stress this
is not pejorative but the least free games the most tightly linear games the player is asking what am I supposed to do now what am I meant to do next and we've all played games like that Monkey Island is like that uncharted is like that Shadow of the Colossus is like that Here I am in a situation what's the thing I'm supposed to do what have I not seen yet that I'm supposed to see now we have to be a bit honest with ourselves here I don't think the designers Naughty Dog were really hoping that when you play Uncharted you're thinking what am I meant to do now I think that's not what they were going for but it is definitely true that we are thinking that and a lot of the best level design moments in uncharted 4 are jokes specifically about the fact that they know people are thinking like this you walk into a room you can't see any way forward you think what am I supposed to do now you turn around and the exit is behind you that's a gag set up by a level designer because they know that you're thinking this question because it's a tightly linear game so if we open it out a little bit more the next question is
what can I do and obviously there are games that fit that mold in Assassin's Creed I ask myself what can I do now well I could go over here I could approach this stealthily and get that wrong I could attack this guy whatever The Witcher RPGs in general eighty days in sorcery of course sit at the top of this class the very Paragon of the example of the broader game and I'm sure you'll agree all of that but what's above that what's even freer than the question what can I do well the one that we're aiming for the one that we love the one that we should be targeting if we are narrative designers is likes what have I done that's that's the perfect state that's the sweet spot that we actually want to achieve it's very rare for a game to achieve this consistently the whole way through and that's okay it's a target but I felt that quite often playing horizon zero dawn I would often go to a dinosaur lay a complex system of traps they would all go hideously wrong the robots would plow straight through them and I'd be attacked by some great thing thing I wasn't qualified to deal with and I
would think yikes what have I done and that was great that was a genuine sense that I had freedom and with freedom comes great responsibilty great ability to mess things up right when we're free to do things we get we're free to get stuff wrong obviously dishonored plays with this and thief is kind of the air example a level of thief always starts off with taking one minor decision that escalates into a farce of hiding guards in cupboards and running away it's never been bettered I think a couple of other comments obviously the ordering of the game in this list could be debated but why would you bother it's not a classification not all games fit into this in a minute any meaningful way if you're playing minesweeper you're thinking why am i playing this if you're playing fortnight you're thinking what's going on you know neither of those games are charting here but yes I what I want to think about is is yikes what have I done and the examples that I gave up all systemized mechanics they were all
systems based games but I'm not saying that we need to make a systems based game and I'm not saying that I had any interest in making a systems based game I really don't they're quite repetitive and boring actually they yeah okay I'm a firm believer as I hope I've expressed if you've seen any more previous talks that it's fine to change the players options in a contextual way all the time that's not a problem so long as the options that you provide make sense the reason systematic games are great is the player has a real confidence that they know what they'll be able to do in five minutes time they can plan you can't plan if the choices are being changed up underneath you from turn-to-turn to turn as they are in a chooser and adventure as they are in 80 days but if you trust the author to provide you with the kind of options that you want then that problem goes away largely actually so our goal is to create choices with good affordances that people can just about predict and that appear to be fair and on the flip
side we make sure that our world is utterly unfair and exciting and interesting to keep you busy and occupied so how do we actually go about doing that what are we what are we aiming to do how do we do this especially in the context of a narrative adventure game type thingy well I have three you know rule of three I have three things three ideas firstly decisions should always at least a here to change the game state because if they don't then the gate the choice you made didn't really happen if you want people to be thinking likes what have I done then they have to feel like they've done something so if they for example ask a question of an NPC and then have the option to ask the same question again that first asking never really happened so people would say oh I didn't do that that didn't really occur so you can't do that we have to make sure that if you ask someone something then you don't get to ask it again similarly when I ask someone something and I come back to a dialogue hub I don't want to see the same two exact questions that I saw a
moment ago because then it feels like nothing has changed in the game state even if you superficially do nothing but change the text of the options a little bit to reflect the conversation has moved on a touch that's fine but I want to feel like time is always moving because that way I can feel like what I'm doing may or may not be the thing that caused me to be in the situation I'm in right now I don't want to see the system saying your input has been discarded cool I like to take that further with our games generally if you're rude to characters they'll get grumpy and they will eventually wander off things like that that sort of stuff is much better arguably that is a change to the game state but it might be quite a subtle one secondly there should always be a way forward and no getting stuck I don't mean that it's ever okay or that anyone thinks it's okay for a game to let you get to a point where you cannot possibly continue I don't mean that kind of stuff Ness I mean rather that I don't ever want the player to experience the sensation that they know they're supposed to get through this door but they don't know how to do it
because obviously as soon as that happens happens in adventure games all the time they're not thinking like what have I done they're thinking what am I supposed to do next and players will drop back to that because it's the lowest energy state for them if you give them the opportunity to decide that it's your fault not their fault that they can't get through this door then they will take that opportunity very gratefully and then they will tell you that your game sucks and that is your problem thirdly there should be no empty spaces there should be no dead air I don't think it should be possible to explore a game an area in an area of game with nothing in it that you can do this happens in adventure games all the time when you're backtracking because you're worried that you missed something but actually you're going through an environment which you've completely cased and there's nothing left in it the problem is when I do that time stopped moving as a player I don't think I could I what have I done because I haven't done anything I just wander around an empty room that same is true if that empty room has a couple of characters in it who are sitting there waiting for me to talk to them but
otherwise doing nothing so this seems like quite an odd list this is not um this is a curious design shopping list that doesn't appear to have very much to do with player freedom but I argue that these things are absolutely important to creating this sense of being in the moment which is the thing that we want and also they are things which pretty much every single adventure game ever made has failed all three of them all the time okay so have any of them done well at all is there anything nice we can say about games that have existed in the past yes I have a couple of games that I think are brilliant and would do this really well anyone who ever heard me talk about games before ever apologies this is gonna be really the most boring and predictable two slides you've ever seen the first game is the last Express from 1997 I think I've put a photo of the last Express in every talk I've ever done ever it is the greatest game ever made if you haven't played it it's um well if you haven't played it you're a bloody fool it's a real time always moving forwards train game in which the
clock never stops the characters move around on their own schedules they ignore you if you don't do anything with them it's extremely easy to miss opportunities in it but it is also extremely good at setting up opportunities for you to cleverly use that system and find things to do it but it's not a systematic game rather it's a game that offers lots of interesting changes of context throughout its narrative it's also the best piece of writing that any video game has ever produced and it's never been even approached let alone bettered but it's farty tight it doesn't know how to handle this freedom it has lots of fail states where there's nothing you can do but replay and start the section again and quite often the correct way through one of its fail states is utterly cryptic and hidden it doesn't know how to solve that problem and that's a very hard problem but it's a very valid problem is and it is a fantastic piece of work the second game is the that I want to mention is the Blade Runner adventure game which is famous because it randomized who was a replicant and who
wasn't every time you started but that's really the least interesting thing about it because you only play it once rights as an adventure game so who cares you're never gonna know what it actually is though is a really good example of a detective game you go to a location when it is narratively meaningful you don't get to go there unless it's narratively meaningful your player always has a good reason to be there they case it looking for evidence or to discover whatever it is they want to find when they found everything it's clearly telegraphed that maybe now you should go and once you go there's never any reason to go back it's very good at removing dead air from the game actually you can go back but I have no idea why because there's never any reason to do that meanwhile as you find people and suspects well they might be replicant and they might not be you might let them go you might shoot them you might arrest them and it copes with that dynamic story state it doesn't give you a lot of opportunity to branch the narrative but when it does it tries to compensate for it and make sure there's always something for you to do next it does a really good job of stopping you
from getting stuck by presenting instead with here are some interesting options and we will handle them but it's far too broad it's far too ambitious it randomizes bizarre things it doesn't need to it produces it's got the weirdest dialogue system in the entire world in that it has choices but it chooses the choice for you automatically based on a setting in the menu which says what kind of cop do you want to be so like I mean you don't find that setting until you've fiddled around with it for a while but you can be like the jokey cop or the moody cop or the director's cut cop who says whatever line they thought was best but it was possible to get stuck because the game chooses the wrong dialogue option for you which is just it's bizarre anyway it's far too ambitious it wasn't properly tested most playthroughs dry up there's just nothing more to do anymore and those of you who've played it which is probably not all that many anymore because it's quite hard to play now the event on their left is the point at which you can branch the narrative into being a replicant sympathizer which opens up an entire raft of endings but only if you perform what can only be
described as and in this all QuickTime event which is one of the worst pieces of design I've ever seen but it is a very robust example of how to use your map as part of your narrative progression so what are we gonna do with all this how are we going to go about this well I'm a great believer in games starting with human beings and starting with tools as I said in our scripting language is a philosophical statement and it's statement is that the people writing your game should be able to get on and do that without worrying about computers too much so I want to start our process with working out how we're going to author interactivity in a way that supports freedom so our previous games eightydaze sorcery are basically branching trees they're quite complicated self-referential branching trees they self-reference each other a lot to make sure that they're dynamic and responsive but fundamentally they start here they wiggle around and they get to an end and they stop there's only so much you can do with that and it's
not great when your arranged in a 3d world because you might bounce from prop to prop you might want to engage with this and then engage with that and then come back to here and then go over there that doesn't look or feel like a branching tree in the slightest so what do we do instead well we took an approach that we prototyped a little bit during the sorcery games of a system which offers content on the fly if it's appropriate we've made all of our content atomic by which I mean every action including dialogue is a little blob of content it sits on its own somewhere in the code every blob is gated by preconditions a precondition is just a piece of logic that says this is what you need for this bit of content to be appropriate to be meaningful right now and all these of course the preconditions must be satisfied for the content to be allowed to be surfaced by the game this design is drawn from inform 7 I think it was the rule-based design news there which was the work of Bram Nelson Emily Short Andrew Plotkin possibly others but I've never seen it
used in an adventure game to my knowledge anyway so we do all of this in ink ink looks roughly like this this is a shot from our demo so there's a couple of options on this shrine thing there are three blobs of content in the content bucket of the game those preconditions are the little things in curly braces the top two all of those preconditions are being satisfied so there's options are surfaced and you can see them attached to the pillar the bottom one is not being surfaced something in that must not be true in this case it's I've recently been zapped by this thing and so the condition not recently zapped by shrine fail so it doesn't allow it to surface and that's how what I mean by atomic content this is Anna branching tree it's just a set of things that might happen these are brilliant they're really really really powerful because you can just keep loading stuff onto them so the types of preconditions that we use are just catalog them very quickly the world state obviously where are you what can you see what can you touch what have you got what's open what's closed all the normal kind of
things so we do some state tracking we use trigger volumes we use ray cast whatever the knowledge state I talked about this quite a length that last year's GDC so I won't recap the system that we use but we track everything that the player knows and everything that they need to know and what leads they're following using chains of knowledge heavens vault has about I to know 1500 knowledge dates or something we're constantly tracking that we also more interestingly check what just happened both in the world and in the knowledge state so you can say things like have you recently learned a fact about this have you recently discovered that have you recently discovered this but you haven't yet discovered that in which case might be good idea to do this and we do that at the Inc level using the turns since query so I said preconditions are great I said atomic content is great you're probably all just going I don't really even see what why that would be the case so let me try and outline the benefit and it's all human I can authorize stuff in a really responsive way if I want to
add an action to the game or I want to add a line of dialogue to the game I want to give the protagonist the ability to ask a particular question I simply write that question down and I say when is this question appropriate well to ask this question I need to know she needs to know this fact so okay test one do you know that fact this question becomes redundant if she no already knows the answer so second quote second precondition do you not know already know the answer great bung not in wait no this question doesn't make sense if I'm in the dark because in the dark I don't want to ask questions about some random fact in the story so if you're in the dark that's a fail state and so on and so forth you just bung in all the preconditions what and under every other circumstance where all of these things are met fine this thing might be what the game does you chuck it in a bucket there are 60 things in the bucket the game will pick something and it will always make sense and if it doesn't make sense well that's fine you just put another precondition on it or you prioritize it and the game will give you something sensible in something dynamic and something that moves things
forward what I'm trying to say is that nonlinear flows arise naturally from the system you don't have to author them you don't need a branching tree to ensure that your game is nonlinear it can't be linear it's effectively a deck of cards that you've shuffled and you're dealing them out except the cards are only ever cards which are relevant it's a bit like the authoring structure that Lee Alexander outlined for reigns right that's an ax Tom atomized set of content with preconditions that say when a card is allowed to be released or not it's exactly the same idea only ours is very very flexible in terms of what that content can be because it can be anything literally any action in the entire game so obviously there are issues well the biggest issue I hope is probably what you think it is if you've been sort of following the idea of what this is that it's incredibly annoying to write it's incredibly repetitive am I really saying that on every single option in the entire game there are
20,000 lines of dialogue in this game already I have to say are you in the dark don't say this in your in the dark have you just stubbed your toe don't say this if you've stopped your toe are you having an argument with six don't be nice to him on every single line of dialogue do I really have to list every single way that this would be an inappropriate thing to say and the answer is sort of yes I kind of do because otherwise the game is going to say something stupid because it's only a game it doesn't know but this is a problem we can tackle and it's not even a difficult problem to tackle the solution is exactly what a software engineer would tell you the solution was we use authoring patterns in particular we use scopes so all of our content is scoped so we write in buckets we have four buckets we have the moment bucket this is a thing that's happening right now I am talking to you people right now so everything that I say to you right now will be about the topic that I'm talking about hopefully and I won't do some weird Freudian thing but I'm not gonna start telling you about what I had for lunch because right now I am just looking at the options
that are available to me in this moment so great for an argument it's great for a set-piece it's great for a conversation fine that's just normal branching trees they're little but they still exist if I am NOT in a moment context then I'm in a room we use rooms as our sort of base level interaction so in a room there are various things I could do if I was to come down from the podium I could sit on a chair I could go to the door I could take the microphone whatever I could do things with in this room so when I want to author content for this room I put it in the room bucket I put it in the hall bucket and there we go fill it up if I have an idea for something I might do out in the hall well I find that bucket the room of the hall and I put it in there instead so that scopes it geographically for me and we have some markup to help unity know what prop is this attached to can you see it can you touch it that kind of thing that includes dialogue most importantly that includes dialogue there are things I might want to say because I'm in this room but I don't want to say if I'm on the street outside so that allows ell our protagonist to remove conversation options and gain
conversation options based on where she happens to be standing in the world fine if there is nothing in the room that she wants to talk about then we drop back to episode level content so we have another bucket this is across a series of rooms that are relevant so I'm my echis ode at the moment is being in San Francisco and being a little bit jet-lagged but mostly okay and my dialogue is all about being in San Francisco and I can say these lines of dialogue like gosh is in San Francisco a lovely city or gosh you really do have a poverty problem guys you want to sort that out and I can say that anywhere in San Francisco and it's relevant and it's appropriate and it's apropos so long as there's not something I should be saying in the room context like where's the coffee and so long as I'm not in the middle of a moment of delivering a lecture to you guys about something else completely fine okay beyond that is the game scope all the other things that she might say all the things that could be relevant at any given time at all these are the things where she can synthesize information she can reflect on information from multiple places in
the game she can draw things together she can bridge one episode to another episode and that basically sits at the bottom of the hierarchy because it's the one that can come up anytime so the content is shadowed each scope shadowing the next and this is brilliant right this is really brilliant because it partly removes huge amount of the preconditions because the scope just says this is the scope so it's fine it has a prioritization system but for me as a human being it's very easy for me to decide where to put my content if I'm writing a dialogue about the history of robots in the universe that's games go fine if I'm writing a line of dialogue about the planet I'm on that's episode scope if I'm writing the diner's dialogue about whether this door is gonna be opening all that room scope this is trivial it takes no time at all to work out where you're going to put your bit of content you just bung it straight in and move forward to get all the benefits of additive or to atomize content without having to worry too much about structure well in fact without having to worry at
all about structure and that's the other big problem when you atomized all your content you don't have a way of enforcing structure by which I mean long term plot to say at the beginning of the game people should be very sort of kind to each other and by the end of the game they should say big dramatic exciting things because most of your content doesn't know when it's happening unless you've worked a precondition to tell it when it's happened it can get very messy so the one thing that we needed to add to this system this all worked it's fine it's running was something to enforce long term narrative structure because we do want that so I said earlier that the system is a little bit like the system in rains if you think about the way rains works you die and then you loop back and that's its long term narrative structure it's built in these little loops we basically do the same thing except without dying and resetting you but instead moving you forward and that's why we use episodes so is everybody still alive good let's do something even harder this
is the structure of heavens roll right it is an open world of locations some of them are revisit able some of them you can only visit once because once you visited there's nothing more there to find the player chooses a location to visit to continue the story they look at the map and say what's available I'll go to that one it's nearby it looks interesting whatever fine when they reach a location they initiate an episode of content they land on it and they're sort of locked into that episode until they they're done with it they play through it that gives them a nice well-defined I've started off I know why I'm here I know what I have to do or what I maybe have to do and then I know when I'm going to end it and then I can move on like I kind of think of it as Shadow of the Colossus if you could discover where the colossi were in any order and visit them in any order and then you pick which one you want to do when you want to do it and you go and do it and once you're doing it you're doing it done it's done yeah and crucially locations can only be landed on they can only be chosen if you've got a reason to go there so we don't have any dead air we don't have any wandering around randomly this is not an open-world in
the classic sense when I was wandering around the world of LA noire I hadn't know why I was walking around the world of le noir because there was absolutely nothing to do in any of it at all so I don't know why they built it and I still don't know why they built it well we're not doing that because actually and we're also only eight people when you learned on an episode the episode flow works like this well the episode is unlocked by previous events it begins the player explores they wandered around they trigger all this atomized content based on the preconditions of the room or the state or the what they know or what they don't know that all just surface is up from the content bucket I'm not actually in control of that really as an author I'm not in control of the author the order in which it appears unless I specifically tell a piece of content that it has to follow another piece of content quite often what we're doing with the dialogue is we're saying this remark is relevant if you've just spoken about this comp this topic so if you say it you don't make the reply you wander off this reply dies and it never comes back that happens all the time and so conversations came quite
naturally feed off one way something else can get forgotten about the player can pursue interests that other things go somewhere along the line they reach a minimum exit condition that's a condition which allows the protagonist to say reasonably I want to leave now that's always narrative it has to be it's not there's no point in it otherwise it has to be I think I've seen enough or I don't think I can open that door or I don't know why I'm here in the first place or I've completely cased the joint let's get out of here all of those would satisfy your minimum exit condition you've landed on the moon you've wandered around a bit you go if you don't go you keep exploring for a while until you reach the maximum exit condition the maximum exit condition is the one that we don't want anyone ever to see it's the point where the robot trundles up to you and says seriously you have picked up everything you have opened every cupboard you have looked at everything we've got nothing please leave get out is the one where we start turning the lights off it's the one where literally we start not letting you walk through open doors anymore and putting invisible collision in the way
it's the thing where we just hustle you towards the exits like they do if you stay late in Disneyland and like all these guys who are previously friendly and dressed as Winnie the Pooh suddenly become these menacing fortnight's style bears that are slowly easing you towards the exit and if you slip past one age ten they come for you so we do that to our players and in the meantime remember there's still the game scope right the game coat still exists so in the background of this episode if there's ever a pause fine they'll talk about what happened in the last episode they'll talk about how this episode of that episode Connect they'll talk about how six is a really annoying robot six will say why am I called six anyway all of these background things can filter in when there's a gap so we've always got something to talk about so we're always moving forward so there's no dead air in our game that's never been possible for us before in 80 days we couldn't have passed by - and fog idly chat about something in the middle of another adventure because it was an authored tree we sort of hacked it so that
towards the end of a story in 80 days was the end of your journey they would start to say it's day 75 let's get a move on but that was totally fudged in it was just a bit of trees shoved on the end of every other bit of tree and it's probably got some really awkward segues it doesn't have this free-form structure that arises naturally from the fact that you're wandering around a world trying to fill space it is a completely different structure despite I think having a similar philosophy so we have episodes they let us structure the content and get some sense of progression so the question that remains is how do you unlock a new episode and I called this talk creating a dynamic detective story and I haven't mentioned detectives once I think so anyone here in your district hats will be very disappointed so here's a detective II word to make you feel better episodes are unlocked by following leads we borrowed the structure from Raymond Chandler basically in a Raymond Chandler
story Philip Marlowe goes to the dead man's apartment and finds a laundry ticket in the dead man's coat which takes him to the laundromat where he meets the woman who takes him to the jazz club where he gets hit on the head and he wakes up on the boat where he meets the mysterious doctor so he goes to mysterious doctors and so on and so forth every location he goes to is unlocked by her lead he finds in the previous location perhaps a big one perhaps a small one we do the same thing again which is to say every episode in the game is unlocked by three conditions again just as we use for the atoms of the story the larger atoms the episodes of the story are also preconditioned so when we're in the open world and we're trying to say what are we going to do next what's our next episode going to be it might look like this it's a pocket of content the red ones the preconditions have failed for some reason the gray ones well actually just the preconditions have failed but they're probably ones where the precondition was only do this once so the tutorial will have a condition that says have you done the tutorial don't do the tutorial again and that's fine the green ones are ones where I have passed my precondition I
have a reason to go there there's a farming village where I have a contact I haven't spoken to him in a while so I could check in now active reason precondition valid I can choose that option I won't I've got an old sword I can trace its location great that gives me a reason to launch that episode I saw a mention of something in a document I can follow it up that gives me a choice and a reason to enter that episode so this is kind of interesting because this basically means every location in the game every episode in the game has a set of reasons why it's allowed to be played and it just sort of sits there and waits until those reasons are met and then it says okay you can play me now if you want to this allows us to have a completely non linear flow through the story you might do the farming village you might do the empire barracks you might do the empire barracks as level three or you might do it as level 10 is the author have no control over that and they say explicitly put in a precondition about it what that means is
that we can build 15 locations but generate an entirely nonlinear flow through those locations so we solve our redundancy problem we've always got something new to give you even though we can't actually build a new level cool that's very nice that's terribly clever great does that work well I think it does yeah it seems to be working there is a problem so what do you want to stress so far I started with this idea of player freedom and I tried to solve the problem of doing that in a 3d world so I atomized all my content but then I had to solve the problem of structure so then we made episodes but then I had to solve the problem of how to unlock episode so I put preconditions on that and now I have to solve another problem so at this point I really want to just make a game but we're really close but we've got one last thing and I think this is the only bit of this which is I think original and I think quite clever and that's the problem that arises in all detective games and I don't mean deduction mechanics even though they are almost always appalling but it's this that if you have a detective moving
around some players are that Detective and other players of that detective and both of them have a terrible experience now when I played Eleanor I think I think I was I don't know I wasn't even either of these when I played le noir it was the I was like a Roomba I just went around the corner of the room collecting everything until I stopped which is neither really I don't think I engage my brain at any point which was a shame but what we really want to do for our narrative adventure experience game type thing isn't sure that everybody discovers just enough we want them to just have enough Raymond Chandler writes that you go to the dead man's apartment you get the laundry ticket from his coat you go to the laundromat you don't go to the dead man's apartment pick up seven pieces of laundry get his laundry in a bag for him get his detergent they go to the laundromat then meet the entire jazz band in the laundromat and go with all of them to the jazz club that's not how he plays it he's a bit more skilled than that and hopefully we can be too but how do we do that because
if we've written all this atomize content well if you find it you find it and if you don't find it you don't find it so how on earth can we manage what you found when we've made a big bucket of atomized bits of content we've got no way in so what do we do and like I say I think this is clever Oh we'll see we make our evidence chains highly procedural so when the player finds something is the author have no idea what it is you're going to find I say this is a good place to find something inside the guy's coat that's a good place to find something and the evidence that's actually found is generated on demand at that moment and strictly for purpose we do that by triangulating things we say what makes sense here what kind of things can I have in a dead man's coat well I can have a laundry chit I can have a matchbook from a jazz club I can have a ticket for the boat those are all locations in my world I probably can't have a kalashnikov when I
said I have a tiger skin rug so don't generate those things I say what does the story need well right now we want the player to go to this laundromat you should see how they smell their shoes look dirty let's get them there and ice what does the game need what would be interesting we keep finding laundromat tickets stop finding laundromat tickets find something that isn't a laundromat ticket okay we triangulate those three and we say aha oh wait of mix my metaphors and back in archaeology now I've found an ancient ring with the seal of an unknown King that was dropped here and that's what our protagonist will say it's appropriate because it's a small object and I found it in a place where small objects can be found it's what the story needs I want them my player to go to this palace so I want to give them an artifact from that palace so they can have a narrative reason to go there and it's interesting because it's an ancient ring with the seal of an unknown king who doesn't like an ancient ring with the seal of an unknown king everybody wants one of those so we glue
the narrative together using procedural elements if you're poor oh and you find all the clues at some point the procedural system would say I've got nothing for you and no character will lean down turn over a rock and say there's something here oh no no no there's nothing and she'll carry on which is fine because that player has already got everything they need and they need to stop farming the location and get out of the level that's okay we haven't even lost them so we've got a ton of benefit there's no need to scour the location I as the adventure game player in LA noire do not need to rumba the room because I will find the content I need by looking in the places that are interesting I'll check the cupboard I'll check under the bed I'll check the wardrobe I found a couple of things I've got a lead I'm good I don't need to worry that there might have been something in the toilet whereas when I'm playing le noir I have to worry about that I have to go and check it and then having checked it I have to check that I really did check it and that's the standard experience of adventure games if you walk into an area you case it you case it again and then
when you're stuck you go on no and you case it again and then variably you missed something well you don't need to do that here we the adage is always that things are in the last place you look well they are with us where we put them we can control the unlock curve of the entire game we couldn't do that before that was the problem atomized content meant that we had no way of controlling the unlock curve of the game but now I've moved it up into code the procedural evidence generator is the thing that decides what locations shall i unlock when how quickly and I can tweet that as much as I like and I affect the entire game by tweaking my generation code and I affect all of the games regardless of the order that you're playing the game in remember this isn't inherently nonlinear flow but I've got one point of entry to control the unlock curve of all possible games without reducing any player freedom without restricting anyone in any way I think that's really clever I think that's really useful and I think it's
gonna make heavens vault flow nicely but we won't find out that for another year released best of all writers do not need to be responsible for balancing the information because writers should not be allowed to be responsible for balancing information because right is a cavalier and they don't understand things I am also a writer they can put in real leads if you want to meet the jazz singer in the laundromat that's fine write her in let her talk about the jazz club handle the fact that the player might already have been there handle the fact that the player might not know what a jazz is deal with those possibilities that's your job the procedural system would say oh they've got a lead to the jazz club so we don't need to give them as much evidence for that maybe a single match but with the name will be enough and they can connect it themselves fine there's no redundant information as I said poro eventually runs our stuff you don't have players saying I've come to the Jazz Club because I found 15 clues to come here I know I need to go to the Jazz Club I'll go to the Jazz Club I'm really sorry I haven't been to the Jazz Club yet that's good that's great we don't have unnecessary clues you have just
enough evidence and better players are still rewarded if you follow more interesting leads you can get more authored content you can get more interesting evidence and not the procedural stuff and that's obviously better because it's gonna be hand authored so that's fine too finally we can also feed the procedurally generated clues directly back into the narrative because we have a precondition based system right that's a lot of long words what do I mean I mean if you find the ring of an ancient King you can take it to a shop that buys rings and sell it you can sell it for a piece of genuine specific content full information in the story if you find a knife you can use it to cut things if you find a book you can open it and you can read something in from inside it so we can take procedurally generated items and give them narrative detail that narrative detail may or may not ever surface because the procedural generation may or may not ever generate the correct artifact but I don't care because I've got a big content bucket and I just Chuck stuff in if I have a joke which only applies to knives made of crystal I'll write it and say if you've got a
crystal knife there's a joke if you don't never might and I can do that and I can keep doing that right up until release without breaking the unlock curve without breaking anything in the system I can just keep throwing stuff in in fact the only problem we really have is the frame rate of the story processing but that's not my problem that's Joe's so overall the game loop for our narrative adventure game thinking with high player freedom looks like this you select an episode you go into the episode you do the episode content you collect procedural leads as and when you need to you you go into the open world there are available episodes and for players who have completely failed to get anything from any of the episodes you can get a procedural lead inside the open world via some kind of grindy pickup so if you're really useless at story games or you really don't want to find anything or do anything then I have no idea why you're still playing our game but you're grinding your way around the open world collecting procedural leads which seem to be fine for people in The Witcher and horizon zero dawn and all those other games that make you pick up infinite numbers of flowers for no reason whatever so if it works for them it will
work for us right and our the narrative - I don't know somehow I think those people won't enjoy it but whatever and that's our structure that is our game loop I'm really sorry to subject you to that right and that's the architectural structure of heavens well that's how we're doing what we're doing at this point we've built one demo level we've been showing it's press this week it works playing that level 20 30 times every single playthrough we saw content arise that none of us had seen before mostly minor stuff mostly remarks about something in the environment one Italian journalist I had a huge argument with his robot and generated a long procedural slanging match that none of us had seen we wrote it about two and a half years ago but it's surfaced because one person was sufficiently horrible to their robot don't be that guy equally today we had two journalists he
was very nice to their robot and had some little cuddly feely conversations with their robot which I also hadn't seen because I'm a middle-of-the-road kind of player that doesn't happen in 80 days we joke that there is content in 80 days that no one has ever seen that we haven't seen but it's not really very true whereas this is somewhat more true it doesn't mean we'll have more typos though and to put that more seriously it does mean we have a massive problem with stability right stability is now a serious issue we're in the same territory as the Blade Runner game and the last express game and both of those games the big failure was apart from being both commercial flops which scares the living lights out at me was that ball of them went really badly wrong if left in the hands of a player who didn't understand the system content chains are fragile inherently you can get dead ends where the flow just stops and there's nothing left for anyone to do and Chandler's hero is wandering around the dirty streets of LA going everyone seems okay I don't have a job I don't know what to do you can have
more subtle things the system might offer the player far too many options I might be in a dialogue with 20 things I can say and I don't want 20 things I can say okay baby we handle that on the UI side but maybe we have a real problem to solve as well episodes themselves can get stuck in loops they can repeat themselves they can otherwise embarrass themselves they can get you stuck in cupboards whatever all the normal kind of game logic problems are still there but in a nonlinear environment they're much harder to spot and of course procedural Clues can be total rubbish because procedural generation likes to throw up total rubbish this was one I had just before while I was writing the talk a chipped antlered jug shaped like a rabbit I dunno what the rules are that generated this but I have no idea what I was thinking when I allowed this thing to be produced I struggle even to picture what this object is supposed to be but there we go I think I literally put in a rule that said if it says shaped like a rabbit don't say that that's not a thing maybe one should ever say way even there's a rabbit shape I
don't know so what did we do well we we did this we build a spreadsheet version of the game out of an old prototype so this is big thank you to Janna Clos see who did the JavaScript port of the ink engine one of the few benefits that we've seen of open sourcing ink is this chap built a JavaScript version which allows me to do this kind of thing massive kudos to him this plays the game automatically right it has the actual ink script and almost all of our game logic is in that ink script precisely to make this easier it bashes through it at random it runs that script and then when it gets back to the game layer the open-world layer it simulates it in that crappy orange box there and those little yellow ones are ones that you might have a reason to go to the black square one is one that you need more evidence to go to and the gray ones are the ones you can't go to but you have been to sort of thing so we just run it we just say right run this for 10 locations and show me the game state run this fifteen gang locations run this 425 run this to the end of the game just run it
and see where you get to and most of the times you do that it'll crash at some point it'll say I'm halfway through the Emperor's library and I went up the stairs and down the stairs and up the stairs and down the stairs and then I dropped the key and then went upstairs and now I can't get down the stairs I've run out of content which is fantastic that would have taken me 16 hours a play generate if I had generator or any betta tester so I fix it recompile run the simulation again that's not enough but if I do that all the time every night for a year I will capture the majority of dead ends loose ends and essentially fun time errors what we're doing is we're turning the entire game flow and inherently unstable content chain into one large computer program we can just self on its own so that's really good it also spits out the transcript which you can just read and that's good for redrafting and I can spot typos I just flicked through it and go that's not a very good line of dialogue there that's not a very good segue I wonder if there's a joke to follow up that line I can go and check and I can see content change that I don't otherwise see
because when we play the game we tend to play it a bit the same way every time because that's the thing that people do it also spits out all the translations that are generated so we can test the translation on Locke flow as well with the the language mechanic so yay automated testing everybody's been telling us we should have done this for years but we never got around to it we didn't do it for 80 days I can't think why because it would have sold so many problems but it's actually not that bad it's fine we have this little JavaScript prototype we just run it sometimes it's good for redrafting is good for checking continuity it's allowed us to push the complexity of the logic we use because I'm more confident that we can test it I'm less terrified that I've done something really trivially stupid which is great I can have my robot go off on its own and come back a lot which is the sort of thing that often has edge cases well this is great at finding them and it lets us do our game wide balancing remember I said that the procedural system gave you a single unlock curve well this is where I wrote the unlock
curve in JavaScript running an automated process you tweak it you tweak it you tweak it you port it into unity I've never seen that unlocker of work in unity because you haven't built enough of the game yet but I'm 96% confident it will work because I've already run it that's brilliant that's great finally yeah it catches ink flow bugs and it also helped us improve the ink engine itself by capturing some really deep down rare engine bugs which have where they're they're not there anymore problems I'm coming towards the end thank you very much for listening this is a bit of a problems it doesn't understand anything obviously it has no idea if you've repeatedly called the robot by the wrong name it doesn't know if you've walked up and down stairs it doesn't know anything really you have to read the content to see if it makes any sense it doesn't test anything in the 3d world and there are lots of bugs in 3d worlds I've props disappear behind collision cameras go through bushes all the usual stuff we are going to have to play this game a lot to check all of that but it does at least mean that we are checking that not
having to check the story content at the same time it is yet more code to maintain it looks to be introduced yet more disparities between the two layers of the game the JavaScript and the unity version that's unfortunate and finally and most importantly randomized play is just the worst simulation of human behavior I've ever seen we are better than this we are better than this a random player will go upstairs downstairs upstairs downstairs upstairs downstairs okay I've seen everything and leave and over here is a big shiny object with some really interesting plot attached and it goes no I won't see it and I know as game designers we always play as too much credit because actually players walk into an environment completely missed that completely ignore this focus on one spot on the ground and then say I don't know what to do I know and at least randomize players helps us to break the assumption for the playing your game with any modicum of attention
because they probably are or at least not always even when they mean well but we have had to introduce additional code to try and get the random simulation to hit any interesting side story content so if there's a particular bit of the narrative which is cool but it does require you to go and talk to this person about this thing we basically have code that says just do just get on and do that you near it do it no you're not allowed to leave do your homework and we need that and that's more code to maintain and it's debug specific code so we're not really testing properly I think as we get closer to release I'm gonna let this thing run randomly more often because stability matters but for the moment we have to kind of hamstring it to get it to do the things that we're actually interested in which is a shame I wish there was a smarter way of doing that and that's it that's what we're doing in conclusion we have a free-form contextually aware interaction across
the 3d environment entirely made out of authored and specific content via easily editable blocks with simply logic with simple logic with a simple additive logic though the story framerate is now an issue in general efficient authoring patterns have been utterly critical to us we couldn't do it if we hadn't have developed those we still use scale and redundancy in the text and dialogue we haven't actually thrown away that crutch at all automated testing is good any amount of it appears to be good and their major limiting factor is our cost and 3d world markup it's not actually story complexity our story is doing some nice crazy things because I think I can get away with it while the art department build another chair so that's me and if you'll forgive me I wanted to finish with one last thought so over the last four years I've done three talks at GDC about interactive narrative and the work that we've done inkle which I hope
a lot of you have interacted with and I hope a lot of you have found at least interesting and perhaps provocative and I think I mentioned earlier that we had a philosophy in the games we make but I think we have something deeper than that I think we have a core principle which is the thing that makes us do what we're doing in the first place the thing that we strive for and then we want to see in narrative games and I I saw a good formulation of it so I thought I thought I'd I thought I'd share that with you in the last minute of the tool which is this the conservation of narrative momentum obviously that's a massive bastardization of what the conservation of momentum is but I've got a math degree so I don't care and what I think I want to say is that games should be striving to conserve narrative momentum at all times every narrative experience a novel a film or whatever has got to feel always like something is happening right now but also something is about to happen just now and both of those things have to be true simultaneously every writer has to balance resolution and mystery tension
and payoff threat and release all of the time good narrative games need to do this but it's really hard because the player keeps walking into things or repeating the same conversation with an NPC or getting lost or going in and out of the same door players are our worst enemy when it comes to narrative momentum because they don't even know what it is they're supposed to be doing so to conserve narrative momentum as best we can everything that the player does that's awkward we need to gloss over as fast as possible and get out the way I used to write text dimensions parser based interactive fiction and the single worst thing about those is that when you make a typo it says oh I don't know that word and then it leaves that on screen it leaves your error in front of you and then you get two in a row it leaves two errors and if you get three commands wrong in a row you can't see any story anymore apart from all the things you did wrong it's terrible the loss of momentum is appalling well okay they these were games designed to be played coming out of a printer it's not their fault but we definitely can do better
but a lot of games those errors are all I see when I'm running around a level and uncharted and I've completely got lost and I'm being shot from all directions and the guys do not stop they come right at me and I have nothing but error compounded upon error when i'm trying to play assassin's creed in stealth mode and the framerate starts to drop because every single npc in the entire level has zoned in on me I'm in a narrative point which is not interesting it's just making me feel like I bottled in the narrative momentum evaporates okay maybe the game plays fun that's fine but I care about the narrative momentum the player should always be thinking about what they're going to do not what they're supposed to do time should always be moving forward moving forward through the story should be frictionless which doesn't mean you can't have puzzles but it does mean that attempting to solve a puzzle has got to be part of that narrative for example if I find a stuck door and I rattle it and it's stuck that's fine but if I rattle it again she
should stay it's still stuck that's a minor thing but it changes the total but tality of the framing of that moment in the story it becomes an expression of the protagonists frustration that's meaningful not just the computer repeating its cycle games should not waste our time they should surprise us delight us and then they should finish while we are still leaning forwards thank you listening I might have time for like one question but I'll hang around afterwards just anyone dare the microphone yeah so you're saying that your heavens vault is it's got procedural content in it which I am really interested in because I
enjoy roguelike games okay so I was wondering where you draw the line between like procedural content and the narrative that you're trying to show the user so I think the key thing to realize is that the question is about how we draw the line between narrative and procedural content the key thing to remember is that almost all of the content in Heaven's vault is authored the solution that I like to use is a procedural structure filled with narrative possibilities so in a roguelike you might see the same monster 20 times well we've just write 20 different monsters that essentially so I think the kind of dynamic structuring that roguelike games do is really really interesting what I like to try and find ways to do is to ensure that the way that content is surfaced gets filtered into something that an author has control over and that goes right back to like the way we structure the game you know we use text we don't use voiceover because that allows us to do that that kind of thing but obviously it depends on the game it depends on the intention of the game and particularly with roguelike you don't they are built
around the replayability around Ballou and yeah authored content in a loop is pretty awful so you have to solve that problem oh I think we did in 80 days I like to call 80 days a roguelike but slightly just for a laugh so yeah could you be more specific about what you meant when you said I'm a curve D unlock curve yeah yes so if you yeah absolutely so a early prototype you played you a couple of levels you picked up some artifacts from here and there the artifacts allow you to find locations I ran the game for seven levels and suddenly I had ten planets I could visit and I don't want the player to be looking at ten planets and going which one do I want to go to because the player doesn't actually care that much I want the player to be looking at three always and I want to make sure that the game is rigged so that they never have more three and that's what I mean by the unlock curve so the game should do that at the beginning it should do that for a while and then towards the end of the game it should start to do that so the player gets the sense that they're funneling towards one grand prize so
it's that it's controlling it's controlling how fast things are unlocked but really actually what I actually care about is controlling how many alternatives the player has to look at any given time so essentially you know in The Witcher when you've got like 20 possible side quests that's rubbish don't do that thanks alright I think I'm done thank you very much ever you
Auto-generated captions from YouTube — names and numbers may be misheard.
Distilling the key insights…
Game Developers Conference · 2026
Thomas Brush · 2025
Comments