Custom Tool Time: Make More in Less Time

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hello there welcome to my GDC talk slash bedroom or today we're gonna talk about custom tools so let's uh let's get started alright first a little bit about me Who am I hi I'm Brett Taylor I got my masters in cognitive studies from Columbia University I've been making games for about the last 12 years or so and I'm a history I worked at Arcadian for about three years you know then I went indie I made a game called Lang light that did pretty well I released that in 2017 and most recently I'm actually a developer and plated and designing and doing stuff on there untitled 13 ah so uh yeah all right so this talk basically split it up into four parts first we'll talk about what is a custom tool so like will define what custom tools are then we'll talk about level editors so I've made a lot of level editors in my many years of development I've got a lot of experience with that and that's a very specific type of tool as well then we'll go over like when when does it make sense to make a tool and then finally we'll finish up with code shortcuts for unity so if you are developer unity I have a ton of code shortcuts that have sort of a mask over the years that will make developing life for you easier and actually I've got a link in there so you can just use them you can download them free on the internet to make games better and faster yeah so you might be asking me what is a custom tool that's the right question so the way I would define it would be some sort of a coder system that saves saves time for the designer and/or the program so it's specifically about saving time something that helps optimize the process and make the game faster and also like throughout this talk I'm gonna like I sort of use the term tools a little bit loosely like I'll like say a level editors a tool but level editor has like things within it and yeah this talk is specifically about saving time and energy it's not about making the coolest possible tool it's about yeah it's about making our games faster and more efficiently and like not wasting as much time yeah and specifically a this is about design tools so there are like tools for bug profiling and stuff like that for you know production or programmers but these these tools the ones I'm talking about mostly for the designers to add content into the game yeah all right so let's talk about sort of the groove or flow State for the designer so let's say that you save 20 seconds 12 times a day like that's a quantitated you can you can say like I have saved this by making a tool what that time be worth it you know like that's four minutes a day but you're not just losing those four minutes you're losing sort of like being in the groove as a designer so when I talk about the value of making certain tools it's not just about the time saved it so it's about like staying sort of in that flow state as a designer and that's really important so you can't just say that you're saving four minutes a day because you're not just saving four minutes a day you're sort of staying in that state and you're able to work more efficiently so groove state sort of like when you're creating and you're not interrupted and bothered by things but it is relatively easy to interrupt this groove state i'm ashleeta that's you you're cuzco you threw it in the groove he says and so those would be the obstacles that waste time so our goal is to stay like cuzco in the beginning of if you've seen the Emperor's New Groove him in that musical number they want to be like Venice designers may be less selfish but dancing that much yeah all right let's talk a little bit about Bob Ross who I personally love he is a time-saving role model of mine so he makes oil paintings he's got this show from PBS back in the 90s where he would complete these paintings each show was about like 22 or 23 or so minutes and he finishes an entire oil painting and he does that by using a lot of shortcuts he has said that this is the lazy man's way of painting which I strongly disagree with I don't think that's true at all this is the smart person way of painting this is the efficient way of I'm making stuff or you're like not wasting as much time so like for instance making stones making these stones you take a filbert brush you put light color on one side dark color on the other and you just basically touch the canvas a little bit you don't have to do much effort at all you just touch the canvas and the stone will just appear it's magical doing it that way it's so much faster it's much more efficient then he's got like all sort of like you know shortcuts like that so I'll put tools on sort of a spectrum of small tools all the way to pretty big tools so a small tool because I'm using the term sort of loosely but I'll just sort of call the tools in general it's just like things to save time so here like this tool would be I reusable code snippet so let's say it's something that returns a random boolean which is generally not a function afforded by most languages which is strange to me I don't know why that doesn't exist and two big tools like I would say an entire level editor that's way robust this is something that I made 10 years ago I'll get into that in a little bit yeah so we've got designer tools so that's something that helps you the designer add content to the game and then programmer tools so like the reusable code snippet you know that would be or like it could be a library or something just something to save the programmer time so then have to like keep reinventing the wheel let's sort of like what programmer tools are more like and this talk is specifically about the designer tools it's and more is more geared to that although at the end I'll give you some unity code snippets for those programmers out there yeah all right certain types of designer tools we could have things like a level editor that's a pretty straightforward one something that the tool tool would be like something that highlights an issue with some content and like a layout visuals like that help you know you can see the little check boxes checkmarks there and I'll get into this image later yeah it's you like organize your your content or you know if you're making like a branching narrative or something yeah this is a Enki it's a it's like a text editor for that so like it would be like a tool to actually make the content to put into the game okay so part two let's get into examples of level editors which is something that I like level editors are fun so Scalea starting with this is the first big game that I ever made it looks like this this is what the level editor looks like as you're editing it it's my first level editor that actually made me this back in college it was heavily inspired by bridge so the game itself was very inspired by braid as well so braid was like manipulating the time so I was like oh what if you can manipulate space um this is way back in like 2010 physically right after break came up anyway so the scale a level editor was obnoxiously over-the-top it was the game itself was about a half hour long and this level editor it was it was it was ridiculous how how robust and sophisticated this was yeah it's too much so the outcome of that it cost me roughly estimating I would say about three months to make the level editor on and off over the course of you know a year or so and the payoff was not that much honestly compared to had I just you know hard-coded the little layouts like with text files uh the payout wasn't like big would the amount of functionality to put in what really wasn't that worth it but that said you know I was young and I learned a lot I made this in processing also which was a ridiculous decision yeah but I learned a lot in the process let's talk about line light so the game that I released back in 2017 so this level editor a bit I learned a lot from the scale a level editor in terms of what not to add so the line light level editor yes so actually I'll show you here it looks basically like this where you can move around and like you're playing the game you can turn the level editor on and off you can just click and drag these streets they automatically reconnect so it's very easy to rapidly iterate on ideas and stuff yeah so I mean the the level editor after as I sort of started the level editor after I've hard coded enough levels to decide that the game was actually worth pursuing in the first place and that that I mean basically that I needed two level editor I didn't make it until I knew that I actually needed it so it started out this delightful hard-coded lady I had to say exactly we're like where the pixels were of you know the elements in the screen and eventually over time I made the editor out of it but I started with the hard-coded version with Scalea I didn't do that I made the level editor first and it had a lot of features that I really just didn't really need because I was so swept away by braid and I wanted to copy that which again I learned a lot but it wasn't the most efficient way of doing things and then I learned and applied those lessons to I might its The Alchemist roughly over the course of a while I'd say maybe was about a month development kind of tough to estimate that but the whole development cycle of limelight was about a year and a half and the payoff for that was tremendous like the rapid iteration time was absolutely fantastic this level editor was great I it it was great yeah and I because I made the features as I needed them and I kept it really streamlined you can even see actually that I'm using like the default view system from unity but I was like I started with that and I'm like I'll make it pretty after I get it to work and then I realized is working now no need to make it pretty that sort of like a little lesson that I had there which it sounds really it sounds really like almost not even worth saying but it really is because I was I was so close to making it look legit like a legit level editor but I didn't need to it wasn't worth it having it look you know sort of probably like that and like kind of hard-coded a lot of it is it was fine that's all I needed to actually finish the game so I didn't have to make it polished so the map editor for limelight is probably equally sophisticated it's not more and there were a lot of features to this which I added gradually over time and I'll show you another look of map editor that I have that's based on this I'll get into some of those details but that here's one thing that I made like two or three years ago or so designer flags oh no actually no sorry this was from lightly I made this for limelight levels and I brought it over to and another game that I worked on so designer flags these are the five designer flags this is just a system that I that I thought up and I wanted to use so each level is flagged and like it's got a flag of one of these icons basically and you just you tap the icon to change it stay close to the next one pretty straightforward and he's baked into the editor so when you look at the level itself like I look at the level I can I can toggle the level names on and off and I can see like if it's um you know if it's a testing level if this is an idea for like a level or a puzzle or something if it's something that's in progress is you can tell from like the little trouble guy if it's a good level of work it's a great level and actually love this system it was it works really really well and it was especially great because levels would constantly be in flux I would like be rearranging things very just all the time and knowing like having each the levels flagged as something really helped guide me and I didn't have to remember what I thought about the level I really go what I knew about it it was it was ready there for me which was that's great so start with the outcome for that and say yeah this is it tell us about five hours total and the payoff was really just outstanding it was great for those designer flags there so practice play so this is a similar thing to the designer flags and that it shows some stuff on each of the levels in the map and it shows what's in each room so lucky to the boxes level room it's use this anonymously and my goal is to visualize a linear progression so it shows what the mechanics in the room itself are so you can see here at the top we've got flipper you start here this beginning we got flipper flipper flipper then we ignore the purple then when you get enemies enemy enemy then a flipper plus enemy did you - okay so then we've exhausted those now we got it we've got a key and this new mechanic and I mean key enemy flipper and key so this was I wanted to like a few lines like how I was compounding mechanics on each other because that was an important part of the game but I ended up not really ever using it which surprised me a lot because I thought it was gonna be beneficial but it it just didn't it didn't pay off yeah it just wasn't useful so that cost me about like three and a half hours or so roughly and there was really no payoff so that wasn't worth it so much um but you know that's part of learning process making this that's my sister so before I get into like examples of the game I'll just show you what the game looks like so you can you've got there's one character Jetta you can switch between characters so now we're plum guy so you can plunge down and you get some extra height this game was inspired by Celeste um I made this about like a year ago or so there yeah so that's what the game looks like it's a side scroller here's the map editor so it's copied and pasted pretty much the entire line light map editor and I fix things around to make it work for pounds Questor so the rooms as you can see you you can drag them away and then connect them back to each other and they'll automatically connect in the editor it also highlights issues with the layout so you can see this yeah those pink lines on the edges there if it's not connected to something so that's that was really useful for me as well and also like you can see how the colors are clustered together if it's part of a specific cluster so I could make these layouts because there were several of these worlds so I could drag things around with them pretty easily that was really useful there's also extra features like if once I had enough levels I needed to start searching by name so if you hold down the shift key and you start typing the name it'll filter on all the levels but don't have that string on there name degree it just hides them like a little feature that I needed that I eventually added was if you shift-click it'll just get select all rooms that are connected to the one that you've just clicked which is actually surprisingly useful and a bunch more like little doodads and stuff to make this map editor um useful ah so the room editor let's talk about the room editor a little bit so here's a room a bounce Meister and this is actually what the editor looks like when I'm making levels it uses the unity editor so line Li it's baked into the actual game itself it's baked into the you know like you could play in the production like the release version of line line but bounce Maestri uses the unity editor it's got some advantages it already exists the unity editor is already out there so I didn't have to like add things like undoing and redoing it line Li didn't have that because that's just not worth adding on my own but this had it which is like super useful and especially useful is selecting multiple things and moving and scaling them all together that's really useful unity editor or it has that built in but there are some disadvantages obviously um yeah it's first off a separate window to play the game versus edit the game which I didn't really like because I made everything smaller because there's just you know more windows less screen real estate and also like I had up in vent very specific workarounds to like work with unities like how their editor works in ways that I wasn't used to you know sort of working so let's like what the room in it are some of the features in the room editor for bounce master snap to grid this was awesome this code is hilariously not complicated it's very simple so that yeah the snap to grid is exactly what it looks like it snaps things for the grid yeah auto-rotating spy this was awesome I wanted this for a long time and we'll get into this a specific example later but when you're driving against the surface the spikes will automatically rotate to match that surface it's nice this is gonna sound ridiculous but I had to add a feature that would also explain the hierarchy because you can tell here this takes about seven seconds have to click once twice three times to open up the level of itself like in the hierarchy and then in the code anytime a level is loaded I automatically would expand the hierarchy to exactly what I knew that I wanted it to be so that would save me all this place zero second c.replace that actually saved a lot of time a lot of headaches because I want to see what's in the it what's in the level itself without having to click in the actual game window so that was really useful you can do that also you can like Auto expand the hierarchy how you want in unity cool that's a keyboard shortcuts not gonna go through all them a simple one would be these keys right here these just corresponding to jumping between levels you can see up there a little tiny it was the map there so I'm just like using these two to warp it between levels that are adjacent and I have like a lot of keep like maybe two dozen keyboard shortcuts I'm not gonna go through all of them but there's a lot so we've also got gizmos that show mismatched room connection so you can see right here this line that's drawn that's where the other rooms opening is so I can see if I'm looking at you know consider it's just a mismatch right there so that made it I didn't have to keep switching back and forth between levels to like or like eggs to the map editor to see if they were misaligned I could just do it I would know already it would be display right there next we've got music story another game that I worked on this was right after the landline I didn't release it mmm it's just stayed in a prototype stage um but uh I'll show you little bit a video of it and then we'll talk about the solutions to the challenges that I had yeah [Music] choices here to liquor ignore [Music] you can be nicer me [Music] okay so anyway so you can see that the music the text comes in H the notes each of the syllables actually the text will come in from each of the notes all the text in the entire game is set to music so this was an interesting challenge I wanted a frictionless system to compose and connect like to marry branching story and music I never even conceptualize branching music before so I had to figure out how to make that work that was a very difficult challenge because I wanted this as frictionless as possible I want to be able to add content like really really quickly and not have to like worry about like setting specific times champs they've been like a nightmare because I did that initially and it was just so time-consuming and it was it was difficult to add content I wanted to just get my thoughts out as quickly as possible that was my goal so the ultimate solution that I came up with for that cuz this is record producer this is like the first I think I wrote my first like thousand or so songs in this software here it's like from the 90s super old me but anyway so I wrote it in this at a MIDI editing program and I had stamps so you can see like the little flags there I read in that MIDI data into the code directly and I sync that up with so I used Enki which i mentioned earlier in key to write the actual branch and dialogue um and then it you know CC like the little hashtags that like specify they sort of connect the music and the lyrics together that system I was able to write content very quickly considering that it was branching music which was still weird to think about if somebody could make it cool or better granting music sort of thing that would be that'd be pretty cool but I didn't need to make it sophisticated like I could have made an actual branching tree sort of thing like with an editor I was very tempted to honestly but that wasn't worth my time but it would be cool for that to exist alright let's talk about combi [Music] so you tell it was to connect all the colors [Music] but that's how they never so with combi um it's a mobile casual game and we wanted over a thousand levels for the game but we only had like two or three weeks to like our time frame for making it was about three weeks which is pretty ambitious to make a thousand levels with and I was also the only developer on it and it was the game itself was too complicated like the the merging and stuff to make a procedural level generation so I had to do them by hand I would spend like two hours making levels and it just blew my brain up I couldn't I couldn't function after that so I eventually made an editor for my phone this is what the level editor looks like and this was after that standing ah so the steps to make a level with this system so you would first you would just hit like new it would generate a completely random level potentially not even solvable a lot of them were now solvable and that's my job to figure that out then play through it and then I could edit manually you can see here paint so we can click to like add a tile you can remove them as well and then save and Tagget saved the difficulty and ultimately each level cost about 45 seconds on average for me to make including the extremely difficult levels which would take you know a couple minutes to solve a lot of them weren't even solvable like I would play through these levels that were not actually solvable and I didn't know if they were so which means that a lot of these levels I was making in like less than 10 seconds so I would make levels after waking up I would make levels on the subway before I went to bed I would spend ten minutes making levels etc so I was able to make a tremendous amount levels that really fit into my schedule so this this tool enabled me to like make levels and it was actually a lot of fun to make them too without like losing my mind but I sort of like fitting into my life a little bit better so the outcome of that it cost give me about three days total to make that editor tough to have to make that but about three days growth roughly and the payoff was my sanity I literally felt it was hard for me to have conversations with people after I've been making levels for that long so this definitely helped Chapter three when to make a tool when let's find out so my advice hacking the content first get the actual content working get the design and get it playable and then once you've got any bit of content working once you've sort of once you're able to play it then you'll have a much clearer idea of what tools you actually do or don't need making the tool in advance unless you unless like the design is like iron like it's just like locked-in hacking it in first for me has always always been the right move so you know for instance I showed earlier with line light I just hacked in how the streets were laid out I didn't make any a level editor I just wanted to test if the game was a game at all in the first place which eventually became the line light level editor which was great you might be wasting more time than you realized so my advice I tell you folks out there identify what your preferences are first and challenge them so like let's say that your easygoing if you if you're not really bothered by repeating actions a lot you don't really mind it so much doesn't affect you so identify that or are you sort of on the other end of the spectrum which is a little bit more like what I am I'm efficiency fueled or like the moment I think of a tool I'm like oh it would be so cool to build it identify sort of like where you think you might fall on the spectrum most of the time so let's say that you're easygoing so my recommendation would be look at your process critically to see how like how much are you actually waiting for let's say that somebody has to compile or you know you're waiting for something and like how many how often are you repeating actions so some specific examples would be if you're like renaming or editing files in bulk regularly if you're doing this like it more than once a week now this is a really funny one that I found for myself it makes a big difference moving my my mouse or my eyes or the far different distances to my monitors or set up like you can kind of see it like here there it's pretty yeah it's like the the gap is fairly wide and then we're moments where I don't feel like a look all the way over there and then down there and also have to move my mouse between those two and that's just it sounds silly but it really does it interrupts the designers flow but just looking out for things like that yeah if you're like waiting you know every time you headed code it'll take like 15 or more seconds to recompile there probably is ways to save time this probably ways to cut that down that might be easier than you think I would say challenge your complacency musically and yeah honestly saving time might be a lot easier than you than you think saving like the first like what 30 or 40 percent of time shaving that off for a lot of tasks might not take that much effort at all so give it a shot you might be surprised let's say you're more like me efficiency fueled yeah my recommendation is try hacking in the content first instead so this is the opposite of what I did with Scalia I made the comp I made the tool first but my recommendation hacking the content first get that to work and then once you've sort of got that then you can make the tool because the design is probably going to change and the more specific a tool you make the higher chance that tool has to becoming obsolete which brings us to the sunk cost fallacy so if you've made a tool that does XYZ it's actually hard to it'll be harder for you as a designer or a developer to cut or change that feature the XYZ feature even though you should cut the feature um like subconsciously you might be inclined to not to leave it in because you've got the tool to make it to make stuff work but for the game it's not the right decision so you can avoid that by like not making the tool first so let's say you're like this my threshold for investing tools was basically how annoying it would be with that one and that's sort of the the equilibrium that have sort of fallen into or the last five or six years that I've been using so first don't try to live without a tool I'll have in the back of my mind somewhere in the background mind that I that this isn't efficient but I would that would go without it and I would increasingly potentially think this is really annoying and I might like become complacent with it over time maybe but sometimes not it sometimes I would stay knowing it would stay in the front my head now certain threshold once I'm like annoyed enough I'll ask myself okay so how long would it take to make that tool and what would it save me time ultimately so the timing cost to make the tool would it save me more time and groove as well so example of of this annoying thing spec rotation which I mentioned earlier so in bounce Meister how to rotate a spec the original weight of rotating spike so you drag that out let's go over to the Z and we've rotated it oh no that's 90 no I think 90 is left or negative 90s left okay if 90 doesn't work then I would try a negative 90 cuz I always get those two confused still get them confused I don't know how still getting confused okay so no but like left is 90 so I would put in 90 and it was actually negative 90 I'm gonna remove the - I didn't for every single spec can you see down here there's just a lot of spikes in each of levels this is Hong spikes it was a mess and it was really time consuming it was goofy and it irritated me a lot over a longer period of time so I put up with it for weeks I'm working on the game then eventually I was like okay what would be the easiest way to speed this up the absolute simplest way answer okay I could hit ctrl R to rotate the spike 90 degrees because I know I'm never rotating it by anything other than 90 degrees it's like everything is just you know more thug '''l okay how long would that take 10 to 15 miles to put that in excellent it was so much quicker and that's what it looks like that's right thumb yeah it was better but it was still clunky I actually made it like a day or two using this before I was like I was even fed up with that yeah because it was it was an improvement but it still wasn't good enough so then I finally asked myself okay how long would it take for me to make auto-rotating spike spikes that rotate as you saw when you touch the surface okay maybe about two hours okay do I want to program that yeah yeah I absolutely want program that at this point I'm so frustrated yes I want to get this thing in as my answer yeah there it is beautiful right yeah that took me an hour and a half took me 90 minutes to head that and it saves so much time it's so much better I see the manual rotation let's say it took like you know 10 seconds or so when I lost my groove a little bit each time and like that's it you know if you actually add up the time that that's roughly three hours a month because I'm routing spikes at least 50 times a day this is a conservative estimate so time-wise that was three hours a month of lost time and I mean I did this thing in one and a half hours which is like crazy how come 90 minutes hey officer awesome it's great I was really happy with the outcome of this one it's a good custom tool here's another example of a tool that I made for misaligned rooms rooms that are slightly off so you can see right there can we zoom in those rooms actually don't match up the yeah they don't match up so like if you move into one you like actually hit the your but will hit like the floor of the next room and those are problem because it's really tough to see so I added a feature that would highlight these errors so if the map looks like this and you hit a button it'll show like a little it'll just highlight that so you can see oh okay I need to I need to fix that which is very useful for the designer I asked myself do I want to add this the answer was no I didn't really want it we didn't bug me enough so I didn't add it I never heard of it I never put it in and I continued to be slightly bugged by the fact that I to do this manually each time so this ideally would prevent human error but I never put it in is there a right answer for either these two spikes or the the highlight in the errors is not really right answer it's messy like yeah so incomplete tools what about tools that we don't finish which I have a lot of so as I mentioned at the beginning our goal is to save time it's not actually to make an amazing tool as fun as that might be it's ultimately about saving time so to illustrate that yeah line lights map editor had a ton of bugs which included instead of double-clicking to open up a level the frame weight was so low that you would have to click up to ten times so you just smash the expansion the mouse to open up a little for every single level also some of the boundaries were wrong when it displayed a level so I actually wasn't sure I couldn't really trust them that was a problem and every time you connected levels you still had to open each one individually and like emanuelly jimmy things around all of that could have been automated but I didn't fix those issues because I didn't actually have to I was wasting time but the time that it would have taken to fix them might not have balanced out the time that I actually ended up wasting when I ended up taking the code and repurposing it for men semester actually at that point I didn't fix the books because I was already in it so that made more sense and then I didn't have to deal with those things in the future so you know Missy there's not necessarily right answer so last but not least we have my unity shortcuts obviously these are unity specific these are bits of code that have copied and pasted into every new project that I've made and I continually add to them over time they've got a game agnostic code that makes things a lot faster and easier for me as a programmer and developer and if you're not working in unity and even if you are you can use these sort of for inspiration as to like ideas of how you can possibly save time so I've a link to it right oh that's complicated can we okay that's better all right so go ahead and go to that link up there cut dot ly / GDC 2020 80 tools talk yeah yep that's where the code is you can download it alright and I'll keep it up on the screen for the rest of the rest of the talk all right so here's one now reloading the scene every time the script reloads projects will often break when you compile them in unity so I can make a change in c-sharp at the project will um like things and things will just be broken when you come back to unity for larger projects is kind of inevitable but this literally that is the code right there that's all the code is you have to put it in a class of course that exists somewhere in the scene but this prevents you is prevented me from having to stop run the code after every change this would reload the scene so every time I make a change in the code and I come back to unity it'll automatically reload the scene instead of me having to hit the play button twice which takes ten seconds at least I see me at least 10 seconds for every compile and for larger projects that saves me more because I don't have to like it's not the whole thing to rebuild it yeah it's nap degree which I already showed you earlier this is the code for that for the rectangles it's a little more complicated but um for just the positioning of things this is all I coded a code is it's extremely simple and useful so I have some various strengths that I bring into each each new project that I got like a common folder filled with different structures that I varies so for example color 255 color HSB so color HSB of course allows me to make colors and hue saturation brightness it'll automatically convert it same thing with color 255 so if I'm using color picker com she returns a range from 0 to 255 but unity takes it from 0 to 1 for the longest time I would actually like manually do the calculations of dividing the values by 255 after I got it from color picker calm but I just made a color 255 struct eventually which is very easy so you'll say new color 255 passing the values from 0 to 255 and say it out to color so that save me a bunch of time and it seems like like these are things where it's like well why don't you just you know use the regular color feature or like say like divided by 255 in each of you know when you construct it but then that does take time um and I spent actually years doing that and it ate of enough time were I wanted that one of that little shortcut and this was so easy to make this is in the code up in the link up there yeah and so for HSB same principle hue saturation brightness it's awesome then I also have another example of a struct vector 2 in which I use like all the time it's so weird that this doesn't exist so if you know vector 2 those are floats but vector 2 mint is exactly what it sounds like it since instead of floats and they really use this for every single grid based game like I don't know how this isn't like built into you know default math libraries I use it all the time it's great and that's in the code as well cool yes Oh game utils it's just a file that has a ton of utilities utility functions it's a static class that exists in all of my projects and it's got tons of common functions either like game agnostic but you would use frequently for like unity editing stuff like parenting and resetting and transform so instead of saying you know parent and then calling set position to 0 set rotation to 0 and set scale to 1 this does it all for you so you just say game utils dot parent and reset I'm transform passing the to game object so sizing sprite render by pixels we're the very changed me that that doesn't exist but this lets you do it I'm saying that UI the Alpha of a UI graphic so you just say game utils dot set you write graphic alpha um yeah thing is that I'm like I'm surprised no or not like a feature already but this it's just a library that lets you do them all so yeah so unity after they modified their particle system you have to like manually cache the particle emitted or it's it's like a whole thing anyway so this game excels we'll take care of it'll do in under the hood yeah so they gave me until will take care of that for you so if you want to change the emitter color or stuff like that particle system so and that's also in the code out there yeah i'll so yeah setting that editor camera position so there is a there's a function to call for that as well as like there's there's a function to call for the copy pasting things to the users clipboard but i always forget what it's called I always forget what the name of the function is it's like I don't remember on aside what it is it's like something like Universal Universal cache or something like that but it doesn't it's not the word clipboard kind of thing anyway so if I ever need to use that feature I like called call game utils dot copy to clipboard because I remember what that's called so that's like a little time-saving thing it just calls the other line of code it's just it calls another line of code but it camera but what that one is so that actually does give me a bunch of time and yeah we've also got set in the editors camera position which I used in bounce Meister which is very useful it says oh there's a bunch of stuff in there check out the code Matthew tells which is similar to game utils except you'll never guess the difference it's easy to guess so this has things are like math related or numbers or like related to primitives so returning a random bool and so instead of having to say random 0 to 1 if that's less than 0.5 that's a random pool so they just called math utils dot random pool and also can merge two rectangles things like that I've got a lot a lot of rectangle functions in there rounding something to a specific amount of decimal places and doing that doing sorely yeah this is weird vector to doesn't have these features built-in like absolute values Max and mins of vector twos but this what you do with them so if he needs like absolute value a vector - so that's all also in the code they're useful stuff so to wrap things up one global piece of advice I would say avoid generalizing I alluded to this earlier like it might be tempting to make a tool that you want to repurpose for other things don't make it specific to your gaming I've got tools specific to your game I mean the map editor for line light like extremely specific to line light and it did exactly what I needed to do and I was able to take that code and with only a couple of hours of dev time make it so that I could use that for bounce my sister the other who came anyway then I needed a similar feature making them global it's it's just not gonna be worth it just got there and it's okay the tools feel unfinished and like incomplete that's totally fine your tools I guess will probably feel about as finished as your games feel like does your game ever feel finished it's like there's always more stuff that you can do so that's totally fine get used to it and it's certainly okay to make mistakes I do it all the time yeah that's just learning part of life yeah other points so good tools are designed to keep the designer in a flow state sort of keeping them in the group so it's not just about saving time all that obviously matters a lot to you so it's sort of about both of them my advice again look at your process critically to see if you're wasting time you know if your efficiency fuel or if you're if you're easygoing maybe you're wasting time by like waiting or doing a lot of repeating actions take a look at that yeah I noticed that I was like with even just the color 255 adding that saved me that little bit of time or if your efficiency fueled if you like want to make things the mode that you think of them maybe back off and hack it in first yeah if any actions perfect opportunity for tool but if you're trigger-happy to add tools try knocking it in next time step also it's a great it's great to leverage your programmers enthusiasm an interest because there were things that I I would leverage on my on my own things that I wanted to make and it was a lot easier to make them and I was able to make them actually more quickly so that's just like that's a it's not even unique to tools this is sort of just like a general piece of advice I guess on the team if the programmer wants to do something that's don't necessarily do it because they want to do it Billy it's a good reason if they're interested in it leveraging that interest is actually it's beneficial happy teams yeah that's what you're awesome yeah yeah so that's my talk thank you so much for your time again we got the link of things there it is of code unity shortcuts I'm Brett Taylor you can email me if you want got questions concerns other things to say bread it my dogs are to come tweet me that's it yeah thanks watching my talk all this we'll see you later not yes
Info
Channel: GDC
Views: 17,550
Rating: undefined out of 5
Keywords: gdc, talk, panel, game, games, gaming, development, hd, design
Id: _mbOM06A5sA
Channel Id: undefined
Length: 40min 5sec (2405 seconds)
Published: Tue Apr 28 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.