Self Taught GameDev? What do I need? - 2020

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey what's up I'm Jason and today we're gonna answer a very important question that I see come up all the time and that's can you be a self-taught game developer or really just a self-taught programmer in general or do you need to go to college do you need to get a four-year or six-year degree to be a game developer well I think the short of the answer is no but I want to go into really what the differences are what the benefits of going either way are and then talk about the process for becoming a self-taught developer and we're gonna end it or go probably about halfway in we're gonna dive into a bunch of tips on how you can become a better developer so things that you can do if you are a self-taught developer that really helps stuff that really helped me especially and then I think they also apply to if you're not self-taught in fact I've seen them apply and work great for my friends who did go get a professional CS degree or a game development degree so let's get started with some of the differences before we do that though I want to briefly mention that I am a self-taught game developer at least that's what I would consider myself my professional training is all in electronics and I did a tiny little bit of assembly language programming in college but zero percent of what I learned in school applies to anything that I've done in the last I don't know 15 to 20 years all of my game development stuff has been learned almost on demand and we're gonna talk about what that process looks like but again before we do I also want to mention go hit the like button and the share button and if you have thoughts on this process while I'm going through it or if you're like a self-taught developer and you think it's great or maybe you think I'm crazy and everybody should go to college drop a comment down below and let's just have a little discussion I'm kind of curious to see what everybody thinks about this so let's now finally after my third transition there dive into some of the differences between becoming a self-taught developer and well learning in school I think the first one is really just about speed because when you're learning in school there's a lot that you have to cover right if you go to a traditional college at least at least in the United States what you're gonna do is spend probably the first two years learning things that aren't extremely relevant to your career you're not going to be learned you're gonna be learning like economics English writing probably a bunch of math to the math part could be a little bit related but it's still not super important as we can it I'll talk more about that as we get further on math is important but it's not a key part of it and the stuff that you're gonna learn in college is probably not gonna relate too much to 95% your work it'll relate in a little tiny bit but you're gonna spend a lot of time learning not a lot of information at least in my experience and that's because when you go to school they generally teach towards the average student there or sometimes even towards the slowest student so things get slowed down quite a bit the amount of information that you go through is not always a lot I mean I've met a lot of programmers with master's degrees who were unable to code at all like they couldn't write a simple program because they talked a lot about theory they talked a lot about other things and they never actually got to writing code or they had tiny little portions like it's been four or six years in college and they'd spent maybe three months doing a class where they actually write code and often it was very simple code in a language that was totally irrelevant now that doesn't apply to all schools there are definitely some schools out there that are great that are gonna teach you how to code and get you started on coding right away but I think it's really hard from the outside to know which schools those are and to get a good understanding of am I gonna learn a lot am I gonna learn the things that I need or am I just mostly working for this certification or this paper or proof that I can at least finish school and understand the fundamentals which is one area that I think that self-taught game developers tend to struggle with and that's the more theoretical fundamental stuff things like big o-notation or just performance characteristics or data structures and algorithms but those aren't things that you necessarily need to go to school for in fact there's a really good book the Impostors handbook I would go check that out if you are a self-taught developer I know I'm kind of skipping ahead but if you are self-taught or you're just kind of considering hey maybe I want to get into programming I'm not really sure it I don't know what these classes are going to be like go check out that book it teach you I think quite a bit about a lot of the fundamentals and a lot of the things that you would learn in those intro college courses on computer science and it's important to note though that even if you do go through a traditional program you still need to be very self driven I think to be a successful game developer or programmer in general because what you're gonna learn in school or outside of school is going to matter a lot on how much effort you put into it and the kinds of things that you try to learn it's very easy to just go through school and get a degree without actually learning very much just doing the bare minimum getting the assignments turned in doing the little bit of project worth it you have to do and not really pushing yourself when you're working on self teaching though it shows a lot more when you're not self driven because if you're not self driven you're not even getting that little paper you're not getting the little I guess fake endorphin rush of hey I'm still accomplishing something even if all I did was kind of sleep through the class going to a class and sitting there not absorbing anything and not really utilizing and remembering that information isn't valuable at all again you can get great information from going to a good school and the right instructors but if you're not paying attention and you're not really putting that information to work it's very easy to forget things it's in fact it's extremely easy to learn things especially when it comes to tech and programming and then completely forget about them next week if you're not using the things it's very easy to just kind of let those slip right out of your head now when you're self teaching I find that that happens quite a bit is a lot less often and the reason for that is that you usually when you're self teaching you're teaching yourself to go solve a problem you have a very specific problem like I need to figure out how to move this character I need to figure out how to make this jump different or whatever the thing is that you need to solve that you're trying to figure out for the game that you're working on or the project you're working on you're going in and you're looking at the info to figure out exactly how to solve that and then you're using it you're using that information and it's gonna kind of bake into your brain at least that's the way that it works for me and I think it works that way for a lot of other people now before I get into the process of how you start to become a self-taught developer and dive into tips on how to be better self-taught developer just a better developer in general I want to talk about whether or not you can be as good as a traditionally taught programmer and I think that probably from the beginning of this you may have inferred that you definitely can in fact I'd say that most of the really great programmers I know don't even have a siesta tree that they never went to college to learn game development or programming in fact most of them just started off as teenagers hacking around trying to figure out how to make a mod or a plugin for something they found a need that they wanted to fill they wanted to make their own game or modify their own game and they just started working on it they started looking for solutions and found them so let's talk about the process if you want to become a developer and you don't necessarily want to go to school you're not sure you're ready to make that jump yet what can you do to become a self-taught developer well I already talked briefly about modding games and I think that that's a really good starting point to just find a game that you find interesting that you like to play like my um my 11 year old really likes to play minecraft he likes to change the way things work so he goes in there mods now he's obviously not a programmer per se but he's doing actual code writing he's finding little hooks so you'll get a little method in there where you can override something or change the behavior of something and you'll go in there and add in a little bit of extra functionality again it's mostly just little fluff stuff but he's getting used to the process and the flow and he's also more importantly finding out how to learn these things on his own he has a problem it's like hey I want to figure out how to do this and I never just tell him hey this is exactly how you do it say hey well this is what you might want to search for go look this up and tell me you can find it if you can't find it let me know and I'll come help you out but most of the time I just kind of send him off to go do a little bit of self or slightly just barely guided learning where he's got an idea of the problem that he wants to solve and he goes out and finds the solution and this is exactly what you want to do on your own right so I would recommend starting with a game engine don't try to build your own game engine obviously from this channel if you've seen anything else I do you know that I prefer unity it's just my favorite engine I've worked with quite a few of them but unity I think is a great engine to start with - because c-sharp is a very up approachable language and start with a small project so get a engine that you want to use pick whichever one you want and go first go through a couple little tutorials don't just start by going hey I want to make a game I'm gonna grab this engine I'm gonna go make a game it's not gonna work you're gonna have a hard time you're gonna struggle it's probably gonna fail instead I'd say start with a couple very small tutorials to get yourself used to the engine get yourself kind of used to the workflow and understand what everything means like when you get into unity or unreal there's a lot to learn just in what the editor means I still struggle when I open up things like Maya I look around like oh man I'm overwhelmed with all this stuff because I never really spent the time to dive into it if you jump into something like unity or unreal you're gonna have the same problem you can see all of these windows all of these controls everywhere and usually what people will do is just go in and start building out of terrain because it's nice and simple and fun like they build out a level and start imagining a game never get around to building a game so what I would do is first I guess jump into the engine play around a little bit look around and then dive right into very simple tutorials learn how to make the simplest mobile games possible I generally recommend people start with something like flappy bird because the functions or the functionality of that game is extremely simple you can jump and pipes move that's it there's nothing else to the game you don't have to add any other extra complexity there's not a lot of I guess hard stuff to figure out and it's the kind of thing that I've taught to fifth graders multiple times and they all seem to understand it so it's something that's easy to start with and I would do that a couple times I recommend that people build probably three or four little mini games before they try to dive into creating something that's I'd say their own don't start with your own idea your own project start with little things that are relatively different don't build by flappy bird and then another slightly different flappy bird go flappy bird and then do like a doodle jump or some other type of simple little game extra doodles I'm probably a little bit too complicated to start off start off with really really simple things and build them to get familiar and comfortable with the engine once you're done with that though it's important to do quite a few other things the first is to deploy that game out I mean if you can chip it and release it to the asset store or not the asset store like the Play Store or the iOS store or something that's awesome I wouldn't necessarily recommend that you go all the way to those stores though just do a deployment on to your phone or to a WebGL build in unity it's actually extremely simple you can watch a ten minute video and learn how to deploy your game that you've just built onto a webpage and then publish it and share it with other people don't expect that a lot of people are gonna play it but just know that you're gonna be able to go through that process you'll be able to say hey I've deployed some games before and I understand what the process is like and it's a lot easier to get that process down with a very simple game when you're just starting out than it is when you're building these big giant projects and then going oh wait I don't even know if I can do this so I'd say deploying it out is very important but it not just for those reasons of being able to say that hey I did this either and it's also a big motivator when other people see what you've done they generally get impressed even if you build crappy little games if it's not a little kid you know they're probably going to be like hey wow that's pretty cool I didn't know you could do that that's a really neat thing and I think it helps to motivate people it helps to motivate me when people play my stuff so I can imagine that it helps with everybody else and everybody I talk to really just like we like building games because we want other people to play them we want other people to enjoy them and even if they're you know a simple crappy little clone maybe we've added our name or something or changed out the character with ourselves or some other random picture that we found you know that's enough to really I think build up some motivation and then it also gives you some feedback right people will play your stuff and go hey can you do this and then you like it can you make this little change like you're in flappy bird you're like hey can you add enemies that you shoot at hey I don't know maybe I can let's see if I can figure that out and go through that process which is again where you get into that self-drive self-driven self learning stuff where you're gonna start searching for information try out different implementations and answers and figure out what actually works now I also want to point out that when you're getting started and you're learning on your own or you're not learning on your own you're fresh out of college don't expect your code to be perfect it's gonna be I would say bad right almost nobody has good code out of college or just when they're starting out every he writes really bad things everybody does things in really inefficient and sloppy ways I don't think it's that important to get it perfect right at the beginning it's much more important to make it work and get the functionality and there get the project complete or get your little game complete and get it out and then you can worry about making it right and faster later you really need to go through the process of building multiple things and seeing the pain and the downsides to having what I would call sloppy code and you have to really go through that before you understand the value of having good clean code so I wouldn't worry too much about clean code right at the beginning just worry about getting your thing done get it working and figure out different ways to get it working also don't feel afraid to just copy and paste some code I know that generally it's frowned upon to go hey look I just copied this method and pasted it over I have no idea how it works it's great if you can copy and paste it over and understand how it works but if you don't get how it works don't just sit there and get stuck on it forever it's really easy to just kind of dig yourself into a hole going I don't know how this works so I don't want to use it or I'm confused just get the code in there that works and then try to figure it out if you can if you can't when you're getting started out I wouldn't worry too much you're gonna learn it eventually and then you know a year or two down the road you're gonna look at that coming be like oh I totally get it now I totally understand what that was I know I'm surprised like how much I've learned or how I didn't realize that back in the day alright now I promised you some tips on how to become a better game developer whether you're self-taught or going to college and it's time for that now so let's start with the first one which is you need to find a community this could be meetups or user groups or just a group of friends that you have or even an online community everybody who's got a YouTube channel on game development has a discord server myself included I'll put a link down below just join as many of those as you can and find the one that works well for you where you get along with people and you find people who have similar interests and I'd say close to a similar skill level may be slightly above you that you can learn from and bounce ideas off of and ask questions a lot of the time we come up with these problems in our head and were like hey I want to do this big giant complicated thing not realizing there's a really simple solution for it already out there and it over complicate it and overthink these things and you just ask somebody else they can point you usually like right in the right direction of the nice simple easy-to-use answer and the I'd say the best way to do it so you definitely want to have this kind of a community have some group that you reach out to again if you don't like this cord you want to just talk to other people in person I would say look for user groups meetup comm is a great place for it but there most places have them somewhere in their area of course if you're out far then online may be the only option the next thing or the second tip I guess is to read some books on programming in general this isn't necessarily on game development I would look at books on programming on c-sharp on well let's see clean code practices as you're getting so what's assuming you're building a little bit and you're kind of at that beginner to intermediate level start reading books like clean code start watching Uncle Bob's videos on YouTube he talks a lot about just how to optimize your code how to write good clean code that's maintainable and manageable and doesn't become a mess and he does a lot of those examples in c-sharp the third tip here is to actually listen to coding or development podcasts I know a lot of people don't like podcasts or just you know don't like audio in general but I think that it's a really good really important way to learn and you're not gonna always learn about things that are relevant to the problem that you're having in fact I think of podcasts a lot more like going to a random College lecture you're going to learn about something that may or may not be related to something that you're doing but a lot of the time what it does is it opens your eyes to things that you would have never even thought to learn about now I don't just listen to game development podcasts I like to listen to a lot of just C sharp and dotnet and programming podcasts because I find out about all kinds of new developments and new technology I find out about new C sharp features about um and the new frameworks that are coming out even things that are mostly unrelated like web stuff I learned a lot about that along the way which helps me get web jobs if I ever needed one right but it also helps me learn about new tech and ideas that people have but also a lot of time I'll just learn actionable stuff I'd say probably 1 out of 4 podcasts that I listen to I figure out or learn something actionable in fact if you're curious about learning a big o-notation or some of that stuff from that imposters handbook I'd go check out the coding box podcast it's a great podcast love listen to those guys and they actually do like 4 reviews on a lot of these books where they'll talk about all of the different parts of the book what they found interesting what they learned from it and the things that you should probably take away from them so if you're not big on to reading and you happen to do a lot of driving say podcasts are an amazing way to learn also you can just listen to podcasts while you're playing games doing other stuff working on code you know working or whatever other job you've got so podcasts are a great source for this kind of stuff the fourth tip and I think this is probably the most important one is to practice every day you know obviously every day is sometimes not possible but every day that you can practice just by writing a little bit of code you don't have to write a lot but you're gonna find a big difference between if you write code once a week versus if you write code every single day you're just it's gonna become a habit it's gonna become something that becomes a lot more natural and I think this is the case for just about any and well just about any skill that you could learn right if you practice basketball every day you're gonna be a whole lot better at basketball than you are if you practice once a week and if you practice twice a day you're gonna become even better I'd also recommend if you can practice early in the morning it I don't know how true it is but I've seen a lot of studies and a lot of people talk about just how much better it is to learn earlier in the morning and how that stuff retains in your head personally I like to do a little bit in the morning and a little bit at night so like as I'm getting started up I'll try to learn something new in the morning and then near the end I'll try to revisit that thing obviously I don't do it perfectly but I write code all day too and I figured that's a lot of practice so if you're writing code constantly great but if you're writing code that's very similar and the same all the time and you want to actually learn new stuff find new problems in the morning and solutions to those one great way to do this by the way which I guess we could go on to as tip number five is check out some Coty's they're really simple little problems that you solve by writing code it's so good way to figure out solutions and algorithms and just get better at writing code in general by going through these problems like a very simple one would be like a tic-tac-toe one where you're writing a simple tic-tac-toe game and you just search for code Coty's you'll see all kinds of info on them look for c-sharp related ones if you're working in unity obviously C++ if you go with unreal or whatever language you're using in your engine also this shouldn't be a tip this should really be somewhere earlier but we're gonna call it tip number six and that's that if you want to be a game developer you should learn how to code I know a lot of people want to be a game developer but they think I K I don't understand what this code means I don't want to learn to code I want to just be a game developer who does all my things visually or has somebody else write my code and I can understand the fear there I understand the hesitation when you look at something and it doesn't make any sense it's like if I open up a word doc that's in the language I don't understand not a programming language but just like maybe it's in Hebrew words I don't know some some language that I can't read right I'm gonna look at it and go oh wow this makes no sense I don't understand it at all luckily with programming the language isn't that complicated it's not nearly as complicated as learning an actual foreign language you really just have to learn maybe 10 to 20 key words so you're thinking like 10 words or so and then the structure other than that you don't have to learn too much you I mean obviously you'll learn more as you go along but to get used to it and to be able to read code you don't need to learn too much in fact once you can read code in one language it tends to become a lot easier to read in another language especially when you're looking at C languages or C based languages like Java JavaScript c-sharp C++ or just old-school see a lot of those languages they have very similar structure to how things are laid out just slightly different key words and minor tweaks here and there so let's end this with a quick recap can you be a self-taught game developer today most definitely should you be a self-taught game developer today I would say so I mean I am and I love it and every self-taught game developer I know seems to really love what they do and they love their process of learning and how they got better and like I said most of them are really really good developers it takes a lot of energy it takes a lot of effort but the reward is big the payoff is there there are a ton of game development or just programming jobs in general out there and they pay really well compared to most other things and again you don't necessarily need to go into a huge amount of debt or spend many many years learning these things and let's just talk real quickly about why that why that is - because I know I said I was gonna recap but honestly I think that the biggest thing that sets aside programming or game development from other careers like being a doctor or an airline pilot or something like that and makes it so that you can learn this stuff at home is that you can practice you can actually go through the process you can do everything that's required with almost no risk right if you're trying to be a doctor and you want to practice medicine you screw up somebody gets hurt somebody dies right you're like you don't know what you're doing and you're just kind of guessing and trying to fumble your way through it searching for information you're gonna do bad things Sam especially to try to fly a plane right well first it's gonna cost you a ton to get a plane and then you're probably gonna crash it which reminds me that great helicopter video I saw of some guy who didn't want to wait for his first lesson hopped in and just started flying and flipped this helicopter over obviously terrible for him but you know it just shows that some of these things you really do need formal training for you can't just practice on your own because there are risks and dangers with game development the worst risk that you have is that you don't finish your game second versus you finish it and nobody likes it there's no real actual danger it's just spending your time and you're learning along the way and again it's much safer much easier to do so you can do it now let's get back to the recap so yes you can yes you probably should going to college is also a great option if you do your research and make sure that people coming out of that school or in that program that you're looking at are actually finding jobs and that they're learning things I would talk to some people who've gone through the program see what kinds of things they learned and how much they know what what kind of things that they're covering and are they just covering you know some old lessons that they put together fifteen years ago and hitting fundamentals what are they talking about modern game development and going through the process and teaching you how to actually build games are you actually building games in that process make sure that you are and that you're getting the value out of it also remember to practice a lot and just work with other people if you can meet up meet with people go to user groups or anything like that or talk to them online or ideally do some pair programming or mob programming it can be a great option when it comes to learning online there are tons and tons of options out there there are courses available I've even got my own there are tons of them on udemy there are lots of videos and channels on game development in general and unity game development specifically I would say go through some of those tutorials learn how to make the fundamentals and slowly start leveling yourself up alright that's all I've got for today I hope this was helpful if you have questions about it though please just drop it down below I'm gonna try to watch the questions for this this video for a while and see if I can answer them and try to get some more ideas and maybe do a follow-up here also don't forget to like and share the video and the special thanks as always to everybody on patreon you guys are awesome and is there anything else no I think that's it just get out there and start making games bye
Info
Channel: Jason Weimann
Views: 146,783
Rating: undefined out of 5
Keywords: game development, how to make games, game dev, game programming, unity vs unreal engine 4, how to become a game developer, how to learn game development, indie game development tips, unity, game design, unity3d, programming, make a game in unity, video game industry, gamedev, game developer career, video game (industry), get a job, brackeys, games, development, 2019, gaming, 2020, video game, how to, self taught, learn, how, designer, programmer, c#, develop, unity 3d, computer science
Id: bpSNBscjaDY
Channel Id: undefined
Length: 26min 9sec (1569 seconds)
Published: Sun Jan 19 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.