Game Dev Show #21 - Is the 10x Developer Real?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hopefully that's okay with everybody we're going to start things off a little bit different than usual instead of diving in and just talking about a couple things that we were interested in we wanted to start off with a couple questions from the audience go ahead and just let people ask questions see what what comes up and not save that until the end and then we've got a couple interesting topics that we want to dive into after that so first just yeah hello welcome everybody don't forget to hit the thumbs up button and subscribe and check out all the links and stuff down below and start asking any questions that you guys happen to have and hey jason and andrew thanks everybody for being here and i don't know if you guys want to say hello to everybody as well hello to everybody as well oh that was nice and quiet did you lose all your volume there andrew was it quiet yeah you've gone very quiet all of a sudden he's disappeared so hello james he was totally fine right before we started yeah if you guys have any just unity questions game dev questions in the chat um feel free to drop them in and then if not we'll jump into a bunch of other stuff but i assume that there are a couple of things i just want to make sure that people got a chance to ask those right away and we could get into them all right andrew or is your voice back let me see is it is my nose still sounds silent yeah oh yeah i hear you yeah i can't have um another application open at the same time apparently it messes with the audio oh i i know what you've got so this is actually while we're waiting for questions to roll in here's something to keep an eye on if you're using a communication device in windows often they do this thing called ducking so it's basically the idea that if you have system sounds versus your chat sounds it tries to favor one over the other so there's a good chance that's what's happening so if you go into your sound settings option so if you uh oh again you're you're on mac sorry but it might be something similar i just i was scheduling a live chat for later today um and i had uh my ecamm live open so my guess is it was somehow co-opting my microphone and i have another microphone set for that but who knows who knows i have to say it always throws me for a loop i'm always like the minute there's a technical issue i'm like ah okay so here's how it happens and then it's like always forget none of that applies to you yeah okay the issue here you got a mac yeah i just reboot every time something goes wrong now so the first question already came in so for smaller games would one scene make sense what do you guys think i think generally yes a lot of the time if the game is small enough having it in a single scene handles everything if if the entirety of restarting your game is just reloading that scene and that means your game is reloaded and done um then definitely um that means like title screen score screen everything yeah yeah i would say sometimes it's actually easier to do it that way i mean the the truth is right it's it's kind of one of those ones where this answers every similar style question the whole point of any of these things multi scenes or single scenes you can go into the nitty nitty-gritty about performance and all that stuff but the truth is it's about workflow and as long as something isn't painful to work with it's fine the reason why you migrate from any version of a pattern or architecture or system to another is because the first way is a pain in the ass right at some point it starts to become harder to work with or it causes more issues than it does help and if you've got a small project and everything can just fit in a scene and you can turn on and off a game object that represents a title screen go for it it's just it might hit a point where the scene starts to get messy or there's too many things or you're getting events issues because you've got multiple stuff once that happens then you can stop and ask yourself hang on a second what if i split up the levels from all the menu stuff suddenly that's easier to work with if it's not easier to work with don't do it right it's the entire point is if it helps you it doesn't help you then don't do it i think that was a a perfect explanation there so book recommendations clean code or code complete that's tough one i think i would generally go with clean code but i really liked some chapters and code complete too it's been so long though that now they kind of blend together for me as a book too so it makes it a little bit harder so i i i got a i got a hot take from someone else who gave me this advice which i used to i used to say the same i'd recommend both and somebody said have you read code complete again recently and i said no i read it a while long time ago i haven't read it in a while and they said go back and just reread it and it is a good book but it's also a bit dated in terms of the references and stuff that it uses and it's one of those things where it might actually be harder to teach somebody with because it's not as um it's hard to get into as opposed to a lot of more modern books that are that will be applied kind of designed around what the technologies look like now so i would say um on on someone else's advice that they suggested stick with other books like clean code because they're for lack of a better word timeless so i would say if you're looking for something that will guarantee to add you value as a programmer and will apply to what you're doing regardless of what you're doing clean code pretty much fits the bill it's the most universally every dev should read programming book in my opinion specifically because it doesn't talk about code specifically it talks about writing good concept the concept of good code conceptually regardless of where you are or who you're with or what the project is it's just how to make code better and how to work with it better so i think that's the most universally valuable book it's good i should go back through them again too i think that something i haven't done in quite a long time so i think that's good advice hey i'm gonna stick with the your recommendation there i like that so somebody that you'd talk to just recommended that after going through them again yeah yeah yeah i also had the same problem where i recommended some other course to somebody and they they said they tried it but it was suddenly using like winform stuff and they got very confused and it was like i had to stop and reevaluate the resources i give people because a lot of the books and things that i read again we're talking like 8 10 12 years ago so some of this stuff while it was perfectly fine and representative at the time some of it may not be as relevant now now again the principles are always the same if you're willing to look past that it's perfectly fine the example i've used before is i read a book on ai that's written in c plus before i ever learned anything with c plus plus and i could still read it fine because at the end of the day you're learning about the principles and the code is just simple snippets of examples so i wouldn't worry too much but if you are trying to follow along some of the older books might be using visual studio 2005 or something and you might end up finding yourself getting a bit lost with certain things so um as a rule i'm trying to find more up-to-date resources that go forward and if i have if i'm going to recommend a book i'd rather it be something that that is more up-to-date or timeless for example i only found out recently enough that there is actually a version of headfirst design patterns that's a c-sharp more modern 2020 edition or something and i never read that one the one i have is this the older the one i had um so i'm kind of tempted to check that one out too and see if it's a better i recommend that one now anyway but i should probably read it and see if it's changed much yeah i have to check that one at me curious so there was another question about manage or to practice project management skills um now i am far from a good project manager i think it's like one of my biggest weaknesses so i'm kind of curious um what you guys think on this one that you both are probably much better at managing projects and just teams in general like i've got my own workflow but it's a bit of a sloppy mess i'm curious what you guys think for for me it's it's practice um is the key word there like i have to i know it's better to stay on top of myself and keep myself organized and on track but i also know that you know largely i don't necessarily have to so sometimes you just forget to go back to that tracker and click a few buttons or type in that little thing you did today that oh today you think it's not that big of a deal but you know three weeks from now you've forgotten about it so i i i have to force myself to constantly um do project management rather than just do the project right and force myself to go online we you know infinity pbr we use an air table to keep track of what everyone's working on and i you know we have a little section where we put our who we are our the date and what our comment is and making sure to do that all the time and to always make sure the right person is tagged and all that stuff it takes time and sometimes it's like it's just a small thing but you know in the end it it keeps us organized three weeks from now i think is is the best way to to explain the benefit that i get from it uh it's not necessarily about today it's about tomorrow and when i forgotten everything that i did this is the way you use an air table yeah air table i use it at the day job so i i already knew how to use it and there's a free a free tier as they often have and so uh literally it's just tagging people and organizing different you know one one row per project and uh you know there's uploads so people can upload files you can link to you know examples or or upload examples um you can tag people there's cross collaboration so if somebody some like someone who's doing unreal um uh uh migration for some of my assets can tag the animator and talk about animation stuff on the side which is great because that means i don't have to connect them directly which is why i used to have to do they can just start talking to each other because they know they exist and even though they've never met and it's it's been it's been helpful for sure um keeping keeping everyone abreast of what's going on and also keeping me uh away from having to you know daily the micromanage the interactions because it's every everything's on there rather than having me uh handle it which is nice yes you kind of like automated away some of that project management yeah yeah delegate it away i suppose delegates to the people who really should should i mean they that's their role anyways to manage their own projects so it helps them do that as well um i i would say for a lot of people um it's so um andrew's got the the the scale of an actual company or like you've got people you people work with but i would say if if we if we bring it back down to the level of the average person people are terrible at managing their time just in general there's two people are really really bad at it and one of the biggest problems is people don't realize that one thing you touched on that's perfectly accurate is project management is a job in and of itself you actually have to engage with it as a task you can't just it's not like a magical tool that will make you organized you have to keep your brain on a portion of it on the process of managing a project and so my biggest bit of advice to people is that it's the it's about the process not the tools it's very easy to fall into the category if i find the perfect tool it'll keep me organized um but it wasn't until i read uh getting things done that i stopped and realized it was so weird to me reading a book on how to get organized that didn't talk about any tool in particular i was like how does even entire book on getting organized and he doesn't like talk about evernote or talk about whatever and he has an entire section where he actively says i'm not going to recommend the tool to you because that doesn't matter what matters is the process with which you deal with tasks and that really made me think and um the thing i would say is if you want to get organized if you're like me at least you'll be distracted by shiny new tools regularly and so if you go down that road you'll never be organized because you keep focusing whatever the new toy is and you'll try to learn it and then it'll be too many things you'll get confused you'll get annoyed and you'll stop using it what you want to do if you truly truly want to get something done and you have to be really clear about this there's a difference between it would be nice if i was more organized dot dot dot versus here is a task i want it done i have two months i want it done in two months if you are truly trying to get something done the way you do it is you get a stack of sticky notes and you put it on your desk and then you figure out what is the task i'm trying to do which steps needs to get to be done to get it done which steps needs to be done today to get it done and then you write down each task on the sticky note as an actual actionable task you don't write something like make the health bar you would say create the health ui you know or create the canvas with the health on it or something like that you'd be very specific about what you're doing and you break it into steps and then you do each one and you stick it on your wall as to do and when it's done you move it over to done and you just do that and what happens is over the course of time you'll end up literally taking away each step needs to be done and then on the wall you'll have a nice big list of completed parts of that project and so the tools don't matter um try to try to distill it down now i would say though if you're new to this physical over digital is better because it's so much easier to just close a tab you'll it's easy to just not think about it if you literally have a big board on your wall or you have something on your desk that's an ongoing thing of like moving objects it's so much easier to engage with it's more satisfying to like move a thing once you've finished the task and it's very hard to get it out of your head in my case i suck it up on my wall nice big i come in i go get a coffee or go to the bathroom i'd come back and it would be staring me in the face i couldn't get away from it it was the thing i am doing and i would move it across as i would go um in short project management is an active ongoing process and if you genuinely want to get something done you have to turn your brain towards it you have to tell yourself um ask yourself at any one time is what i'm doing working towards my project so you say i am trying to make this game right now i am working on the health system to get the health system done i need a health bar i'm working on the health bar that's what i'm sitting down and doing there's no distractions nothing else i'm working on a health bar the way to do it is step a step b step c and you go through it and you don't allow yourself to go go off on a tangent you work through it in the steps that need to get done so you'll find though this may sound very daunting and if to a degree boring but i'll be honest it's once you get started it's it's so easy to flow through one to the other because you start that there's you build up momentum and you start having this like massive velocity of powering through projects uh you'll be exhausted afterwards but the point is you'll get a lot more done than you think you will because there's it's so easy when you sit down and you know what your task is it's so easy to do the reason why a lot of people have trouble with project management is because they sit down and vaguely know they want to make a thing that does some stuff and then half of that time is spent meandering and googling and kind of maybe i'll change the colors of this and i'll get a list of these things and that'll be nice and i'll draw some ideas and they're not getting worked on what they're doing is they're thinking about the idea of maybe potentially doing some work and if you sit down in advance and say i need an x the next step is y i am doing y y is done what's next step you'll get it done really fast you'll be surprised how much time you actually have you just have to engage your brain in that process yeah just sitting down with the actual tasks planned out it does make a huge difference i i like just the advice too that the tool really doesn't matter and using paper is i say one of the best options it's the easiest i mean when you're not collaborating when you're collaborating that's when the tools start to become a lot more valuable because you want to share that stuff but when you're just working by yourself or you're in an office or something just having it up on a board is really really handy and really great um i totally agree and i think that i don't have anything else to add i don't know can you tell can you tell i do this for a living i consult people on how to get how to do their project management right this is something i know i've done a lot of this stuff project management's a tough one it is it is i would say one of the biggest issues that people uh mistake with project management is they write daunting tasks it's so easy to write on your to-do list clean house and you've got this like piss in your stomach of ugh i have to clean the house that is like i don't get the reward of checking that off until i've spent five hours of going through nebulous tasks of does it doing the laundry counters cleaning part of the house or what about the dishes and where does where is the line of this and am i done yet that's the hardest part when can you say you're done cleaning the house like what is the mark when you've literally polished everything in that no that doesn't work because your brain is going you're just going to be constantly depressed at the process of doing that what you need to do is give yourself easier wins do the dishes or wash the dishes dry the dishes put the dishes away it may sound tedious but if you write out three tasks you get three rewards you get to do three things at the end of the day you will as weird as it sounds you will mark how productive you were based on how many check boxes you hit and it's kind of silly but the more check boxes you give yourself the better you'll feel about it the more you'll want to keep doing it and the more check boxes you'll actually get done so writing these really specific detailed tasks um like again if i'm cleaning my office i will specifically say clean the table to my right organize the shelves behind me you know empty the bin these are all individual tasks and that way i will have a very detailed completed list of done things when we jump into a code one though like so say we're doing the same kind of thing in code um or like with a code project and what's the the size that you like realistically try to break them down into because i mean if you get too low obviously you know you'd be writing out a checklist for every single method that you're going to create you're going to end up getting burned out of writing things out i'd say about 10-15 minutes of coding roughly 10-15 minutes okay okay i was thinking for me it's usually like a half hour to two hours i was kind of curious where you were on that block 15. because what because i think i think i think we do the same thing i just think it's down for example i um because i'm again i've taken the course i've literally watched you structure out the things the only difference is um you'd have something like you'd have the the notes of building a quest system and then you'd mark the different parts of that going um you know make the ui for the quest system hook it up do this persistent for the quest system each one of those yeah and all i would do is i would then stop at one of those and i would say this has three parts to it or two parts to it and i would just i would make some bullet points and then break them down further yeah the difference is i think again the subtle difference is is it a thing that you wish existed or is it a thing that you have to do and i think that's that's the trick the the name for it in getting things done is next actionable action like if you write build health system or do quest system what is the next action on that the thing is right there's a secret problem with writing make quest system on the to-do list in that the first action you have to do on that is figure out what the first action you have to do is you know what i mean right it's like design right design system is number one but my point is like you have to figure out if design system is the first you know what i mean like my point is if you just have make quest system what is the first step is it open the project is it do the quest you know what i mean you don't even know what the very first step is you have to sit and think about it it is probably design system but my point is if the name of the task isn't an action you have to very first thing you do when you're ready to do item is to figure out what the first action is oh yeah if you write it down as an action which is design x then the very first thing you're doing is you look at it and you have to do an action and you find it's a small thing but there's a mental cost in in resolving the difference between a requirement and the task you're trying to do so um i basically say what is the how i go down my chain until i end up with actions like individual actions that i'm performing that's that's kind of as far as i go yeah i think that makes a lot of sense though i i i breaking it down just somewhere and getting into those levels i think a lot of people don't do that at all they just kind of keep it at that high level of build it like that build a quest system like that's the whole goal and then it's not an easily attainable achievable simple thing like i i still kind of follow the simple smart goals right like making them specific and actionable and manageable or whatever the other ones were measurable and attainable is the main one i want to make sure that everything that i'm targeting like each little step is something that i can get done in the amount of time that i've allotted to get it done in um so i'm not not able to do things and i get stuff done the problem is though because this is i'm probably getting into the nitty gritty on this because it's an interesting topic for me it's something i do a lot is if you're a manager if you're like so so let's just take a small step out of you personally managing your time if you are a manager of managing other people's time you're you're in a kind of tougher position because you have to try to make sure people are uh efficient and doing their work and it's it's like it's very hard to be like that guy who's like being you know structurally mean about people's time but if you're being analytical about this let's be honest the biggest cost of time per day is people messing about on the internet it's what we all do right we we search reddit we look at web comics we browse youtube we just do stuff that doesn't work or if it's not if it's not general hobbies it might just be um i decided for this test i want to make like a little environment so i want a tree for my demo project i'm doing right now and suddenly you blink and you've wasted 45 minutes searching the asset stores for trees when that's not actually relevant to what you're doing it's just a fun way to distract yourself from what you're doing and if you're a manager of people and trying to stop people doing this the way you do that is you don't allow this nebulous time if the task is build selection system and they can tell themselves part of build the selection system is you know finding some fun objects to select then that's easy to distract yourself with useless not very valuable effort if the task is write code that makes selection system turn object on and off then there's no room or time to go and find a tree a cube will do if the next one is make selectable object change color then there's no room or time to do the next thing every task follows cleanly from one to the other and if you do want to say get a tree that does x you have to mark it down make a task go do that and that way it's not it's not falling in as like extra time and wasted effort it is becoming part of the process and that that accounting for each task is how you make sure people are organized you have to actually uh annotate and work across different tasks because this is getting into like really nitty-gritty here and stuff too that's also why you want to have very quiet very fast build cycles in your projects people think it's it's annoying it's more than annoying if your project takes five minutes to build what happens is as your project builds you'll go on youtube you will start looking at videos and then we're going to start talking to the other developers that are in the middle of coding and distracting them and having them too yeah and if you see if you start doing that if you for example you're doing a build that should take five minutes like literally the timer will take five minutes and the build will stop you'll start a conversation with your friend beside you going have you seen that new show and you will have a 25 minute conversation about some show so that five minutes of build time actually costs the company 25 minutes now again this may seem very because there's two people yeah exactly yeah so it may be very clinical and analytical to look at this but if you're if you're genuinely talking about getting things done you have to do that you have to be very fair about the fact that time is money if it's even if it's your own time and your own money and so if that's the case there's a big mind shift switch between getting things done properly like actually trying to versus it would be nice if i was more organized dot dot dot if you just want to be kind of more organized there are ways to do it but if you want to project manage and actually manage the project you have to start looking at this as what are my time sinks what are the things that waste time that don't need to waste time and faster build cycles giving yourself quick ways to test iterating your projects writing down actionable tasks you don't have to think about what they're doing planning far enough ahead but just enough that you have each day ready you don't have to sit and think about it having a lot of time so 10 minutes in the morning to plan stuff and then you have a structured day until the end of that day these kinds of things are like they compound to the point that they don't just say five minutes here or two minutes there you will you will be like more than five to ten times more performant just because you're actively engaged in the process of getting something done so it's it's there's a lot of really nuanced stuff here but it really comes down to you have to start respecting time and project management so what i what i'm hearing is that i should have more than the one sticky on my wall that says make game yes good good okay make game sell again don't forget please and step three retire and go to space yeah i think um you're just you're talking about the productivity of having the specific actions it's easy to reproduce and see too if you ever just take it today and go through if you've got like a big backlog of bugs he goes through somewhere and you just take a look at those and you start knocking those out and you know exactly what to do you'll see how much less of that time you end up wasting like or how much less you get distracted and you can just kind of like blow through them all because you know exactly what the next one is like i got that one damn check check check checking and you're going through them getting faster assuming that they're you know not the kind of bug where you're stuck last going for days but you get all the low hanging ones and you start knocking those out and you'll see that i think you get kind of in that same workflow and that that same pattern oh although the other thing too here's here's another small tip as well again i hate doing this but that's kind of the point it's the most performant the best way to do it is there's a concept called eat that frog and it's it's the idea that it's um there's there's always some task you don't want to do some tediously horrible part of the process that's either like configuring unity when it's broken or finding some bug that's an issue for you or going through like setting up uh the android sdk stuff if it's not working some horribly annoying some fiddly problem you have to do and you'll try and put that off as much as possible and that's fine and you'll you'll go for the more fun easy low-hanging fruit because it's satisfying but what you're doing is you're not getting rid of the problem you're pushing it down the track until when at the start of the day you have the most amount of energy and positivity to get things done by the end of the day you're kind of worn out and feeling like crap anyway and then asking yourself to do the hardest task then you're not going to do it you're going to put it off till the next day and it'll just keep going like that and so what you want to do is if there's a horrible task you don't want to do do that first because what you'll do is once it's done you'll have this breath of fresh air you'll have this hard thing done you can now enjoy the rest of the process on top of that it's just by doing that harder task what you don't realize is it's even if you're not doing it it's in your brain right it's kind of like everyone knows this you gotta report you or something and then you go and play games or take a break and do something else it's in the back of your head the whole time you keep saying you should be doing this you should be doing this like and it kind of taints whatever it is you're doing like it takes some of the fun out of it also like there is a portion of your brain's mental energy always focus on the thing you're not doing and if you just do it as much as you don't want to can you get 100 of your brain power back to work on everything else you're doing so again i hate doing it myself and i often don't i often will do the do the the fun easy thing and distract myself and go i have a hard project to do let's go do the dishes instead because that's nice quick easy and i can feel good about myself everyone does that but my point is if you are being very earnest about like this money on the line or i'm actually trying to make this for a living or this could be my future you have to sit back and look at yourself and ask when you're doing this as a distraction and if you want to get it done eat that frog yeah i would generally recommend the same i try to do all the the hardest things as early as possible whatever i have to do that's like the most important or the most uh mentally exhausting try to knock that stuff out as early as possible because otherwise yeah i'm i'm way worse and then it just sits on you all day right it's like a cloud over everything else and once it's done it makes everything else a lot easier too as soon as you get whatever the hard thing is yeah did you don't want to do that there's one other thing i think that that might uh relate to folks um who are anything like me that every once in a while it might be a good idea to delete steam from your computer uh when you when you you know everybody has that that one thing that they get addicted to that they can't stop playing and sometimes what you need is to remove the ability to easily open up the distraction that you keep going back to in order to force yourself to get through that frog or the series of frogs that you're done you know and get back into the rhythm of things so that you can go ahead and keep and keep going i i literally uninstalled battlenet for four months for that exact reason i do the same thing all the time deleting shortcuts uninstalling games yeah as soon as it becomes a problem otherwise it's too hard to just instinctively sit down and start playing so i'm gonna go through a couple questions somewhat quicker um since we had a ton of them come in uh we had one was is pixel art worth it i'm not sure what worth it means but um it's a lot of work for a game i mean if you really want to make pixel art game it's worth it i guess but making it i don't know that there's a lot of money in making pixel art like as a pixel artist but i don't really know i don't know if you guys know anything about pixlr what about andrew any thoughts on pixel art i know nothing about making it um it's not my style that you know i know that as a player i'll go on my phone and look at new games and they look really cool but then i look at i open up the game like the the previews and it's all pixelated and i'm like ah no leave i'm not into that but well it's actually something that thomas bruce said i think is a very good point on this he said that if you're doing uh 2d in general you have to it's a lot harder to source assets and stuff you to make them yourself it's a lot more time consuming from an art perspective if you're doing 3d mostly you can you can get a model or or pay someone to make you one and then you have that you don't have to make 500 variations if you want the new attack animation go to miximo you don't have to like have someone make by hand a whole new animation so if you if you're new it's probably a better option to try and go either 3d or 2.5 d or something instead pixel art is very pretty but i would say honestly unless you have a dedicated artist doing stuff for you it's probably going to be harder for you as a new game dev to get very far with that yeah makes sense so what do you think of using 360 photo panorama images developing unity games and do you know of any good tutorials and examples so what do you guys do this i've done this a couple times in the past for um vr games specifically and in there i thought it kind of made sense outside of a vr game i'm not sure outside of using it for like the skybox what i would want to use a 360 panorama before unless there were maybe some sort of specific game where it really made sense like you're supposed to be standing there but what i don't know you guys any thoughts on this one um i do this a lot actually um this is one of those things i thought you might yeah it's one of those client work things which um it actually has a lot of surprise utility so for example there's actual platforms out there where you can upload a series of 360 panoramas and it will generate a web-based player in html5 canvas that lets you navigate through and sort of click the screen and go to different spaces and so what we've done is if you've got a 360 application say a vr application and your client wants to be able to let people who don't have a vr headset try it you can actually just go through your own experience and take 360 panoramas of your unity project and then make a web version that's like a walking 360 demo of the experience and that's a really nice value add to a client to kind of say hey for an extra couple thousand we can give you a thing which is a web version of your entire application that will you know let clients view through it without having to um have the hall of your headset in reagan whatever there's a lot of cases where you can save that a performance too where you can build up a cool 3d experience save the 360 image and sometimes if we're doing a version of a project where we're migrating from a vive version or some some you know some large pc based vr version and you people want to see it on a google cardboard or some variant of it you can make a 360 panorama of the experience and then have that as the low resolution build it's not as fun it's not as interactive you don't get as much stereoscopy you do get some people think people think it's just flat it isn't you can actually take a stereoscopic 360 panorama if you know what you're doing but it's just not going to be as engaging obviously because it is still just a video but i would say to our surprise there's been a lot of utility in using it as like the lighter weight version of a larger project and so i'd i wouldn't think of it as a panorama as a tool for unity i would say it's a great way of having a um an alternate you can use it in unity as a way of capturing 360 versions of your project you know what i mean like it's not i would i don't use it as much as part of unity i use it as a this is a unity build or i can take a 360 panorama of the unity experience in as a virtual camera and i can make a different build that's that project in a lightweight panoramic version and that that lets you sort of double dip on the project yeah i thought you might use that a lot and and have some some interesting insight into that there's a i wish i could remember the name of it there's some really cool web tool um that the artist on my team uses that he basically uploads all the panoramas and it just makes a navigatable experience uh we've used it for a few things if i if i can find it before the end of the stream i'll post okay cool yeah i wish that dave was around he he uh built something like that too i'm sure he'd love to just talk about that so i was gonna hit a couple more of these questions first though i wanted to make sure that everybody who hasn't already hit the like button hits it i gotta bring in i got this uh shiny silver thumbs up that i need to put in the background so i'm just like i don't know where it has a hat or something so everybody remembers um but yeah go ahead please hit the button and if you haven't already it does help a lot and if you've got more questions drop them in chat and we'll try to go through a couple more of these and the next one was just about did we already talk about 10x developer stuff we didn't yet i don't know if we're quite ready to jump into that or you want to oh sure we should hit a few more questions first and then we'll jump back into that so no just hang around and uh we'll get into that a little bit later so but hit thumbs up and be ready for it so do you how do you know when you have too many managers in your game this is a an interesting and very open-ended question i thought was kind of fun too though so after going through that rts engine it's interesting seeing how they've got everything set up because they're their engine essentially like everything is a manager every different system has a manager for it that has some level of settings on it which is a but it runs into the issue of like customization is a little bit confusing trying to figure out where things go but it's not it's not actually too complicated or too bad so i thought when i first saw it i was gonna just dislike it because there were so many but it actually seemed relatively reasonable after playing around with it a little bit so with this for me i don't i don't know like how to real i don't know what the best way to recognize this is how do you recognize that you've got too many managers for me usually like i don't like go out and instinctively create managers like just go start making managers for things that just kind of slowly start to appear to manage different systems of the game um but oh yeah you got have any thoughts on just like an easy way to recognize this like a quick tip on it i don't know off the top of my head i would think when if if you know i haven't faced this myself necessarily i think but when you start needing managers to manage your managers many yeah i can imagine like managers do really good at keeping siloed information you know quick and easy and efficient but if it gets to the point where suddenly like oh but now these managers need to talk to each other and do this so i need a manager to control that and organize all that then maybe maybe that's when it's starting to get unruly when they become like mid-level managers all right yeah no no wants to be a mid-level manager right there you got like a hierarchy there oh yeah that's always good nested version of it um so again i'm gonna i'm gonna be obtuse like usual and give a very kind of heart it's hard to explain answer um i used to have this problem a lot which is um i i've said before i used to sit and really think about how to solve these problems because to me there's like there's an instinctive point where it feels off having thing manager other thing manager it feels icky it feels like you're making a mistake you're doing something wrong and there's a lot of scenarios where i would sit down and i would literally spend hours and hours and hours drawing uml diagrams and charts and trying to come up with the ideal hypothetical super perfect architecture like just the right amount of abstraction layers and everything's perfect and i would like stress myself out to the point that i would be like genuinely physically ill trying to figure out correct answers to stuff because i felt like this shouldn't be this complicated there should be right answers somewhere and i can't i can't remember when it happened but there was a certain point in my career where my entire philosophy of design changed and i now find all of these questions instinctively super easy because of something very very simple which is a question like that is implying that there's like a number like a right number of managers or correct system or correct architecture but again this may seem like a really obvious thing but it's it's really not like if you sit and think about what i'm saying here this might change your mind a lot it completely changed mine is the correct amount of code in your project is the code required to do the job you're doing in other words the correct amount of managers is the amount of managers you need now this may sound really weird but what i mean is rather than trying to solve the answer as some sort of like integration equation of whatever if you only ever write code you need i need a thing to do x so i write exactly the code to do x nothing more nothing less and you keep doing this whenever you look at your code and say is it too many managers the answer is probably going to be no because literally every one of them is being used to do something that's literally required in the project because every line of code written contributes to the project now could you refactor it and make changes and sure but the only time you ever have too many managers is when you start making managers for problems you don't have if you've got one audio clip or five audio clips that are playing sound and you create a manager to manage some sort of abstracted audio system then that's one too many managers because you're not using it there's no value for it so it's not about a number it's about what it does and so the truth is and this goes backwards before one do you enjoy using your code and two is it easy to work with and so it's it's really easy now for me i don't know about everyone else but like i've hit this moment where i realize i write code that is fun and clean easy to work with and if all of a sudden it stops becoming clean and easy to work with i stop i ask what would make it easy to work with and i make that and just that and i keep doing this so if you if you start putting if you start dragging stuff into an array and you're like ah this won't scale well as soon as i have when i paste this five times to five more uh npcs i'll have to do this 100 times you've established a problem how could you make it easier move it on to one thing reference the one thing problem solve like you if you solve these little problems as they come up then you never get into this question right so it's it's again i can't give you a direct answer i don't know like specifically when that switch clicked in my head but i will say philosophically that all those questions should i use x um for persistence should i use these managers how many is the right number what's the correct names for these things almost every single one of those questions can be answered with write code you enjoy keep it simple if you hit a problem stop evaluate why it's a problem make something small that fixes it and keep going and then it's very very hard for there to be any problems with your code because it's going to be naturally growing in the right direction it's yeah it's i don't know if that's any help but that's like it fundamentally changed my perception i think it's perfect help i mean the main thing they're just being like not terrific code you don't need right it's it's hard hard to resist and people get into are to do kind of out of that desire to make stuff like more stuff you need to make a full system to do this thing and a lot of time you know keeping it simple is it's always the correct answer this next question is a lot easier any suggestions for naming a specific type of a game like an adventure game naming naming stuff is impossible for me so when you're naming a game i i just ask people and then i could come up with bad ideas what about you guys naming a an actual game so this isn't like code naming if we're talking about code conventions and code naming i could get all over that but naming the game no what do you got i i named my game a while years ago when i first started like thinking of it uh before i got busy with the day job i was like i'm gonna make this new next game i'm gonna get the url the quest heroes and it's gonna be great it's gonna be amazing it's kind of a vague name the quest and heroes it's exciting it leaves it open and and then uh at like a year later there was an ios game with the exact same name and so uh i still have the url but now i have legend of the stones that was not taken as far as i can tell on steam nobody go make a game on steam with that name don't don't do that to me but uh i for me it's just it's just you know thinking like what sounds cool you know and what to me and this is very subjective i would i would guess i like vague names i like names that make make you wonder you know what's what's happening next and for for a genre specific game you know a fantasy rpg legend of the stones seems like ooh what's the stones and you can imagine what the art might look like on the cover box and and it's you know it it's it speaks to me in in the genre of the game um but all i thought was what's cool and then i i played around with a bunch of different things looked for a url because to me that was important to have a website url that that worked and a game that wasn't taken by somebody else already so i think i think that's actually the secret answer is i think so again here's a small hot take every name for everything is usually pretty stupid if you stop and think about it take take any any large brand name coca cola say that ten times in your head and tell me it's not a stupid sounding series of syllables right but the thing is that here's the secret trick to naming anything once a name becomes popular because a product's popular it suddenly becomes a good name it doesn't matter the names even the dumbest names will become good hollow knight like that's just two words that doesn't mean anything that's not a particularly valuable or interesting name but once the game is good the name is good so as far as i'm concerned your goal to name anything is one thing make sure it's unique when people search for it that's all the names should really do so if you want to know how to name something type some random words into google and try to be the the least amount of responses come back and if you can be unique then that's a good name because as soon as you do a good job of making your project good it's now going to be easy to find so it doesn't matter just pick a name that's unique yeah and i'm terrible at naming stuff so i'm going to hit the next question ml api versus mirror i would probably recommend mirror right now because um everybody that i know uses mirror over ml api um and i don't know the status of the api stuff if that's gonna change or what's gonna happen with that but i don't know if you guys have any other suggestions or recommendations people in chat might also have some thoughts on that so if you do please just drop them in chat and answer that you guys have any other thoughts on that i think we're all kind of okay with using mirror photon or anything right yeah and also forget the job thumbs up go ahead yeah just whatever gets the job done i mean i don't again like too much of the discussion is focused on did i pick the right tool well pick a tool use it if it stops doing what you need switch tools you know yeah i switch and i think switching from those it's generally not too difficult to switch networking networking setups the hard part is depending on important yeah so any tips on debugging and writer i'm having a trouble with the namespace the editor namespace i'm not i don't know this is weird if you're having trouble with the name editor namespace in writer i don't know i i got nothing on this one i i would say probably what that error is unless i'm wrong but i'm guessing it probably means you're trying to build your project and you've referenced something that's an editor reference in the project i would say that that means in some script at the top it's saying unity editor if that's the case you can't do that you can't reference editor stuff in the build because what happens is when you build a project it'll try to bring in the entire editor with the build and you don't want to do that you don't want to include the editor in your build so if that is the error you're getting um you'll have to look into either commenting out that code or learn pre-processing directives and how they work um yeah as for debugging in writers or put it into an editor folder if it's actually an editor script because it's got the colon editor there if it's like a custom editor and it's in one of those editor subfolders it'll automatically only compile for the editor or you can use that the preprocessor if unity editor oh my guess is if it was an editor tool script it would be in the editor folder and there wouldn't be an error my guess is if they are getting an error it's probably because they're referencing asset database or something in a way they shouldn't so that's that's usually what that that could be the case yeah or they're referencing an editor script from something else um outside of there um and if you're looking for specific tips on writer debugging here's the thing actually and this is this kind of surprised me uh it was during your wednesday meeting last week uh we were talking about debugging and it occurred to me a lot of people don't actually realize that there is break points in the debugger right so what you can do if you're not familiar with this there's an option in the top right of writer which will say attach to unity editor and what that means is your editor is now going to run and be attached with the code and so if you hit the little um bug icon there's a little green bug you have now made a debug running build of that application that you can then listen to and so if you put breakpoints in your code so you'll have to look into this but breakpoints and debug with writer um your code will stop running when it hits that line of code so if you're looking to debug stuff that is extremely useful you can put a little break point on like one of the lines by hitting the red circle somewhere in one of the sides and then any time your code hits that line it'll stop and that makes it very easy you can then inspect all of the variables yep let's see it right now so here i've got a rider instance set up with an event that fires off whenever i place a building in this uh rts setup here let me um so i'll place the building real quick uh here let me show the other screen real quick what that looks like i'll place the building and then we'll go through and show that breakpoint because i do this all the time i debug and attach and stuff and look at things whenever i'm just not sure what i'm doing or i get a little bit confused or whatever i just want to take a look and see what the state of other people's code is so go in here click and place a building you can see my game screen now right click bam place and um that should have oh that would have hit off my break point i'm going to go back into writer though yeah make sure you're in debug sometimes i make the mistake of running it and not running it as a debug build well i just hadn't um i hadn't hit f5 so now we'll go back into writer so now i've got the break point added and by default if you just hit f5 it does the same attaching it it's going to auto attach to the instance that you opened up um writer with this only if you open up write or separately you have to pick the project but if you double click on a c-sharp script in unity to open it then you just hit f5 once you're in and it'll just put down here initializing the debug and then if i go back into unity and place an object so you guys can't see it but i'm just going to go place another building and it immediately stops right here jason was saying you can see a bunch of data and you can step in so i can hit what is it i want to make sure i don't hit a hotkey because my hotkeys are doing things so it's uh i just rested new icons there see on the on the bottom bar the step over and step-ins are there oh um wait oh okay these ones i never use these i normally use the hotkeys f10 and f11 but i always get scared when i'm recording or on a video because it'll pop up for another random thing like f10 stops recording in my video so i could get terrified to hit the hotkeys or so if i do like a step into which is f11 it'll actually go into the different methods first it's going to go into that terrain area one oh it's going into getting the position here i'll hit it yeah you have to do this you have to do a smart step into it to avoid that the completing code that's right arrow yeah hit shift f11 again the other thing i do a lot of time is i'll just go to paint square and i'll just add a break point there and hit f5 and let it go to the next break point that i want to stop at but here you can see we got data on all of the info here you can see the the call stack here so it went in right here i can click through the call stack and see where it was all called and this is all some of the stuff in the rts engine that was kind of auto calling so in update it called place building and went through this whole process before it got here and then i can see the data of my local variables and stuff too super super handy i always forget that people don't necessarily know that that exists and you can step through keep going through all the code and yeah run it and shift f5 to stop all right let's stop sharing my screen and another part of that another part of that too that's quite valuable is a lot of people don't realize you can also conditionally break point so if rather than just clicking the button to make a break point if you right click you can run a little condition on that and a good example of this is you could say when this kill counter if it's greater than five or if it hits seven or if health gets less than 50 and so you can actively put in a condition to say only do this under this condition which makes it like if you know a bug happens whenever your health gets to 10 do a specific check so you're not going to have to break point every time it'll only break point when that condition hits yeah that's a really handy one too here i've got it's the text is a little too small but i put in a check see if the center dot x is greater than 100 so that's one of the parameters here but yeah i've used that a lot of the time or finding like if the game object's name is that specific name if you want to find a very specific game object and just stop on that one can come in handy too all right let's see we had a bunch more questions uh i think because someone mentioned it as well yes as well as debug.log there's actually debug.break you can literally write a line of code that says break here on this code um i don't use it very often because why you do that one you can do it in the editor but sometimes it is useful if you're dead if you specifically want to say when you hit this line of code breakpoint that's the option you can do and a lot of time that's because you want to go inspect a bunch of the data the variables and the state of stuff and see what's going on or see what's going to happen after that for some reason we'll figure it out otherwise there's also one other one too just a small node there's a bunch of you can actually do the same thing with unity stuff too there's actually an ability for you to pause the editor um or to stop it running so editor application dot is playing if you just set that true or false it will start or stop the editor so sometimes you can pause as well so if sometimes if i'm doing a test and i want to check something like say my ui canvas isn't working correctly i will write a line of code that will actually pause the editor when a certain line is hit i don't want a breakpoint because that's going to check my code but i do want to pause the editor to see the state of the objects say your pooling system's not working correctly and objects are not appearing i would pause the editor so i can see the hierarchy at that exact moment prior to something happening and then people forget this there is a button in the top right that lets you step frame by frame you can actually do that in unity that's that third arrow the one on the right lets you step frame by frame through it so if you know something weird's about to happen you're destroying an object and a new one should be created you can tell the editor to pause just before the bad thing happens and then manually step through frame by frame and see what's happening so it's i don't need these very often but they're there as a tool you know yeah comes in handy when you can't figure out what's going on and something's happening too fast so here's a question about what you would recommend as a beginner for game programming practice so i generally recommend simple mobile games things that have a single mechanic like flappy bird i'm not even angry birds at first angry birds like the second and starting with simple stuff like flappy birds and simple tapping games and then slowly going up but staying with simple mobile games in general until you feel a little bit comfortable and then moving on but you guys have any other just game types you recommend or just stick with same mmo vrs and vr and mmo games yeah uh no i i actually wonder if it makes sense as a beginner like you know especially if you are thinking i want to make a large game like the game i really want to make i know is big and i shouldn't do it because i'm still learning would it make sense to focus on small games projects that kind of lead in that direction or to just say okay flappy bird is a great example of a simple game you can you can make or tetris somebody mentioned in the chat um you know even though if those have nothing to do with the game you really want to make is it better to focus on those classic games that you know well and so you know how to you know what it needs to replicate or to focus on you know maybe smaller projects or or other games that kind of lead you towards the game you want to make um my case i'm i'm a nihilist so i'll always say kill your darlings go go over the stephen king quote um the truth is whatever games in your head is specifically inspired most likely by a studio or a triple a larger than yourself and whatever dream is in your head i'm sorry but kill it for now you do not have the resources to make it and if you try to you will end up just you'll you'll end up with something that either isn't complete or broken or that you'll hate or you'll realize it's more complicated if if you don't believe me try to just make if you think if you think that you're you can make your game then making snakes should be trivial in comparison right so just make snake make it and i don't i don't mean just make snake is like make the mechanic work i mean from start to finish make snakes so that it has a ui it has sound effects it's published on a store it's got a scoreboard system it's persisted it's got all the stuff you could possibly want in a game like that it's got custom mechanics it's got levels of progression like make it a high level version of a really really simple game and if you don't find yourself getting tripped up on just that i would be amazed never mind trying to make the next big super space mmo whatever so i would say honestly like you just have like i forgot who said this quote it was it's really a really good one though they said that you got into whatever it is you're into so game development you got into game development because you've got good taste there are things you enjoy in game development that's why you got into it and so you're inspired to make things like the things you like but you don't have the skill that's just a fact you simply don't have the ability to make the things you want to make and so you only get that skill through trial and error and practice and effort and so it will take you literally thousands of thousands of hours to get to the point you can make things that you yourself wouldn't be inspired by um now that doesn't have to be a depressing thought that can be a challenge and the way you do that is you start by taking something small making it and then making it better and if you can learn how to make snake more fun than it already is that's a good starting point so i would say always pick the smallest thing and make it as good as you possibly can and then that gives you everything you need to move up one level so small but like careful steps it gives you those easy wins too because you've got a target and a goal and you know what's going to be fun at the end you you rebuild something that's fun so that you know the end result is fun and you don't build something go through all the effort and then realize it's also not fun and you don't like it and you kind of get let down and lose that motivation so yeah until you can build the thing you want i i work on the simple stuff um yeah small stuff like that just look at mobile games look at things that have a single mechanic at first there's only one thing that you do not like it's got an inventory system and upgrades and all this other crap super simple one mechanic game um and then start to build up from there there's a general recommendation there's a question about what makes the game go ahead oh there's because there's just so many levels of that too right like you make a very good point about making your game is one step making it fun is a whole other step making it interesting enough that people might want to download it is a whole other step dealing with bugs and issues that players will inevitably find is a whole other step there's stuff that you're not even considering um in terms of marketing or in terms of level design or in terms of style or ui design or dealing with cross-platform support there's going to be a million things that crop up that make this harder more complicated and require skills you don't have and if you if you keep hitting these they're just going to become more and more depressing to the point that you end up hating your own project but if you at least start small the amount of effort required to learn how to add steam integration to your snake game is going to be considerably less than adding steam integration to your giant multi-platform mmo right so at least if you learn these things in a smaller setting you can apply them later on to bigger projects so i'm not saying never make your dream game but you should already feel like making your dream game is 80 possible before you start but if you start now you'll keep coming across new chasms it's like trying to climb a mountain and a new mountain appears every 15 steps or it gets taller that's going to like ruin whatever motivation you have you need to pick something where you understand the scope of the problem or it's smaller than you think it is because it will grow anyway you know yeah even the small projects end up taking up more as soon as you start adding in everything else and i mean and one of those things like this question kind of dives into was what makes it a game good or what make for you guys what makes a good game like and i think that one of the things if you try to build your own stuff like you kind of mentioned we just talked about was that you're not going to have something that's fun to play and interesting and for me what makes the game good is that it's got like a fun addicting play loop or it's got interactions with other players that that i have fun with and that's pretty much it it's got to have just like a an interesting tight play loop where i can get better at it and use skill to kind of like improve at it or i guess the other alternative is new games will catch me with a really good story so i have like a really good narrative and just good storytelling and those are pretty much the the two things that um make a good game for me um i you know it's being able to level up through skill or um having that that engagement through a story or something i i used to really like games where i could grind on stuff a lot too but less so now i don't know yeah i like building things in in general and in a game similar i mean sure simcity was always the thing when i was younger civilization is my addictive game that i get addicted to um but rpgs where i'm building a character building a party those always speak to me uh you know i think i've talked before about playing games and then never actually finishing them because i want to start over again with a new party and build a new party before i even get halfway through the game uh so for me it's about it's about interesting uh combinations of things whatever the the game presents it's a puzzle and i can put it together in different ways to optimize it and come with a better or different outcome um and that that's i'm taking away all the other stuff whether it's a rpg or or simple civilization essentially it's you're given a bunch of blocks and your job is to make something a castle i mean minecraft is is a great example you're literally giving blocks and told to make stuff and that's why people love it and um so that that's that's what drives me uh and so when i'm making a game it's challenging because it's different to make a game that you like than to play find a game that you like i think and and so part of it is playing your own game and making sure you're not bored and that's that is is i think a key thing for for me whenever i'm making a project whether it's a small one or a bigger one if i'm getting bored playing it then it might not be fun yeah in my case i would say it's not even a specific type or style of game it's the three designs which unfortunately are the three hardest things to do in game development it is game design level design and sound design they're the three markers for me of the of quality for a game and to be more specific about this it's the idea that you could be the world's best programmer or the world's best artist and if you make a game that's gorgeous and has um you know well-written code but there's no fun gameplay loop it's crap like no one cares like you're not it's just a it's just a it could just be a video it doesn't really matter that it's a game um so i i think what a lot of people miss is the hardest part of game development is to make your game something people want to play and that is actually the design phase and so for me what makes a game good is do i want to play it and how do i want to play it well is it designed well and that's really really hard to learn how to do it's a whole different set of skills it's learning um how to design systemic loops how to manage player engagement it's learning how to um how to structure a level so that you give just the right amount of affordances that people know what they're doing but never feel like they're being dragged along um it's very very hard to make a good game um people can make a game but learning how to make a game that actually just clicks with people like everybody knows some games just immediately click with them and like it's hard to tell why you could have two nearly identical platformers but there's a reason why a lot of clone games just don't feel right it's not because they haven't got the mechanics down it's because they're missing what the actual core design was the thing that made it good um so for me it's design it's like i could tell when a game has thought put into it it's the same with like movie directing for example i was talking to somebody we were watching some really bad tv show it was called island which was really bad it's very very bad show it's on netflix recently um but what i was pointing out is even though the show is terrible there's some the person who's doing the uh directing at least knows their job because they're subtle things they're doing like for example if you've got two people talking one person standing up and one person sitting down uh when you when you're talking to the person who's standing up you tilt the camera up so the camera's coming from a low angle so it makes the person look taller and domineering but when you're talking to the other person you don't point the camera down because in general it makes people look small and it looks awkward on camera so the camera faces them head-on so there was two there's two side-by-side shots and even though you don't register it unless you're paying attention to the way that the video editing is done it goes from a straight on shot to a pointed up shot as opposed to up and down so there's like little directorial things uh cool the shop effect stuff i won't get the whole video editing as a whole topic but my point is there's a there's hall markers in design that shows people know what they're doing is there line of sight points of interest is there affordances in the right places are they using color theory to indicate what's poisonous versus not there's little indicators to to tell me from a design perspective that they are they they are trying to lead me in a direction for a good experience and i can and that to me is the marker same with audio like is the audio just there because there's a fight scene to put fight dramatic music or are they using the audio to do something is the audio building tension like is there a a big empty hallway and does the music build as i walk the hallway are they trying to build anticipation did they design a space so there's a long hallway before a fight scene so that i feel tension as i go towards it um are they if they're giving me a reward or something does the level design spiral upwards to imply progress as i go or if a place is meant to be dark and domineering does the level design spiral downwards to indicate that the place is getting deeper and darker into a pit that's why all these games that are like doom style they always have you going further and further deeper and deeper and all these games that are about achievement like celeste always have you going up and up and slowly and whatever so in general like there's i can't point to one thing because i'll play any game that's good so i guess the point is if if it's uh does it feel like the game is crafted with attention and care and and for me that's the design phase it doesn't matter how good your code or art or all that stuff it's are you actually like does this deserve to be a game or could it just be a movie or could it just be a good story you know there are some games out there that are great stories but they're painful to play or the other way around you know all right we've got tons and tons of questions so uh this one i hit real quick any chance the discord could get some love with roles levels um yeah yeah we'll do something in there to kind of manage that stuff more full-time too as not something i really have a lot of time for and then uh the ultimate bundle was great but you mentioned a free mug with the course um the mug stuff just for anybody that got in on that i'm still just waiting on the final test on it and then i'll be sending out the info for people to redeem them so if you signed up for that and got into that i'll send that out soon i just need to make sure that it's perfect before it actually goes out um but it'll be an email about that soon and then discord i want to figure something out and get somebody in there kind of manage things somewhat permanently and keep things uh perfect so i'll jump into that soon uh i'm making a dungeon slash rts oh wait this was not the question i meant to click on this was the question right below sorry one below so when should make a state machine behavior versus normal mono behaviors when making enemies or bosses so i thought this was kind of this the question here is more like when should i like just make some simple code on my bosses or npcs versus actually building out a full state machine type system and i think that your answer previously kind of hit on this stuff which is when it gets difficult with the simple solution so if you're simple inputs without a state machine it's easy to manage and you don't have to modify it you don't have to go in and add in a bunch of if statements every time you want to change something because the npc is simple enough then leave it that way if that gets to be a pain and problematic then the state machine is one of the many good ways to solve that problem and a small note on that too just when it comes to managers um i think a mistake a lot of people don't realize too is you can kind of cheat this a little bit so for example take audio some people look at audio and go i either have to put an audio clip in my script or i need to build an audio manager so i either have to do the really really quick one or the really convoluted build the giant system solution well what i do is i just do the very basics which is if i have an audio clip i put it in the file but if i if i know the audio is going to change say i've got test audio from a client and i'm going to give you real audio later i'll make a script called audio manager and i'll have a function called get clip and i'll type in the name of the clip but then i'll just return that one from that file dragged in from from an inspector so i've made it quote-unquote manager but it's not a real manager it doesn't do any of the magic managerial stuff all it does is it moves one layer of abstraction so now every script in the project uses the quote-unquote audio manager when the audio manager is just handing it the exact files it needs but it does it in a way that if i do decide to build an audio manager there's one place to do it so i would say when it comes to changing between the quick and the dirty solution you can put hooks in place early that's that's what i do is i will i look for something that's going to change and i put a hook in to support that change later to make my life easier i don't build it now because i don't need it now but i will put the hook in place so there is one place to build it when the time comes in that example you're kind of starting with like an audio repository right there's no functionality like it could just be a scriptable object at first before you extend it out to do more stuff and you can do that with any kind of data and swap them out so it's yeah another great solution the difference is rather than rather than using an audio clip i'd say get by name get me rather than saying this is the fire sound i'd say get fire sound that way when i change the fire sound there's one place to do it it's yeah exactly it's just a repository yeah that makes it makes a lot of sense an easy way to do that um so should we build a game mansion i want to click on this one no probably not unless you want to be an engine developer and that's like your goal is you want to build game engines then no if you want to build game engines then yes um i mean it's a fun project it's a fun thing to work on as like an academic thing in the learning project but if you want to do it for productivity it's very unlikely it's it's much more of a learning thing or a i want to be an engine developer outside of that i would generally not though my short answer to that is if you're asking i want to make a salad should i build a farm no you build a salad you want to build a farm build a farm but you don't build a farm if you want to make a salad right yeah just if you want to make farms so our code quality tool is a thing in the unity world are there any you would recommend i don't know if there are any that i use now um i can't think of anything that that i'm personally using if you're thinking about things like style cop and whatever honestly i don't even use those in enterprise i just don't think they're that valuable um your code editor does 90 of the work for you these days um and i traditionally try to follow conventions where possible so i just use whatever like there's a few things i change from personal preferences like i like screaming caps for consts and writer disagrees with me so i have to keep beating writer into shape and say no i am going to use my screaming caps for my consonants um but no i there's no there's no particular one i'd recommend i would say though a lot of what you're looking for you will find if you use writer writer will help you with a lot of the the so-called code quality stuff there's also plugins like a code complexity plug-in i use a lot and that tells me the cyclomatic complexity of the scripts i'm using and helps me get to the right answers on things um but there's not like a specific tool that i would recommend writer is is definitely one that i we should recommend it though yeah that you mentioned there the writer is one of the few that it does a pretty good job of it and i just use it by default as not an external tool or not an additional tool already using it for code editing so if the benefits to get out of there pretty nice and and free um and then somebody was asking about the clean code book by robert c martin yeah that's that's the one and then another person was asking if it's worth writing a book on game development i don't know i would email um robert nystrom he did a book on game design patterns ask him i would uh check him oh there's there's the clean code book so yeah i don't know um the worth it i mean the worth it part depends on what the benefit is if it's financially worth it i have no idea if it's like uh if you want to get a game development job and you've written a book on game development it's going to be dramatically easier to get a job almost anywhere so there's some benefits for sure i have no idea on the financials of of books though i've heard good and bad things from different people who've written written different software books um some loved it and some hated it and then uh you don't have any thoughts on books or writing do you either you guys i mean i thought about it a few times um but i i know this is one of those weird problems but i have so much work i'm keeping busy and i can't i can't justify it to the point where like you don't do it for the love of it if you're writing a book like i love programming i'll talk about it every day that's not a problem for me but i'm writing a book i'm doing it because i either think there's a missing gap in the market that needs to exist or i'm doing it to make money and right now i'm already making money and i don't there's no gap that i'm aware of right now that i want to fill with a book so maybe someday i just i don't know what the market's like in terms of how much it's worth uh i would say though personally i'm dubious of random books i don't tend to download random pdfs from people because um there's just so much content out there anybody can write a book you've no idea who they are what their credentials are what experience they have i tend to instead look at blogs and find people who are writing stuff that i like and if i end up liking a person's style or the way they talk about stuff or their approach they have now earned my trust as a creator and then i would buy whatever pdf they would sell or whatever book they'd make but i often find if you make a book on spec nobody knows who you are or why they should listen to you so i would say a book is kind of something that you have to earn the right to have a good sales pitch on i could be wrong like i just i know myself i don't tend to pick up books unless i know the author already as a programmer at least it probably does work really well though as a um interview and resume thing right you've got like wrote this book on this thing that you want to hire me for i'm sure i'm sure it would it gets you lots of interviews and in the door a lot easier so yeah you do have that benefit if that's something you're interested in and i have heard from a few people i know who are authors that there is actually a little hack you can do that you can get into the amazon um recommendation read list surprisingly easy like they kind of like unlike say something like steam where they've got tons of games released on a regular basis and getting into the recommendation list requires a whole pile of effort in advance apparently with a little bit of effort because the numbers of self-published books are small in comparison um and the categories are quite niche getting to the top of a category on the amazon recommendation list is actually pretty easy if you know what you're doing you have to do some research and figure out the right metrics and things to do but apparently if you build a q if you build a community push it at the right time get enough stuff going it's easier than most other things so you can call yourself a amazon awarded or recommended author or something pretty quickly if that is your goal academically but i again doesn't interest me at the moment huh it's a good idea though i mean or a route to go so we're getting so many messages now that like the uh some of the old questions have already scrolled off and i can't even click them um but the question about what source control you recommend working within unit i would say for single solo projects i just use collaborate because it's simple and it works okay for anything with a team i generally prefer to use git unless they have their own options their own preference like they want to use perforce or raspbian or something else then i'll go but i i usually go for get and i know plastic is picking up i haven't used it lately enough though to personally recommend it i don't know if you guys have or if you guys have any differences on opinion there whatever works yeah and then a question about uh somebody who's a game developer working in pakistan but having a hard time with opportunities and looking to switch to asp.net or react native i want to know your advice um i don't really know personally i've taught i only wanted to pop this one up because i've talked to a couple friends this week who are doing some web stuff using um c sharp asp.net core and react on top of that for their ui so i mean i know that it's popular and there's a lot of development opportunity out there but i'd also look at possible enterprise development in unity stuff too if you already have a unity a bit of unity experience might be some options there to do some just enterprise development stuff in the engine without having to switch over but there i'd say that c sharp asp.net core and react seem to be popular at least from the few web developers that i talked to recently i don't know if you guys jason you're doing any of this with the reactor i was more of an angular back in my day but yeah i i know overreact i've used a little bit but i haven't let's just say i could write an entire app using angular right now i would have to do some research to write an entire app and react but i do use asp.net a lot um as for saying should you switch or not again maybe it's because i'm an eyeless but i would say always this building tools that will give you jobs for life is always a good idea and honestly asp.net and react will mean you will always have a job there'll always be some website somewhere that needs help and you'll be able to work on it it's very very hard to to be an out-of-work web developer these days like if you know enough code there's every there's a new startup every week who wants some new project that you can work on um so i would say if you get that those skills under your belt you now have the resources to take your time and learn game stuff later i would honestly i tell i tell most people to do that get a sustainable set of skills first well and your c sharp skills that are going to overlap too so as you get better in one you'll be getting better in the other at the same time you're going to be learning them both and getting back and it says it's already working as a game developer so it seems like there'd be some opportunity to just kind of bounce back and forth too um is there a good idea to write scripts i think there was a question related to this up above that scrolled off but is there a good idea to write your own scripts for cast or for animated characters from scratch or use the built-in animator controllers um here i would say generally use the animator controllers until you hit a problem until you have a real solid reason that you can't solve stay with the the animator controllers they're there to do exactly that and solve that problem so that's what i would recommend i know sometimes people write custom ones because they saw a video or they have a specific reason that they've got like i've had games where you know we needed to have different control over the animator where it would it would be really hacky to do it with the animator controller but that's uh one out of 20 projects or two so two out of 20 projects that i can think of um let me scroll down here real quick and uh say thanks paul i just saw a super chat pop up awesome glad glad to hear you loving it and then um let's go back up and see if we can grab a couple more questions unless you add something else on um on that last one keeping it simple makes sense the simplest way so oh here's one for andrew because i haven't had a i haven't been able to bug them on stuff so any tips for working with a 3d artist who's very good with maya and blender but doesn't know unity um yeah that's so i guess you're going to have to learn a little bit of mayan blender terms and terminology and they're going to have to learn a little bit of unity terminology because there's going to be some thing about unity or exporting to unity that maya has to i think one of the things that was common i don't know how common is now but is the scaling for instance i think maya scales differently um than uh unity so by default when you bring a maya export into unity it's it's either really tiny or really tall and you have to you know scale it by a hundred to make it look normal um that's solvable in the export my understanding is but some artists need to learn that and and so i guess in general google is your friend here and work together to google what the solutions are there's definitely solutions obviously uh you can you know anything from my blender works great in unity but um they have to export properly and then they have to be imported properly and whatnot um i'd also say just as a tip like have a look at the recommendat there's some research out there you can do where you can find the exact numbers of recommended try counts recommended complexity for models um there's like a nice little grid on one of the documentation web pages i don't remember exactly which page it is but there's like performance optimization for 3d models or something and there's literally aim for this size this this amount of transparency these different things um and then use that as a good reference point uh you'll often find there's a big disconnect between an artist who wants to make something look as pretty as possible and a game that wants to draw it so make sure that you're aware of the differences between the two um and so yeah okay and set the pivot like somebody mentioned down below oh yes please do that yeah the pivot is awesome if you're building like a level like an actual space do not have a center pivot for every object in your scene please there's nothing worse than when a modeler gives you a level and then you click on like a crate and then the pivot point is a million miles in that direction at the center of the entire route of the object and it's like i'm trying to move this so i can now parent this onto another object just to move it make your objects have their own pivot points please yes that's uh yeah that's the one that catches me all the time so any thoughts on using an audio system that spawns empty audio sources from a pool versus actually attaching them to the game objects so what do you generally do that do you prefer that you need to just like make an audio pool that spawns up in audio or maybe has like a pool of 30 audio sources and then just moves them attaches them and plays a sound versus just having an audio source on each thing well i guess my problem is ever since i started using fmod it's dwarfed every other audio solution possible in unity it's just so much better than everything except maybe wise but they're they're about comparable um so what i do now is again i don't like to over engineer if i don't have to but if a project is going to get bigger there's a very good chance at some stage i'll switch to fmod so at least by moving it to some sort of external manager and having it spawn audio sources means when i do switch to something like fmod there's one place one location and one way to do it if i use audio sources i have to go back and like completely re-gus and change the whole project so if it's a small project i will use audio sources on the object if there's even an outside chance that this is going to get to the point that we will hire a sound designer then i will make sure to give myself the easiest path to migrate to that solution so in average i will use an audio manager thing okay that makes sense especially if you're going to be switching out like that um here was a question about random loot i thought this was an easy kind of semi-technical one we could answer it says i have a question about random loot i want a specific monster to have a chance to drop a random amount of gold and some types of items like basically a loot table but there's also a chance of nothing dropping and i think they're just wondering how how to make that happen so i mean at the top level setting up a loot table in a game is relatively simple right you create a list of entries that are you know a set of the entry could be a set of objects and a percent chance or a set of money in a percent chance or some other data type in there and then you need to randomly roll so when you give them a i guess first off when you're doing a loot roll the way that it usually works is you figure out your percentages somehow in the math i guess you gotta write out it's a lot easier to just write out the code for me but you'll want to add up a lot of time to give them a value like a minimum role and a maximum role and then roll a random number between one and a hundred and then pick the one in there i'm doing a terrible job of explaining how to build a pizza stuff and how to write but for the chance of nothing dropping i would just have an entry that had nothing in it essentially or just either that or a minimum role that had nothing in it or a chance to have nothing in there but um this yeah my explanation of how to build a loot system without showing code does not work well at all what do you got jason andrew where you guys built some of these lately yeah but in insurance it's just as far as i'm concerned it's just um to put to put it very simply um if i've got a bucket with 10 slots in it and i put eight of the same object and two of a different object and i just randomly pick one i'm most likely to get the one that there's eight of in the box and so as a general rule exactly so as a general rule um a loot table is just you're filling a box and how much of each thing do you put in the box and so the likelihoods show up based on those numbers um and so all you do is you you build a table where the total aggregates for a chance of something happening is weighted the way you want it to happen um and that's just a matter of having effectively like multiplier numbers across each item so there's a million ways to do it you can literally type the term is specific by the way loot table as jason described is literally the name for it like that's what you call what you're looking for so if you google loot table unity loot table c sharp you'll find a million different examples there's not like one right way to do it but the rules are pretty much the same every time it is a thing it is a probability you roll for something you get something back with the probability and then then you can go and look up different probability sheets for different things and how to make it better but at the end of the day it's just a bunch of numbers in a box with a bunch of named things and you get back and named them there there's so many ways to do solve that problem with so many things there's there's a billion ways to solve it and i think one consideration something just to think about is um the various things that may affect uh the outcome for instance on the filling in like just if you know an empty list or an array of of potential outcomes and like jason said put eight of one object and two of another and you're gonna get the one with eight four times as often as you'll get the other one but let's say that you want that chance for a better weapon to show up because of a stat the player has right and then you want to do a roll on that first and then so now you can't really do just a simple list because you now need to organize things so whatever your solution is think first about how you want that to to to play out in the logic of the game for instance the questioner asked about there's a chance to drop nothing now is that a separate rule is that saying okay hey there's a 10 chance nothing will happen so first do a random one through 10 if it's one nothing happens but is that chance itself modifiable you know by some stat or some external thing it gets into a rabbit hole but these are the things that when you're designing this from from scratch you gotta consider before you start because how you solve this is going to depend on really the logic you want in the system you want for your game and you bring up a good point too so without getting into too much detail here what you're describing is literally called a rule engine and this is effectively there are rules which stack and change and augment different things and the rules themselves change over time um and i would say something that this is a whole different conversation than how do you do it from why you should do it or what you should do but the reason why a rule engine is important is because from a game design perspective it's not as straightforward as uh pick random if random.value greater than 0.52x if you do that what happens is you will get the same thing multiple times you will get things that feel unfair to the player you'll have all of these weird side effects that don't feel right if you look at how actually big games do it it's a lot more complicated than you think because what happens is if you're rolling for a rare item and you don't get it the chance that rare item will appear increases every time until it eventually is a guarantee because they want to ensure that the game feels good to play so those those drops aren't just a number chance they actually do things like the drop rates are proportional to how valuable they are in the game and sometimes they'll change them based on where you are or what your level is as well as those extra stats based on the player so as a general rule these things get particularly complicated from a game design perspective and you want to give yourself the best possible tools to do that so the way to do that in general is to just have some resolver so have something called a loot getter and you give that to all of your entities and then say roll for loose you pass in the entity name um or whatever it is that you're generating from and you let it pick something and that way some other system can set the rules such as if they've been playing for three hours automatically set that the next thing they're going to get is going to be the special sword that they wouldn't have gotten up to this point you can override those rules in real time because it shouldn't just be a straightforward if x position do y because you'll find that won't make the game feel good um but there's a whole different conversation on how to do that you can do there's like uh game of sutra articles on this and various different things on how to make a satisfying feeling loot system but suffice it to say you you want it to be passed off to something else you do want some system that will decide whether loot should be dropped and how much and what because those things are you're going to want to tweak those values from a design perspective considerably more than just the simple levels of numbers going up and down yeah i feel like i want to do a video on loot tables now because it's a fun one but it's relatively easy to do but i can't talk it out like i can visualize it i can see it in my head i can see the inspector and everything else but talking it it's like stumbling and stuff so um here was a question just on back into regular code is it bad to use events for normal classes because you don't have methods like on disable to unsubscribe the answer is no because you do have a destructor to unsubscribe if you need to you can actually just like you have a constructor in your c sharp classes you can have a destructor that will get called when the object's destroyed it's just like the constructor but shifting the key next to one whatever the heck that little squiggle thing is and then the method name give you the same kind of functionality and usually there's somewhere else though like the on disable of the thing that you registered that for or the thing that you created and you could unregister those events as well um but no you use events and everything or not any kind of code go ahead although in my case i would say i don't use the destructor very often just because i find yeah it is tilde that's the that's the symbol uh because i think it confuses people who don't who don't know it so i as weird as it is it may seem more complicated but i use the i disposable option because if you mark a script by disposable it gives you a dedicated dispose function which will then unsubscribe events in there um that being said if it's a if i'm using a normal script in unity that's like an ability or a weapon or something as i've said before i don't make those in unity i make a separate weapon script in c-sharp or something and i would use that i will actually make an attach and detach or an equip and unequip function and even though it's not automated i would rather have my own scripts that manage the life cycle of the presumption of this is added this is removed in the same way that unity has those automated functions i'll make my own and then i'll make some manager that would whenever i hand in a new weapon if a weapon exists on equip assign a new one if weapon exists equip and then it manages itself beyond that point so i would always just have my own begun and end start stop equip unequip and i would then always manage that myself so speaking of the um external assemblies this one pops up so you're talking about doing things outside of unity and nc sharp here they've got a problem where they got multiple assets using some using different name spaces just that which probably not an issue but the other primary issue probably being that some are using assemblies and getting them to reference each other right is there a good way to get them working together the simplest way to get them working together if you're not you're not worried about this long term and you don't really care just throw them all like into a plugins folder almost always just resolve the issue remove the assembly definitions pop in there do it in a copy of the project make sure that it actually works first though because it may not work may end up blowing everything up and breaking things but most of the time enough to work because the the references are as long as they're not colliding um you know and it's just an issue uh other than that though interested in it i'd actually spend some time just understanding and learning how the assembly definitions work and how they wrap top down level where each thing can reference things below it you can't do circular references it's kind of the key thing to remember with assembly definitions and references and just external products at all or external dlls i don't know if there's any uh specific other tips or advice that you'd give on when people get stuck with this or they're just not sure what to do what to look into so it probably isn't super helpful but i would say assembly definitions and the way unity handles it is a slightly more con complicated and convoluted wrapper around dynamically linked libraries that's what they are they're just a way for unity to do dlls and so the truth is if you're having issues with them it's because you don't understand how they work and the best way to understand how they work is to simplify it as much as possible so google classes class libraries dlls how do how to make class libraries how to do dll various different things and just figure out in a very simple project with three simple classes in a in a basic writer project got nothing to do with unity and just can you understand the relationship between references and adding references between dlls once you understand that you start to understand the flow of control the rest of it becomes easier so um i i again i came from that side into unity so i i found it easier to adapt to but i notice a lot of the problems people have is they just like you drop in an assembly definition and then sort of nothing works i'm confused why not well as for why not that's a bigger question that's because that's how dynamic libraries work and i can't it's very hard to solve that problem until you know what the actual problem is so i would say go back to basics yeah or just put the simple project there i like that either outside of unity or even a simple one making your own assembly definitions and go through the the tutorial step by step until you really understand how the referencing is actually working so is it important to learn how to develop shaders i would say not necessarily it depends if your game really needs a lot of shader work for it to be successful the type of game that you need actually needs a decent amount of custom shader work then it might be but in general most of the stuff that you need for shader work you could probably buy off of the asset store it's not a bad thing to learn there's definitely some benefits there but um it's not gonna i wouldn't say it's it's important maybe mandatory definitely not right especially with shadowgraph 99 of the stuff you would need you could figure out how to do with shadowgraph considerably easier like if you're if you're an artist i know many artists who can't code at all like literally can't write basic if statements but they can write shaders because they're using shader graph because once you understand the logic of how rendering works it's basically like drop a noise texture scroll the noise texture apply the noise texture onto something you can you can figure out how to split apart and change the channels um the albedo or the specular or whatever um pretty easy if you understand that the kind of the universe that is shaders and textures and artists tend to know that better than programmers do so i would say as far as actually shader languages you only need that if you're writing your own stuff in different engines if you're using something like unity just use shadowgraph it'll make your life a lot easier it'll do everything you'll need it to a question about books given the amount of content that's out there in video format and just online um in the visual nature of game development do you find books are still useful in this field and i don't know about you guys but i do to some degree but i still don't real books that often i mostly use audio books um so that i can kind of listen through and absorb the stuff and i'll usually listen to them two or three times times um just to kind of um seriously do you guys find physical like actual reading the books as useful i like that personally i like pdfs now in video and audio books as my primary source my first uh foray into unity was with a book i bought from barnes noble and i was going through it page by page chapter by chapter setting up a 3d game and then there was a bug in the code and i wasn't skilled enough to to debug it basically and i you know had to stop and then i found an online tutorial that was far better so for that regard i would not go with a book at all if you learn how how to like the how to use unity how to code in unity how to make a project but you know jason talks about all the clean code book and all these other books that are more of you know it sounds like it's more of a um oh shoot what's the word uh um it's not about the the it's about the techniques and the i'm forgetting the word but the the theory the theories behind the code rather than the nuts and bolts of this is you know a b c it's more about the theories and i think that sounds like something reading makes a lot of sense for and books would work for um so i as people know regularly reach to my back shelf and pull out a book like i did earlier uh i even have here others like mythical man month and a few others that are sort of sitting here on my on my desk i've got nature of codes you know just tons of books but here's here's the dirty secret i actually don't really read those books very often uh because i use them as a reference for people because what i tend to do is i'll read them on something like this that's the remarkable tablet it's just lets me read pdfs very easy to have i can have thousands of books on here it's easy it's light it's easy to work with so i don't usually read the physical books i tend to buy the physical books as sort of a respect for the authors because let's just say when i find the pdfs they're not always of a legal source it's not my fault sometimes you try to buy them in ireland you can't so i'll have to buy the physical book and then i feel okay about how i acquire a pdf but i would say though as much as i do read a lot of books as in this these kinds of books for every book i've read i've probably watched a thousand hours of video on top of that so i would actually say my personal style of education has been mostly video content um there is there's about 50 programming books that everyone everywhere recommends and of those there's at least six there's at least six books every single programmer should read and clean code being probably top of that list as just a general good bit of advice um but again i will be honest and say most of my content is video content um this helps because i've spent the last 15 years getting slightly faster with my watching videos to the point that i genuinely unironically watch videos at three times speed um and it's not that hard for me to do anymore like it used to be crazy as an idea when i first started but i i read something a long time ago about if you increment the percentage by 10 every so often over time you eventually get to the point it doesn't bother you anymore so now yeah i can watch stuff now at 3x speed and so you can imagine i can get through hundreds of hours of content in a fraction of the time um so that's what i tend to do these days i i do prefer video content over books but the way i approach it is probably different i've said this before i will um i'll watch i'll watch a video like a tutorial on udemy or something i'll watch the entire thing through at three times speed from start to finish with hands off the keyboard just watching it like a tv show then i will stop i will make note of the areas that were new or confusing or interesting and i will now go back and watch it at 1.5 speed with my editor open and i'll follow along and so i'll actually watch it twice because i can afford to do that when i'm watching it three times faster so it's it's not it's not about skipping the content or racing through it it's about knowing the difference between getting an overview and then finding the bits that you actually want to dive into and then diving into those parts separately knowing what's coming so you can be prepared to absorb it makes a lot of sense um and i i'm the same way with video and audio and everything i got to speed it up it drives my wife nuts because everything is on at least like 1.5 just like a regular youtube videos like why do they sound so weird when people talk slow it drives me nuts on there so um let's see a couple other quick questions and then i wanted to get into a little bit of rant time so any advice on staying motivated in the ultimate course when content is coming five times faster than i consume it um not really just don't worry too much about it and go at whatever speed works for you and start absorbing make sure that you're absorbing it that's pretty much it i wouldn't worry too much about it and be around to answer questions and stuff the whole time so if it takes longer it takes longer there were a couple more down below and then i wanted to um get into this discussion about the the 10x developer stuff because i think that's uh an intro fully what a lot of people are here kind of curious about so make sure that if if you haven't already hit the thumbs up button and subscribed and all that and shared that you do that um before we jump into that topic i guess but first can you write off the books as a developer that probably depends a lot on where you are right you'd have to ask whoever is uh the tax professional hey if i can write off thousands of dollars of headphones you can write off books i assure you yeah i'll always disclaim these that this is not tax advice but where i am yes i just asked the tax the tax i never know so but i would assume so i actually that's one of my that's one of my best bits of advice in general is if you if you are in a situation where you're self-employed or you're working on unity projects with the goal of making your business register yourself as a business wherever you are in the world you can register as a sole trader pretty easily um and it probably costs you a couple hundred to do so and just the act of doing that will give you a vat number you can now use your vat number with all purchases and you can be exempt from an awful lot of that it's just one of those things that's very very useful if you're buying like i'll put this way i don't pay that on my um unity assets that i buy in the asset store obviously i i do insofar as it's tax credits and all the stuff like i literally my point is i put my vat number in and the the cost for me at purchase time is cheaper so stuff like this is a very small thing but it adds up right you save a lot when you're 15 or 12 extra is not being taken from you every time you make purchases you know yeah yeah definitely look into it talk to somebody wherever you are about the taxes and stuff and see what they qualify for if you're buying a lot of stuff it makes it definitely makes sense um so what are some dedicated server costs in the cloud like playfab they're often not thought about there's obvious stuff like hourly like server fees right so and bandwidth but what else is there so they're um i'm trying to think of the the primary stuff there's all all of the stuff for your data right you're gonna have to deal with databases backups and maintenance on all that stuff which is something that's not not usually a huge part but it's something you gotta consider um and licensing costs if you go with play fab you've got with their pricing model pretty clear on their picture maybe you have to contact them i can't remember now um but if you go with something like i think we were talking about oracle i was talking to friends about oracle at least last week and uh like you're covering the license costs on those because as those scale up and as things scale up on your servers the cost of that software scales up as well um you've got yeah the just game server costs the bandwidth there i don't know what else is there what can you guys think about like web presence type stuff go ahead yeah that's what i was going to say is like the problem with that question specifically is it is saying dedicated server costs well there's not like obviously that's only the costs that you list but if you if you want to be a bit broader than that if you are making a game the additional costs are the websites and the website hosting and there's other stuff too that people don't think about like the domain security registration and paying for your ssl certificates and well you can also get those generated for free but there's a whole thing either way there's a lot of additional costs in web-based stuff um and this doesn't even get into the fact that if your game gets large enough you're also going to want to deal with um having having support or having maintenance for that or email you're paying for whatever email blast you're doing for your um for sending out updates to people um there's there's a lot of hidden small costs that do tend to add up yeah yeah i feel like i should bring on a friend who does a lot of op stuff sometime and just go through these kinds of questions too because they know like exactly all of the things that get paid for that don't think about because i've talked to guys who are running like operations teams for some of the games before you know and they'll tell me about some costs for things and i'm just blown away like oh i didn't even realize we had all of those servers that we needed them because it made a lot of things like when you've got dedicated servers for your game you've got development servers for doing your dev work you've got live servers you've got sometimes like staging and test servers usually of environment where you're pushing things out to you know before it goes to live and you're doing some testing you may end up with you know four or five even different environments how to set up and then everything is scaled up there too so it can be a lot um and then somebody asked i want to take this one last one and then let's just jump on to the stuff have you any of you used the ultimate mmo asset and i wanted to take this just because i played with it a bit and i would say that yeah it seems like a good place to start if you want to build an mmo and you've got some game dev experience no idea how you want to build the mmo though and want to go through the process it does seem like a pretty good kickoff point i believe they're using mirror throughout the whole system so it should be pretty good on the networking um although again i haven't used it in depth i haven't used it to build out a full giant game no idea how well it would scale you know if you get 100 players in there maybe it's gonna have problems i really don't know but if you get 100 players in there then deal with that problem with that get get the hundred players and then worry about it build out the game and start without it i'd say yeah oh anyway um yeah i wanted to just i guess stop taking questions for a bit because we're getting kind of short on time and talk a little bit about the the 10x developer idx i think we briefly touched on this a little bit last week right about the whole debate on whether it's a real thing whether or not there really are developers that are you know 10 times as productive as the average developer or the regular developer on the team or you know just developers that are one-tenth as productive because that's another another way to go about it right uh before we do though make sure that you hit the like subscribe and share buttons i gotta get into the habit of just reminding everybody it really helps i mean it makes a big difference to me at least it makes me smile and like gets lots of likes and then views pop in and stuff um but yeah i i don't know i've heard a lot of just debate on this like a lot of people think that it's just crazy nonsense and that you know no one developer is worth the cost of 10 developers i don't know oh i don't even know where to where to go on this right because it's just i yeah i used to disagree with this a lot as a developer i used to think this was some smug way for people to anyone who brands themselves as that it's kind of like what's the odd saying if you're actually cool you never need to call yourself cool because other people do or whatever something with that effect um i used to be the kind of thing where people would brand themselves and it wouldn't be that's a that's a clear indicator that it means nothing it's just silicon valley buzzwords for people who are good at stuff um but that's not what it means and i think this is the common conflation is it wasn't until i started getting to the other side of the table i started doing hiring i started dealing with people where i had work i wanted done and i had to have other people work with or for me that i started to really see what this means and the truth is it's not about x developer is ten times faster at typing or ten times better at writing code or ten times more smarter yeah it's none of those things what it means is that financially value-wise as a business the value your company will get from that person sitting in their desk every day will be 10 times greater and that is not only not a myth it is 100 true like the difference isn't down to um individual skill it's down to experience more than anything and so the example that i've given before and this is a just a small thing i'm currently making a small project for myself and this is just a task example um i i put on a bunch of text areas so i've i have a ui and it's got like 20 little places where there are text some titles some paragraphs of text and it's like a little almost like a little book made in unity again not really relevant the project is my point is though there are two kinds of fonts titles body text and i know later on that i'm going to think about changing those fonts and so to me i was like this is this is a point of change there's a piece in my code that is likely to change and if i weigh it up now the cost of changing the effort-wise cost of changing 30 to 40 text mesh pro objects by opening them finding each one and then setting it to the right one is not really worth it especially if i if i get 40 fonts and i go which one do i want to try let's try each one of these out the exponential time cost of that is exhausting like you don't want to be doing that and so it's very simple i just made a thing called style it has a single reference to a font thing in it and i gave every one of them that object instead of dragging the reference in itself and then i'm using i notify property change and a few other bits but effectively it means i now have one place to change that and if i decide which i did is i like i made a little script that lets me open a scene and then check two different fonts and i can like randomize it and go i want this one or what about this one or oh okay i like this combination and because it's a scriptable object it will save now the system i wrote isn't important what is important is i from experience realized that this is a thing that's likely to change and it's likely to change and the cost of that change is exponential that is like a week's worth of work and so the the 10x thing is if you put an inexperienced developer in that seat they will have dragged in everything themselves and then when the time comes the designer comes back and says hey guys we've bought this new font it's our new brand place it in everywhere they'll do the perfectly reasonable thing of dragging that font into every single thing again and it'll cost them a few hours so that developer and if and then if the designers come back again and say actually we changed our mind the new font doesn't test well can you put the old one back they're now doing the same thing again and they've lost six or seven hours when i would have dragged in one thing into one field one time and those six or seven hours would actually be two minutes so the difference is knowing how to solve these problems and how to avoid change so i think that's that's the big thing people miss is a lot of the stuff that i do is designing systems with an eye for what will change now again it's not preemptively over engineering i'm not writing a font manager i am simply saying this is a point of change so i put a hook in place so that change is easy to deal with later um and i can think of tons of examples of this like there's so many things in code that i've done a a tab since this is another one um i worked on a project where there was a bunch of tabs across the top for different areas and those tabs were still in flux it was still designing the project so some of the tabs were changing which tabs were there were changing and the way it was done before was people would drag some prefabs in and start lining things up and making sure the objects are there and then when the tabs get renamed they have to shift the sizes and move things around and all this stuff i made a thing that takes in it's got a parent object with a bunch of children for each child it reads the name creates a tab for each name shows the tab pages and then it animates between them when you click the buttons it auto hooks up the buttons to the correct names of the pages i did that once took me 40 minutes or so and now i have in perpetuity solved tabs if we get more tabs i change them all and also it adds an extra side effect which is later on i decided to animate those tabs and so rather than having to animate or change the scripts on 12 tabs i change it in the generator and the generator does it for everything across the entire application so in short the 10x thing is not about being a super fast typer it's actually about just taking your time looking at a problem see where problems will arise where scales will get bigger and things will get harder and saving yourself headaches by thinking working smarter not harder you know yeah with it without a yeah go ahead i was just going to say anticipating potential roadblocks anticipating future problems and that experience is essentially what's going to drive a lot of that somebody has been experienced enough to know that when we do xyz this is likely to happen therefore i should do it like this in order to avoid that in the future yeah and i think that that experience has to be somewhat specific and relevant to or the more specific and relevant it is the more of an impact that makes if you've got the easiest example is you've got a developer that's been working on a project for 10 years versus one that's been working on it for one year that developer that's been working for 10 years has a lot more inside knowledge on how things work what can go wrong what the potential pitfalls are and what the um realistic timeline and realistic goals are of what's going to happen i think a lot of the time people come in to a company and join a project thinking that there's some big giant plan and they over like you were saying that you really work hard to avoid is over engineer things and it knocks down that productivity so it's a lot of the time that the 10x part isn't so much about being 10x better it's about being one-tenth as distracted by the wrong path or the repeatable grunt work that you could automate right there are a lot of things that you can automate that can speed things up you can probably double your productivity just off of automating things it's like one of one of the portions right gets you like halfway there and then the the other parts just avoiding the mistakes and going down the wrong path avoiding over engineering or under engineering in some cases so that you know usually the under engineering can be replaced with automation or a little bit of an update and it's a huge huge difference i mean it's people don't like it and sometimes when people are in that boat and like there's a little bit of chat about it sometimes when people are that the person that's 10 times more productive um they're not very liked and they they either either because they're a dick about it right they're just you know going around talking about how everybody else is nowhere near as fast or as good as them or just because people um associate that with because they're getting so much more done and people are talking about what they're doing yeah and then yeah people don't like it when you're like because then you're used as a metric by managers to say well look how much they're getting done you should get more done and that's that's again i will i'll fully admit um the culture around it can be very toxic because it's often misunderstood um it's got that feeling that it just means that person is awesome at doing stuff it's not it just means they know how to they know the problem domain better um so i won't deny it's probably not a healthy thing at a business level that it's talked about that way but again i i'm i think i can speak for all of us here that we've been on the other side of that that kind of side of it um like you can deny that you can admit you don't like it but the truth is when you are spending your money to hire people you have to ask yourself these questions how much is this person going to cost me and you could have somebody who's really you enjoy working with them they're nice they're friendly they do good work but they do it literally eight to ten times slower than somebody else at the same rate that is costing you money and you have to sometimes be very brutally honest about this because it is something that matters um and and like i've i've seen this so many times i've been brought into companies where something goes wrong and somebody's like oh this broke and it took two weeks to fix and i'm like that's insane it should take like 30 minutes to fix like it shouldn't be two weeks gone because it was it wasn't conceived of as a risk at the time and this is just experience things should be designed so they support change um and so yeah it's it's not a it can be an unfortunate conversation to have but again if you i think a lot of developers if you've never been on the hiring side it's very easy to discount this and say it's all business speak and it's horrible and shouldn't be really really be used but until it's your money and your time and it's it's down to the success of like your entire you're betting your business your entire finances on this company succeeding and you've got somebody just saying come on man don't crowd me i'm just trying to do my job it's like well this isn't about being a nice person unfortunately it's about being fair about the fact that there is um this is a job it's a business that needs to be done and if you're talking about the pareto principle um this people don't really realize this but it's true in every scenario in every company you've ever worked for 20 of the people at that company are doing 80 of their work that's just always the truth because there's always really productive people and then there's everybody else now everybody else that's not to say everyone's a waste and you can't just keep calling it down till you get the 20 every time because the truth is those other people take the slack off the people who are doing the optimal work but it's always going to be that way you're always going to have a distribution where 20 are just so much better than everybody else and this isn't just people this is 20 of classical music represents all listen to classical music twenty percent of video games are the most played video games of all video games in the world etc etc this is just the way the world works there's always that 20 percent at the top and when it comes to development this isn't saying that you you have to be one or the other or this is like an optimal way to be it's just being aware that this is a concern for business people when it comes to jobs like some people are just going to be better at either managing their time managing their resources or answering business requirements and so my biggest life lesson for people out there trying to get into this sort of programming as a career i have worked with people who are better programmers than me better smarter people but they suck because whenever they're whenever a manager asks them for something they're like i don't know it'll take this time it'll do whatever and they take longer to do the project and the results they give are faster more like to the metal memory performance but they're not what the client asked for and when the client changes their mind they roll their eyes and say well that's not the requirements you gave me you told me it does this people hate working with them they take a long time to do work so knowing the difference between what you think the job is and what the job actually is and being able to quickly iterate and what the requirements are by the client is ten times more important and so you have to leave the ego at the door the irony is true 10x developers are the ones with the least ego because they're not about writing code they enjoy they're about writing code that gets that does what the client wants so yeah it's that you just have to sit back and look at what your job is you're being paid to add value to a business and even if it's you making your own game you may not think about it that way but you're paying yourself your own time is being spent that you could be paid by somebody else to do something so every minute you spend on your own projects is your time and your money and you want to make sure you're being paid well i think the considerations from the person who's paying whoever is paying you to do the work there's there's more than just you know the the raw money being spent on a project there's also the amount of time the the the project owner the manager whoever it is has to spend dealing with you and you know that's straight up time i'd rather pay someone five hundred dollars an hour and know that in two hours they're gonna get me a perfect project then pay someone twenty dollars an hour and spend 30 hours of my own time trying to you know get them to do it right even though i saved a ton of money because now i spent 30 hours and then there's things like opportunity costs you know if if if somebody takes three weeks to do something that somebody else would take one week to do for the same outcome regardless of what it looks like underneath and all the other stuff for this exact same outcome that's two weeks of opportunity costs sunk where i could have gotten a product that was faster i could have gotten feedback faster i could have done who knows what else because something was was done faster and i think for you know when i'm when i'm thinking about this and hearing jason talk a lot of it sounds to me like a a 10xer would understand what corners can be cut what corners should be cut what things to not focus on because it doesn't matter um like you know if we think of like you know the resolution of a video on a tv that's 50 feet away doesn't have to be very big so if you know your tv is going to be 50 feet away from you what what resolution are you gonna you know work towards and and if it's gonna take you a lot longer to make a 4k video versus a 1k video i don't know if this analogy makes any sense same for like your background props right sure yeah or your background props yeah well actually there's a good example kit bash 3d many of us may have heard of kit bash 3d so on the asset store it's a very big name they do you know really good work they've got really compelling work if you look at their stuff up close it doesn't work in a first person shooter or or a first person rpg because they don't have things like um a handle on their door they don't need a handle on their door they don't need to close certain gaps in the geometry because you're never going to see it that close so they don't spend the time making all those details that don't matter and they still get a great product in the end and and i think to speak to your point there um so i think if there's any superpower that a contractor has and this is just i i've heard a lot of positive things from people i've worked with where they like working with me and this is just so from from what i've heard i asked why i said why what do you like about when you work with me and the people i work with rather than previous people you've worked in the past and one of the comments they said was that a lot of the times when you hire a company or you hire a contractor they'll do exactly what you ask for but not try to figure out why you're doing it and so what happens is and i've seen this so many times they'll they'll hire a contracting crowd and they'll say we want a system that can do x a great example of this is in vr i've had clients come to me and say we want to be able to have this thing where you can fly around and just do all of this cool stuff and backflips and all this kind of crazy stuff and they'll hire some random contracting firm and the contract firm will say yep we'll do it and they'll put it together they'll give it back to the client and the client goes oh god this makes you feel sick it's horrible they're like oh yeah we know you should never do that in vr but like they don't care because they're they're not trying to help the client they are trying to do the job they're paid for and that's it if a client comes to me with an idea i will say okay we can do it that way but i've been doing this for this long this is why that shouldn't we shouldn't do that probably if you want to we can but here's some alternatives here's the stuff i've worked on the past which is like that and here's some alternative recommendations that you could do and i help them with what their goal is i say why do you want that in the first place oh well we want this to feel dramatic and whatever it says okay well how about if the goal is to make a dramatic let's do this instead this will get you your goal but it will also conform to the standards it'll also mean that it'll be allowed to be published on the asset stores where some stores won't let it if it's if it makes people sick or whatever so i i think a lot of the problems come down to your intentionality as a developer and this comes down to speed like it's not just about being a nice person if if you do it the work to rule method the first way you are almost doing it on purpose so that it'll be wrong so they'll come back to you and you have to do it again um well i would rather do it right the first time and have everybody happy like and this is i've said this before it's from personal experience um when i first started working for a company i felt like a cog in a wheel i didn't really care that much and i would do exactly what i was asked for nothing more and i wouldn't investigate it i didn't care what the question was so if i got asked to build a system where they said i want to be able to log in and do this and do these different things i'd say cool i'll build you a login system and i will i would write right down to the minute it'll take me this long i have to write this code these systems and i will do it i hand it back to them and they would say okay cool where's the log out button i said you never asked for a logout button that would take more time more of my time to develop i'll do it but that's a separate requirement you need to write it down you get signed off on and i'll make that system now i knew this before i even started but because i didn't care and my goal was i'm not going to i'm not being paid to work on extra stuff and and nobody will thank me if i do extra work and mostly the people are treating me like crap anyway so i'll do exactly what i should do and nothing more in contrast i now say hang on a second are you trying to do a login thing well if you are have you thought about logging out have you thought about the security for the account have you thought about these things this is how long that will take these are the parts of it and they say okay well yes that's a lot more work than we thought it is but how about we don't do this one for now but keep in mind you'll need that later or these kinds of things or we can make a fake account and i try to get them to understand the problem because i'm the person i hire i know the problem better than they do and so it's a difference between working with them and getting it right the first time than you know not doing that and this this is really like these are all small things that feel like it's out of scope for the question of being a 10x proficient developer but it's not it's about understanding problems and doing it efficiently yeah that all made sense to me i think this follow-up question though is kind of interesting because i feel like maybe we we've missed something here because in my opinion the question says doesn't this 10x approach only mostly produce throwaway products and i would say almost the opposite yeah exact opposite yeah um so here's the thing if you if you're writing stuff i call it work to rule because that's kind of the general philosophy it's where people write exactly to the letter of what's required um that's that's what's called a rigid design as bob martin would call it if if a system is rigid it can only support the thing it was asked for it first and as i've said is like uh the difference between a throwaway product and a long-term product is change a throwaway product has one spec you do it once it's locked in and you sell it and it works a large scale project changes and so the the trick to having a sustainable large project is supporting change and the way you support change is you understand what's going to change and you rather than doing the complicated thing you allow to change it to a complicated thing for example we talked about saving if i had a project and i wanted to save it what i would do is i would create a thing called saver i would call a save function and i would just dump the entire state of an object as a piece of text json file or something and i will load it back in again and i will forget about it i am done checkbox i have finished the save requirement that we have right now it persists let's move on with the other requirements and at some stage someone says the save files are too big it's not performant doesn't work multiple projects cool we have a new requirement we now need to move to a web service or to a database or something that is now a new piece of work i'll do that but because i made a contract for the saving i can swap out what was there for the new one so it's it's the experience of knowing how to draw those boundary lines that i know that i can do the dirtiest version the quick and dirty one but i do it behind the boundary line that allows me to change that later so if anything it's it's the opposite if i was to just write the correct answer the first time then if i do change my mind i have to gut the whole thing and redo it but if i instead figure out what what's the actual philosophy here is my game actually a game built on sql or built on jason.net no it's a game that has a saving requirement and so if i make a saving requirement and i do the simplest version of save i have require i've solved the requirement we have and i can revisit that problem later if the requirement changes i want to pop up two things that showed up here so first was the comments that i don't want to be a 10x developer because i just want to stay alive longer i just want to know that like this has nothing to do with like working 10 times harder still working the same amount just getting a lot more done with the same amount of effort is the goal and not it's a lot about not wasting effort and working a little bit less to get working a lot less to get the same amount done and the same amount of work to get a whole lot more done and just not doing the things that you don't need to do it is a really hot take too a lot of people don't realize well it's not it's not advantageous for our current points in our career but all three of us here if we truly truly wanted to we could just take off work for three months we're at a point in our career and a point in the way we work for stuff that we could just go on a three-month holiday because we're not we're not beholden to the structure of a standard job because we're we've worked in a way that's efficient with the what what stuff we're doing so i think like a lot of people don't realize this it's not about it's not about working 24 7 flat out all of the time it's a it's about if i sit and look at a problem for a while like i forgot there's a famous quote too i wish i could remember who said it but it was something along the lines of if i have to solve a problem and i've got one hour to do it i'll spend 40 minutes staring at it and 20 minutes solving it because figuring out what you're going to spend your time on is more valuable than just rushing in and making a mess and that's the difference people who are just racing through and solving problems they're going to end up having to clean up the mess they made behind them but if you if you take your time and solve it diligently you won't have to do that and if stuff changes you can change it in a clever way so actually i have a lot more free time now than i did when i had a nine-to-five job in multiple different companies because i i work i i get a project that's a problem a client has i think about it i solve it in a few weeks and i move on to another project right or another problem like it's not um you actually have a lot more time in my opinion if you start working efficiently yeah i think it gives you the the freedom to choose how you what you work on and how you work around it and it gives you the ability you know this is kind of uh more of a macro view of of the same thing the ability to to say no to the things that are going to waste your time right and the ability to drop things that are wasting your time or are not going to work the way you want to be so if i have for instance um you know 10 characters being worked on and i know that three of them are going to make most of the money i kind of should drop the other characters and focus on the three that are going to make the money because that means i am 10xing my own process my own business and it doesn't mean we're doing more work it actually means we're doing less work we're just being more efficient where you know like jason he said work smarter not harder and that gives you then the freedom to now have more time to focus on more efficiencies and more things that are going to make everything get even more productive so whether it's developing whether whether it's moving boxes from here to there you know if you're gonna move you could use your car or you could take some time get a u-haul truck and make one trip and you'll move your house much faster than if you do the quick and dirt you know it's just it's just having the freedom and the the the knowledge and toolset to make the efficient choices sure yeah and i mean i think that that it's interesting when you got to moving i was going to jump into some code stuff but i i think about it with almost any job that's not code related like anything that you're not as good as a professional ad or an expert at they're going to be 10 times more productive you know and you'll be able to see it pretty quick and um i wanted to pop up this comment real quick that dan had mentioned too because i think it kind of ties it all together with with the amount of work that you're doing and how the technical deck kind of ties in so he said in my general software dot job the main difference is not speed but the amount of technical debt that's created so the team mix can make a make the difference between the project getting slower or faster and that's just that these the developers that are you know in your your 10x developer are going to be the ones that are ideal or they really are going to be the ones that aren't causing a lot of technical debt they're not making a lot of big opinionated decisions that they don't need to make for no reason that are slowing things down or causing other problems with the game you know or the game or the project and they're thinking through how is this the other systems because coding something once the first time is usually the fastest the second you got to go back to it and like recode it and fix it because more changes have broken it like you've slowed the next now down five and then you know you do it again you're down to that two and a half and soon you're back down to one or below and you're you know a one-tenth developer because you're over engineering everything and adding a bunch of technical debt and making it so that every change is more and more difficult and requires a whole new framework change and we gotta yeah so yeah i would say that the 10x stuff i want to do this is for talking about why this is right so i agree 50 with the idea that it's technical debt technical debt is a huge huge cost that grows over the time of our project but the second half of that i think it's equally as important is ownership of the project so it's the fact that a lot of people don't actually care if a project succeeds or how it works and so in general it's about also understanding what that is so when it comes to a project like this it's it's also did you get the requirements right the first time so it's not just about not adding technical debt it's about ensuring you're actually making the thing that you need to make that you're not making the wrong thing altogether and that's i think a big missed cost a lot of people don't realize because it will change but can you avoid how many times it will change if you take the time to understand the problem domain why it exists why is this project even being made in the first place you can cut out a lot of wasted time by making it closer to the end objective without having to like go the wrong route i like this picture too i just popped it up the wheel yeah yeah yeah whenever we talk about this that's the one that always comes to my mind that's the one that i i uh because because i've had this conversation with people so many times i've literally had people panicked working on a project they're in a hurry there's a deadline coming up and i'm like you know the right way to do this is to step back and do some tests and they're like i can't write tests now i'm in a hurry and it's like okay but now you're gonna spend the next week trying to solve this problem when you could have stopped written the tests and then like immediately found the problem and then you wouldn't have this problem next time but yeah there there are certainly folks um in any any team on any project who could be negative uh productivity to to the point where they for whatever they're doing you can fill in the blank there but any team somebody could be doing some activity some action that is making the entire team less productive that to the point where removing them from the team would make the entire team more productive without any other change uh and and you can imagine that that uh uh in in in comparison somebody who's the opposite would appear 10x of that first person who's negative x i don't know how you'd praise negative x but negative x well a one-tenth developer yeah right so um and uh what you're saying about that too is there's another great quote by um it was bill gates which says i choose lazy people to do hard jobs because they'll find an easy way to do it and i think that's one of those things that when it comes to this question about age or about experience the truth is the older you get the less patience you have you enjoy the experiment when you're younger like i'll research this problem and i'll try out different things and whatever when you're older and it's about getting it done it's just i don't care i want it to work i want to work fast i don't waste my time and so a lot of it's down to just not having the patience to go through the adventure anymore and if that's the case people tend to find smarter ways to work so that tends to be why cool so there was um another question and then i also i'm gonna put up the live stream that andrew is gonna be doing soon so i'm gonna drop that into the description right away so everybody can get that kind of queued up he's going to be going through and doing some code and stuff and you want to talk a little bit about that before we jump into this question what you're going to be doing later yeah so um as many of you may have known if you've been watching this for a while i am not the most experienced coder but i am working on a game and i like to live stream that process from time to time so today i will be working on getting spells casted and just basically spell system in this fantasy rpg so i basically i do coding and unity and writer and talk about it and work through problems and people who watch sometimes help me solve those problems it's fun time yeah it's definitely cool i'm putting it in as a oh come on well let me do it a redirect or is it only gonna allow me to do it to my own videos oh i won't let me do it to others so i'm gonna put it in the description and i'm gonna drop it into the chat so everybody can uh can join and check that out i'm gonna try to check that out too i'll probably be laying in bed checking it out but watching it either way um i wanted to hit this question though before we start to wrap things up about have you noticed an age where devs peak or a general age where you've noticed people 10x plus is there an age where you've seen dev skills wane so this has been very i would say somewhat varied for me but i would say it's probably around like seven or eight years of experience not so much an age but around like seven or eight years of consistent experience working on something and similar types of problems people tend to get really good at it some people do it quite a bit earlier and i've some people just never do a lot of people just never kind of it really grow their experience beyond there are a lot of people who work for 15 years and just kind of do the same thing at you know year 15 that they were doing it year two or three and they don't really continue improving those skills but in general i would say right around six seven eight years of experience and there's not really an age where i've seen developers get worse generally as i talk to developers who are actively they get better and better what you see with people who are older and developers that are not good at development it's just that they haven't actually done any coding in a very long time or they haven't done any significant new coding in a very long time like they've done some stuff a long time ago they were good at it and they just haven't needed to or had like a a driving force pushing them towards doing the new stuff so their skills start to disappear it's more about how long it's been since you've been writing code and developing things on a project than age i think for for skills waning and even then it's going to be more of the technical specific skills to the type of thing that you're working on the higher level stuff should generally stay around i would think but i don't know maybe that also fades you guys got thoughts on being a developer in ages i think it it um likely a lot of this is someone in the chat mentions soft skills and i think it's a lot of personality sort of things and working with others skills that do take time to learn they are social skills ultimately i would assume that there is a point at which it's not necessarily a peak but people ramp up it's not much different than any you know fantasy rpg or something where you level up really quick at the beginning but the the higher you get the longer it takes and the harder it gets to level up i think it's it's very similar to that maybe you know after six months to a year of working in a team where you've got really good role models modeling this behavior if you're open to changing yourself and you're open to to being a different person and learning new things and modifying your behavior then maybe six months to a year somebody will get to the point where everyone else notices hey they're really peaking perhaps they're still going to grow you should always grow and then at some point maybe someone you know i've we've all probably met people who get jaded and after a certain while they they get to the point where they're kind of over it maybe they're just waiting out for you know their pension or weighing out because this is just what they do and they don't want to get another job or who knows what but maybe they start stop forgetting those skills and they start de-devolving uh for other reasons but i don't think that has to happen um um i i've a hot take on this one which is um from my experience there is everyone's got skills that they're good at and stuff that they're lacking and when we're trying to improve ourselves we think the right answer is to keep shoring up the edges of stuff that we're already good at so i see a lot of developers who are really good at maths or really good at a particular thing and they just absorb all of the content related to that area they're already in 80 out of 100 and they spend their time getting to 87 but the truth is that the people who really excel are the people who stop and go wait a minute i'm actually pretty bad at the social stuff or i'm pretty bad at the project management stuff or i'm not really good at this area at all and they shore up their actual weak points um in my case i again i've said it before if you were to meet me 10 15 maybe even 20 years ago and asked what what your dream job is it would be give me a box with a computer in it that i can then live in and then requirements come through the door i write the code and i send it back i don't have to deal with people and my i perfectly enjoyed code and i have a million bucks on software architecture because that's the stuff i enjoy doing and i told myself it was self-improvement to get better and better at software architecture but when i'm already reading more than 90 of other people on the subject um am i really making myself that much better or am i or am i just wasting my time and the truth is to get better and to really improve and to scale up i had to stop and go but i hate dealing with people maybe that's the problem maybe it's the actual maybe the stuff that i need to improve is the stuff i hate doing i have to get better at the stuff that i don't like and so over time the stuff that i improved on was all of the stuff that i understood the business more i understood requirements more i learned how to gather requirements from users i understood the business side of it i understood how to how to deal with projects on a larger scale and i understand how to tie the lines between what our project what what a business wants and what i want to deliver and the the 10x portion for if we're sticking with that metaphor um boils down to rounding yourself out with the areas you're weakest at it's like because to go from terrible to moderately okay at something doesn't take a lot of effort it actually takes considerably less effort to go from i can't even do the basics to doing the basics but going from 85 to 87 is hell it takes so much effort to get that much better at an increment of stuff so if you look at all of the stuff you're missing all of the things you're not good at if you're if you're good at the code learn the art if you're good at the art learn the code if whatever it is it may seem daunting but to go from an if you're up against another artist and you've got a tiny bit of code you're 10 times more valuable because you can fix small issues without bothering a developer and likewise if you're a programmer and you know just enough art to pull a model into a modeling tool and like fix an issue with the rig or to maybe change the lods or something with an automatic lod tool you've now saved so much energy from having to mess with dealing with an artist and different stuff so like these are the things that make you better it's not just it's not like getting yourself slightly a percentage better at something you think you're good at it's fixing your weak spots so there's a quote again can never remember who said quotes but it's the it's the it's in the shadows is the parts that will improve you the most it's a bit you don't the bit that you're avoiding is the bit that will cause the most growth for you and so whatever it is you're like uh i'd hate to have to do that for a living well then just learn it enough that it doesn't scare you anymore it just becomes a useful tool you don't have to do it for a living but at least it stops being scary you know i think that's great advice just learn learning all that stuff the best developers i know know they're really good at one thing and pretty good at a bunch of other things so it's very very valuable skill all right i think we'll get ready and just kind of wrap it up here um i'm already ready to go back to bed but i wanted to say thanks everybody for coming out here make sure that you please hit the like button subscribe and just go to the stream somewhere if you have other questions um we'll be back next week um answering those and talk about a whole bunch of other interesting things and also check out andrew's live stream i just linked it in chat again and it's also down below in the descriptions right at the top of the description you just kind of hop in and join it and i'm sure andrew will be doing lots of interesting things and talking about stuff too maybe you guys can go ask him a bunch more questions too hey frank i hit you up later too frank and uh all right well anything else you guys wanted to say before we wrap it up go send jason some coffee over there over there check out all the links down below for that and um yeah i guess that's it thanks again everybody see y'all soon see i gotta find my button again there we go
Info
Channel: Jason Weimann
Views: 11,888
Rating: undefined out of 5
Keywords: unity3d, game development, gamedev, game dev, indie game, unity, unity 3d, c#, programming, game design, game designer, aaa game development, indie game new releases, upcoming indie games, new indie games 2021, game development for beginners, game development process, game programming, unity3d college, brackeys, unity3d 2020, unity mirror, jason weimann, video games, unity game dev, unity game devlog, game development unity, unity3d solid, indie dev, indie game dev
Id: VLJV50TCQts
Channel Id: undefined
Length: 153min 30sec (9210 seconds)
Published: Sun Aug 08 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.