The Evolution of My Game's Dialogue System

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] welcome pals to a new video today i wanted to cover a little bit of a deep dive into the evolution of insignia's dialogue system a couple of weeks ago i did a video about insignia as project and how that's kind of evolved and the tools that i've built to manage it and things like that and you guys responded really well to it so i thought today we would go into more specifics into one system hence the dialog system this has been a really interesting system to develop i'm quite proud of the code side of it but i think the interesting story on this is kind of how the visual design for the actual ui has changed as the project's gotten bigger so i want to talk you through those considerations and kind of how i got where i am today all right shall we get into it let's go okay so evolution of a dialogue system i guess the first thing we should ask before we go down this road on insignia's path here is just like what a dialogue system is for those of you who aren't super clued in a dialogue system is really just what we refer to when we're talking about the way that the game presents spoken text to the player now i say spoken text and not just character dialogue because sometimes there are situations where the game is speaking to the player through tutorials or pop-ups stuff like that when it uses the same system and this is common in a lot of games so specifically rpgs anything with the tutorial that's quite lengthy it's common to use type text that actually plays out that you can skip through and press a to proceed through it's common to use those systems for more than just characters talking to each other although characters talking to each other is kind of like the primary thing here this is insignia's prototype dialogue system this was kind of before the game even existed as a game i was applying for pax in 2017 the australia edition of pax and in order to apply for a space on the indie side of the show floor you had to show some screenshots of your game and a website and stuff like that now i didn't have anything so i needed to cobble together the art assets that i had into a series of screenshots that felt like it was from a diverse game with lots of systems and this was what i produced for the screenshots for the game uh it's using a font that i picked up from somewhere online and the system itself was actually something that i did design um so i stuck with this for for about a year or two after i developed this so you can see here like what have we got we've got like a text field with a nice background that looks like a book we've got two character portraits in this context we've actually got characters raising and lowering depending on who's speaking and the person who's speaking uh in full opacity whereas the person who's not is in uh like semi-transparent my goals for this were a few few different things one i wanted there to be portraits not every system needs portraits but i wanted there to be portraits i wanted for there to be um a kind of we call it skeuomorphic it's basically something that looks like a real object or works like a real object so the idea of pages bookmarks it was going to kind of be like an analogy for almond the main character almost like writing in his diary about conversations that he had so i was pretty happy with this notably however i just want to flag like one feature about this system that was pretty apparent pretty quickly is the fact that there is a line right through the middle of the screen everything below this is taken up by the dialogue system and so i needed to do a little bit of playing around with the camera in order to make this work so whenever there's a conversation the camera dips down which pushes all of the on-screen content up which creates negative space down the bottom for the dialog system to inhabit and that was pretty functional for quite some time um even up until i think this is 2018 mid 2018 late 2018 you can see there are some changes here i've added my own font and i've got the name of the character here as well which is pretty obvious that you would want to do that i've also got a little button prompt z is the button that you press to proceed through the dialog and that's there for a couple of reasons one it tells you that you can continue right it tells you the dialogue's finished playing and it prompts you to actually press the button to do that this is the third iteration and there are a couple of obvious things here one is that we've moved the name and the portrait to the sides now of course eventually the 50 of the screen thing caught up with me and i wasn't really happy with uh the way that it was uh creating such a constraint for the game there was a point when i kind of got frustrated i was designing this uh cut scene for just before a fight with the first boss the first boss was going to be a giant spider and sort of like the bowser fight in super mario brothers 3 there were going to be these planks along the floor and the spider would land on the planks and it would they would rumble and break and i wanted for the for the dialogue system in the beginning of this scene to show off a little more of that i mean right now if we cut off half of the screen you can't see the hole in the floor you can't see anything so this was frustrating me a little bit and i decided okay let's just draw over a screenshot here and see what we can come up with you can see pretty quickly i worked out you could just pull the bookmark to the side and that gives you more space immediately but i was struggling a little bit to kind of come up with a metaphor where the bookmark would still work from the side of the book so you can see here maybe you know we have a script that's not a book but just a series of loose leaf papers maybe the dialogue sits in the middle and the characters sit either side maybe we still have the book with the characters in front of the book and not a bookmark there were a few i guess competing considerations here trying to preserve what i had in the beginning but trying to maximize utility and space of course i was aware of other games uh you can see here there's a few different ways that different popular games have approached this this challenge some of these systems allow for dialogue to be placed arbitrarily on screen some of them pinned to the bottom and there are differences between them as to whether or not they are portraits so you can see in the case of final fantasy tactics advance and tactics ogre that these characters being as small as they are warrant there to be nice clear portraits it's much easier to see what this character is thinking or how their expression is if you can see a portrait and i value that quite a lot but in games like iconoclasts the actual expression of the characters is left to the animation of the character sprites for me as a designer who's working solo i thought it would be worth making a judicious decision about whether or not i wanted to go through the effort of animating all the characters emoting like that and at the end of the day i was still committed to the idea that doing the portraits would save me time because they would be more reusable and it would mean that more characters could get those expressions out so i compromised and i ended up somewhere here and you can see here i've still got the bookmark we've actually got two pieces of paper now we've got like the book behind and then a loose leaf on the front that's kind of in the middle that's straddling those two pages part of the reason here is that if we wanted the dialogue to run across this space without this piece of paper we're actually running along the spine of the book which doesn't make much sense because you don't write across pages like that so this was kind of a bit of a compromise it's nice in that now we're looking at about 30 of the screen rather than rather than 50 but still you know there are still some constraints here incidentally around this time i started to come up against the idea that actually you know it would be useful to use this system for tutorials so i came up with this additional viewport for the dialog system effectively it's the same system it uses the same way of ticking through the letters it uses the same way of proceeding to the next uh the next line of dialogue and these are still event sequences so it's still using the same back end but the front end is more limited the features of this are it can only have one line of dialogue and i can actually place it anywhere that i want to on screen that's the important thing here is being able to actually just move this box around to make way for things that appear in different parts of the screen and in this context the menu is actually moving on its own right pages are turning little you know items are being selected and things are happening as the game is showing the player how to use this and finally there is actually a third way that i wanted to show dialogue again same back end same constraints uh for the most part in terms of the features but in this context i actually wanted this system to allow characters to talk to each other in a way that didn't require the gameplay to stop so up until this point every conversation that could happen in the game every line of dialogue in the game required the system to pop up and gameplay to stop in this context what i wanted was for characters to be talking to each other and if the characters aren't talking to the main character then why does the gameplay need to stop so that was the idea and what i came up with was this kind of like messenger system right it's kind of like a like messenger on facebook or on our phone or anything like that where the two characters would be having their dialogue kind of like go in this little vertical list and they would start conversations when you walked past them and they would fade away when you left the space and this is what i called uh pop-up dialogue so now we have three ways three front ends for the same back end and it remained like this for quite some time this was in the game from 2018 until a couple of months ago or this month basically and the final iteration is what i use today this one is version 3 and i just want to talk about kind of how we got here so in july i was doing a little bit of budgeting on the amount of portraits that i would have to do for all of the characters in chapter two i was starting it to the point where i wanted to be able to walk through the second chapter of the game and talk to all of the characters and actually have the story play out and i was realizing hey in my system every character who talks needs a portrait because that's just where the way the system is designed so the more characters i have the more portraits i have to create and the more the workload increases and in chapter two the amount of characters with speaking dialogue were double triple chapter one so i started to think about like okay how many would the whole game require and it was in the hundreds of portrait sprites and i was like well this isn't going to work so i sought a solution that would allow me to maybe just somehow not require a portrait for every dialogue and also if i could free up some screen real estate once more so i was starting to do some some pros and cons right and i returned back to that screenshot list of other games and i was thinking okay do i do away with portraits do i make the portraits bigger i like the portraits i want to know who's talking and i and i appreciate what the value that they create so we're sort of doing a bit of a pros and cons list here and i started prototyping as well so i started to think like what would the game look like if i used that owlboy iconoclast's way of presenting dialogue you know how streamlined could i make this and i came up with a few different iterations here you can see i'm just mocking up right i just took a screenshot of the game and started drawing over it so yeah this was looking pretty good i was i was quite comfortable with some of these options and i really like the idea that the less text there was on screen the less that i actually needed to show so the system that i had currently up to this point was basically requiring every line of dialogue to take up that third of the screen right and in scenes like this where we're working with height a lot more we might have a character standing up here and a character down here it's hard to just assume that cutting off the bottom third is going to give us the screen real estate we need to actually show what we're trying to show in a cinematic way [Music] so i liked this but i i still wanted to work the portraits back in like how could i get the best of both worlds and here you can see i'm trying this idea where i actually just like replace the character with the portrait almost like we're doing as uh like a close-up shot of the character uh that's just context dependent and i thought this was okay like on on paper this looked pretty good but uh in game it was kind of awkward to just have the character disappear i also experimented with this idea of having the character dialogue still be below the character it was kind of something that made sense that the character in the screen if i'm going to have a portrait on this floating box that they would be behind it and that it would be below them so that they were sort of almost like sitting at a desk that was something that i thought was was at least from a ux perspective and like a like a layout perspective it looked good like it feels good um but then the question is okay but where does it live i even thought about the idea of just pinning it to the bottom of the screen and having it be like super ginormous i don't hate this idea but this is quite a large portrait at this point so i settled for a while on this view right we just as long as we've got like a little bit of extra space to the left and right of the character we can actually just put the portrait right next to them and have the dialogue little pip here um live beneath the character this was what i prototyped and i had this playing in the game up until about a week ago from basically all of august until like last week and uh it was it was good the final sort of nail in the coffin though was even this system like even though it's more flexible and can be placed anywhere on screen it does have this kind of like rectangle of influence right that ends up being again like a third of the screen if you were to take you know this big no-go zone that's created by the dialog box you're sort of committing to at least this much of the screen being gone so if there is any character that's that's living here or that's you know anything that's next to here whenever this character talks you you lose that one it's not great uh particularly in its height and this became really clear i was as i was working in a scene that i'll show you now actually so this is the final version of the system as it exists right now and you can see i've moved the portraits off to the right i'll go into that in a little bit but i just want to show you the constraints of this scene first that led me to this design change so you can see here we've got three characters and then a fourth that's standing you know much higher up this is really using all of the screen real estate at this point right and they're actually really close to each other as well like if this guy is talking armin might be obscured by his dialogue it also presents a challenge because we have characters at the extremes of the screen so having there be the portrait sitting on top of the dialogue means that the entire middle section of the screen like 50 of this middle is basically taken up by the characters and if we try to put that dialogue box above their heads we're going to lose it for this character and if it's below their bodies we're going to lose it for all three of these guys and so i kind of got to this scenario where there is an issue right like something needed to change because it wasn't going to have the flexibility that i wanted it to if it worked the same for every character it was at this point that i came up with an idea called the dialog pin system and the dialog pin system is basically just a game object it's an empty game object that contains a reference to a portrait and when the system is playing it effectively just says okay like who's talking place the dialog system over the pin of the character who's talking so when this guy is talking this is his pin his box shows up here this was good but having to supply this pin for every character was not great i needed a default i needed something that for most characters worked and given the default view of the game featuring the characters in the bottom third of the screen it made sense that the default needed to be above their heads right like why would i change it to be below them if the character is always standing here anyway so then we go back to the drawing board we come back to the same the same design challenge off we have this dialogue portrait it's above the dialogue how do we streamline it we pull it to the side and you can see here there are yet more challenges so the more this system evolved there were some added heuristics that needed to be concerned right so the older system was very simple and it had few features right there it was very rigid but that rigidity meant it was easy to implement as i added constraints and things that needed to be a certain way now the system needs to be much more flexible there needs to be more rules governing how it works so in this context like if you just think about it the position of this relative to the main character needs to be very careful right it still can't go above the screen it still can't go off the sides of the screen the text can't be behind the character like if the character is going to overlap which i was really keen on right like i really wanted to have the character overlap the dialog box to visually ground it to it right if we keep this off to the side there's so much empty space that you really don't visually connect it in a way that feels uh it just doesn't feel very pleasant to look at it's kind of just floating off i wasn't very happy about this like random edge either like why is his body just going into the ether but i also didn't have a nice way of of creating like a solid bottom either you know maybe we could have had the the character's name there instead of where it was so we had earlier on this idea of like this showing up but i thought you know what like if i can make this work then i will again like best case scenario we're actually taking up less of the height we can put this wherever we want we just need to make sure that it that it's always going to be in a place that works so currently i'm not actually using any dialog pins for anyone other than this character right if we go here this character is the only one who's got a dialogue pin every other character's dialogue appears programmatically right it's just procedural so the rules are that i always try to put the dialogue system above the character's head and i never have the the system appear off the edge of the screen right it must live inside of the screen and it must be above the character's head now here's a really good example of that rule at play like this box ordinarily would want to be situated directly above this character but it's not going off the edge of the screen because if it was to be exactly above his head it would go off the side so what i've created is a bounding box this red box here describes what we're allowed for this text box to leave and the size of this box is really just the half of the width of of the actual text so the middle of the text can't go outside of this box that's the middle there and that's the edge of the box because any further and we would actually breach the side of the screen so it's just a bit of math to say don't go off the edge and that's the same for above and below right that's the top of the screen the middle can't go beyond this point here the way that i previously was determining which character uh which side of the box the characters existed on was hard-coded i was just like in my dialog system editor saying left side or right side for each character and i switched that for a system that essentially just looks at the way that the sprite is facing so i don't try the left or right side of the screen it's not the side that they're standing on it's just replicating the side the character is facing and this makes sense right if this guy happened to be musing to himself off the side of the screen looking to the left you wouldn't want his portrait looking to the right you'd want his portrait just looking where he's looking so that's the way that i figured it out so for as far as the positioning of the box i was really happy with this feature set and this uh sort of procedural set of rules because it effectively makes sure that we never have a bad positioning of the box we can always have as much text as we want and we maximize the amount of screen real estate that we're actually using and for the price of just supplying like one additional game object transform we can put the boxes wherever we want even if it's a custom position so if we take a look at our evolution so far we've got version one which is very tall requires portraits version two still requires portraits but it's shorter then i had my tutorial tips and my pop-ups and these did not require portraits all of the time in this case no portraits and this one was much smaller so i had these different front ends that solved different problems but i realized that if i could just get the main system to be more lightweight it could actually fit all three at once right if this system can be used with and without portraits then i could use this for that and i could use it for these as well with some modification and that's that was the goal so essentially if i can just get the text to render in a nice way with or without the portraits then then we've successfully refactored the entire design basically down into one which is ideal now to make that work one really important feature since i made it not locked to the bottom of the screen was this idea of a pointer okay and the pointer was there from the pop-ups right because the pop-ups again don't have portraits you need to know who's talking so we need to point at who's talking now in the scenario where we could place these wherever we want the pointer couldn't just be a sprite because what happens if this box is not directly above the character what happens if like the box is so far over to the right that the point above the character doesn't intersect with the box well now we need something more procedural so i resolved to use a sprite shape for the pointer and a sprite shape is essentially a polygon where we define points and then it gets filled with a sprite that's tiled so it's kind of like a masked out shape based on the polygon i was really confident that this would work i was pretty confident that i could get this going it actually is working here so if i was to take almond in this scene i think i should be able to move him around it can't just be it can't just be directly above his head if it's going over to the portrait stuff like that it kind of has to point to him from wherever it's based and the way that i did that was it kind of looks like this like we've got our box we've got our internal margin that's invisible we have our character's head this point here or this point here wherever it is we draw a line and then this is the tip of the box and then where this intersects here we go out to the left out to the right that's our triangle so that's kind of what i ended up with right the thing about this that i'm not 100 happy with was just how it looks in the game so you can see here i'm successfully doing some pixelation to make this work but i don't love the jaggies that appear it really doesn't feel professional that you have these like weird stair-stepped lines to the point where i'm actually pretty sure that i won't use this system and then i'll just use the constraint of making sure that the characters are just always within the bounds of the box so that i can use a sprite i know that sounds picky but that's just the way that i feel about it this can get really awkward at certain lengths where you get an extra pixel on the end that's like a little black outline we'll see i'm not i'm not 100 sure what i'll do with it but if i can't get it to look clean uh then i might not keep it at all but it works so there you go and the final aspect was just dealing with the positioning of the text in the box so the actual text is rendered differently whether or not there is one line or few or you know less than a line's worth of text and whether or not we have a portrait and what side that portrait's on i won't go into too much detail about the challenges of this approach but basically uh the issues that i had to solve with this come from the fact that you have to define either the box or the text first in order to know what needs to be resized to match what like when we say four lines of text if we haven't decided the size of the box yet how do we know it's going to take up four lines and vice versa if we have a bunch of text how do we know how big the box needs to be to fit within one line or not so i won't go into too much there but there's a lot of uh kind of chicken and egg logic you have to solve first and it actually requires drawing the box and then drawing it a second time within one frame in order to adjust it so that it balances correctly so that's it that's the current system you can see i did apply a little bit of logic here in the visual design of these characters and i've got a procedural outline as well so the black outline i think helps a lot and this edge essentially it's just like a two by one diagonal line that i actually kind of try to break up depending on the character's sprite so in this case we've got that two by one line but the the cravat i don't know what the name of that is the scarf thing actually like peeks over it and so do his uh his cloak um obviously this sprite here is not final it's from an old version and i'm in the middle of this scene as far as design goes so these don't match up but he has like a big woolly game of thrones style cloak in the current designs so uh you can see here some of that peeks over that edge and i think that creates a nice frame i think that creates a nice device there we always have this line but sometimes the character peeks over it so that's the system as far as its design you can see that even in the evolution of it there's been quite a lot of consistency moving forward right so the idea of like the skeuomorphic elements the pages with the folds and the shadows have made their way pretty much throughout right we've still got this lighting so we have the folds we have the shadow there are folds on either side depending on which side the portrait's on i've actually kept this little seam here i think that's a really nice that margin rule line is really nice that i've pulled from the pop-ups another advantage this system is that we can actually have larger portraits so i've gotten a little bit better at drawing portraits and my workflow's a bit faster now as well so in this scenario i've actually won on like every level right like the portraits can be bigger when we want them the portraits don't take that much longer and they definitely take less time than animating the characters and for the characters who don't need to interact and don't need to emote we can just mix the portrait altogether i think i've basically arrived at something that's really really functional and is appropriate for the game that insignia has become so we i've talked you through how this thing was built i now want to talk to you about whether or not this is something that we could have arrived at from the beginning so coming back to the very beginning when i think about this system and the things that i knew that i wanted from it and things that i didn't know i would want it was very hard for me looking back on it to ask of myself to have been able to anticipate where i would need to be today i don't think it's something that's realistic right my ambitions for the game weren't as high just in terms of the scope of what i thought a cutscene could involve and how i expected the characters to be positioned on screen and whether or not you know i could control that positioning in an intelligent way i just didn't i wasn't at that point yet right it seemed like a safe a safe decision to pin it to the bottom of the screen and i think for the game that insignia was it made sense right for where i was as a developer it made sense now at this point when i was thinking about this there was no conversation about whether or not i was going to use this system for tutorials right so the the addition later on of like the this version and these pop-ups as well these were incidental like i don't think it's practical to try to think two years ahead and say well we're going to come into a scenario where we're going to have all these characters and we want to give them lines of dialogue but we don't want the system to pause like it it feels like speculation and if you go down this road of trying to develop features in advance of needing them then you might not even really know what it is that you're trying to solve with those systems right you might be speculating on what it is that you even want for those things to do so as a process it really has had to have been one that i discovered it's very obvious to say things like well this is not great right like taking up half of the screen's bad okay sure maybe we could have gone to something like this straight off the bat but it wasn't really obvious to me even here that you know that we wouldn't want to have portraits on either side of the screen like this there really weren't enough pieces of the puzzle evident for me to be able to figure this out so i think the argument for creative discovery on the design side is quite a solid one i think in general across design it's very much promoted and accepted that you expect to prototype things you expect to implement them and to iterate on them based on the feedback that you get when you're testing them that's something that i think a lot of designers would would approve of in other fields the question on the technology side is does this create bloat in the game right like are you able to do this kind of exploration without increasing the actual development time of the project significantly and i think this is something that luckily with this system i've done quite a good job of so this is one of the oldest systems in the game but i've managed to develop it in such a way that every change that i made felt incremental and felt like it was an attachment on top like an extension of the system rather than a rewrite i've never had to rewrite this system so we can talk a little bit about the code side of this and how i think that you should aim to develop these kinds of systems um to avoid the messy side of this iterative process so here is uh one of the scripts this is called dialog engine okay this script has one job okay this script handles the playback of the text it doesn't manage the animation it doesn't manage the visual presentation of the text it just manages playing back the text and telling the cutscene system when the player has pressed the button to proceed okay so all it does is reveals the text now this system since i built it has had very little changes right very little about this part of the functionality has changed at all right every every iteration has had text that that scrolls changing the solution of the text box from unity text box to text mesh pro hasn't changed how this system works really nothing about it has changed and that's great right this is a single responsibility piece of code and it's its behavior is modular which is excellent this code here is quite large script is called the sequence player this handles the actual playback of the cutscenes in conjunction with timelines so my dialogue systems if you've been watching in the past you'll know that the actual system itself handles a bit more than dialogue from the editor side not every line is dialogue some of these are sound effects that play some of these are messages like functions that get called some of them are animation cues so you know to make a character you know animate a certain way out after a certain line of dialogue has been played and this system has had lots of change but it hasn't needed to update the dialogue engine those two classes don't really interact with each other in such a way that changing one forces a change on the other the dependencies are separate all this needs to do is tell the dialogue system hey play this event right we've got some text we've got a character portrait i want you to play it and i want you to put the box here right and so any other changes we've made about whether or not this thing syncs up with a timeline you know how many different kinds of events that there are that doesn't change the system because those things don't relate back to dialogue now the code that has changed is the presentation code so the very very front end that manages you know those little bookmarks popping up and down the transparency whether or not the system pushes the camera up those are what i call like the front end layer and they're called dialog targets so there's one called uh dialog page right this is the original one i don't use this this class anymore or at least it's turned off there's there's no game objects that use it so when i replaced this what i did was i replaced it with a an interface and that interface is called dialog target and dialog target just has a few basically hooks that the dialog engine can point to and these all relate to presentation right so focusing a character versus focusing on a different character clearing the text hiding or moving moving the box on screen setting character names that kind of stuff that's all handled here in the target right this is the output and there are different versions of this so floating dialog is the current dialog target that i'll be using for pretty much everything from now on and that's the one that you can see here this is the floating dialog now floating dialogue's code again it has references to things like the pointer because this is the only version that has a pointer the version with the book that was pinned to the bottom of the screen didn't have a pointer so there's no description for it this is the system right and this is what makes it so easy to extend is the fact that it's so modular right most of these changes that we've been talking about are front and display changes to how the system works and so if the thing that's changing is the display we don't need to throw out all of the other code we just need you know assuming that that display code is in a class we're just replacing that class and because we're implementing an interface most of the features and the expectations of what this thing can do those are already set so we just need to implement those functions for a new kind of dialogue target now there are a couple of little things that have come up in this system over the course of the development that haven't been design changes they're actually feature editions uh that i can just talk about very quickly so one is the fact that the different characters have instance data that relates to a character so we've got armin here we've got his portraits but we've also got a thing called a pitch and the pitch is uh the pitch that the little text blip makes when this character is talking so there's this kind of like when a character's talking the pitch of that is controlled per character basis this could be swapped out later with a custom sound effect for each character i'm not sure if i want to go down that road entirely the full like undertale you know sans thing but uh that functionality is there because it's defined in an object that i can just add to right whenever i want so right now every character has a pitch but i could give every character a a sound file and that wouldn't be a problem another addition to this system is the addition of colored text so text mesh pro allows you to style your text arbitrarily and you can actually create styles that create kind of like a css styling right it's kind of like html so here i have these ideas for things like objects which have a certain color places have a certain color actions have a certain color so if a character is talking about a place that they want you to go that place might be colored in in purple or if there's an action that might be red and that's just to kind of flag to the player if they happen to be the kind of player that likes to spam the text um that hey this piece of text has some color in it so you should at least look at this line of dialogue rather than just skipping through it all hopefully that makes people more likely to read it one other change that i've made since the beginning is and this is something that's gone into the engine is pacing for the dialogue so when the dialog is actually reading the text it picks up whenever it sees punctuation and if it sees punctuation the actual pace that it reads at stops for just a moment and what that does is it makes the text look like it's being read out right if it sees a comma it pauses just briefly for a comma if it sees a full stop or a period it pauses for that period if there's an ellipsis it pauses even longer and again this is something that was pretty trivial to add and because we've got these separate systems like the dialog engine that controls this stuff versus the front end every front end receives this functionality because it's not defined in the front end right it's defined in the dialogue engine one future feature that i'd like to add is the ability to change the actual vertex offsets of the lines of dialogue so if one character is saying oh it's spooky you know being able to shake the letters of the word spooky would be would be kind of cool and i'm not really concerned about the time that it would take to add that because it doesn't affect anything else so i hope i've hammered home that point enough let's do some wrap-ups [Music] so designing this system has been very very iterative and something that i've had a lot of joy coming back to once every couple of years the game is such a growing project and its needs are being kind of like revealed as i work on it i think at this stage i'm probably at the point where i can't see this becoming any more streamlined than it is like there's just nothing that i could imagine that a dialogue system could do that this one doesn't do at this point but i think it's important to note that i got here in a very organic way right i only added features when they became apparent i streamlined it when i felt like i had motivations to do that and so i don't really think of those changes as like taking back my design or admitting to a fault i don't think that's a really functional way of thinking about this kind of stuff i think at the end of the day like you spend the time that you spend adding functionality and then streamlining it back down that's a healthy part of the process so that's the dialogue system i hope that's been enough information for you and if you'd like any more sort of like specifics about how it actually does what it does we could talk about that too but honestly these kind of systems have been well worn as far as like their functionality goes like revealing text is very very trivial to do and you'll find dozens of tutorials on youtube that teach you how to do that still if you want me to be the one to tell you how to do it uh let me know because it's something that i've been thinking about quite a lot recently it's hard for me to know if my audience wants more of a sort of like code breakdown or if you'd like to keep things more in the devlog space or if you'd like me to just do pixel art tutorials uh it's up to you guys so let me know in the comments and i will see you in the next one hey pal thanks for watching and thanks most especially to the patrons and twitch subs who support this channel and my gamedev project insignia to find out more click the links in the description below and if you like this video tell youtube by clicking the like button and then youtube will tell me and then i'll make more videos that's nice thanks again and until next time [Music]
Info
Channel: AdamCYounis
Views: 15,255
Rating: undefined out of 5
Keywords: game development, pixel art, game dev, game, video game, indie games, stream, vlog, devlog, unity, programming, dialogue system, ux, design
Id: I4kOe20MuFI
Channel Id: undefined
Length: 43min 36sec (2616 seconds)
Published: Sun Sep 19 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.