yes yesdev ye i'm Ryan Lambourn when we left off last week i said I expected
you to have made something did you make
something please tell me you made something it'd be really bad if you didn't you had a whole week I guess if you are watching this in the future you could've just gone straight to the next video in which case what are you doing here? don't watch this video until there's been a week you gotta go and do things for a week and then come back I'll wait here alright welcome back welcome back to
game development game development with Ryan Jake Lambourn wow oh now you have a little bit of
experience under your belt I hope I hope congratulations
you put stuff on the screen you made it move around when you press buttons you are well on your way to being a AAA game developer look at you so i'm not gonna like talk very specifically about things generally because I want this series to be timeless so this next bit of
information its software design and I don't know
if it'll apply to all engines some some do more than others
but it's something I want you to keep in mind because it does matter and it is something you might overlook
it's something I overlooked when I was starting out for a long time the one true most important pure software design
thing for game developers is that you want to
separate in your code what is input what is the games logic and what is output so for example if you were to have a block of code that was checking if a key was pressed and then moving a graphic by 10 pixels and this is like something you've
probably already done in some tutorial that's poor software design I mean it makes
enough sense to make a quick thing happen as soon
as possible but going forward as your games get more complex and you have more moving
parts deal with that sort of design will become a huge
hindrance to what you want to do so you want to separate those things so
that in that example the keypress is an input and moving the
actual graphic is an output and the game logic is the idea that you would move a thing when you
press a thing so to separate that you would put all your
keypresses into a single a single thing a function a class whatever i don't care how you do it and then have just like a single object or a bunch of variables that represent the keys that are being pressed
as practical in game ideas so instead of if the user press space it would be a
function that assigns space to the jump input
variable and you would be checking if jump input and he says really obvious applications
right away where you can just you know change out what the keys are if
you personally decide that things need to be changed or if you
wanna implement key mapping and then the other side output it's a bit more complex and and it's it's probably the part that
you will have a really hard time coming to grips
with but it helps to think about it like this basically you want, you want to be able to run the output every single frame that the game is running where as the
logic you could be like I'm just gonna run it
once every you know four frames or only when the player presses something and so what
would happen with the output is that when you tell something to move in the logic the output would move it by an incremental amount each
frame so that way you could say i wanna move this graphic 10 pixels and the output code knows that it wants to
move that 10 pixels over two frames so it would move 5 pixels each frame and the reasons why you want to do this is because it makes the code a whole lot cleaner more readable portable it makes it if you have like some really intense code in your logic which happens for like AI sometimes pathfinding stuff like
that or just ridiculous loops for some reason it happens sometimes then it makes sense to you know stutter the logic you don't really need logic running 60 frames per second usually and it does allow you to do some
interesting effects as well before I said you would split it up over
two frames to 5 pixels each but you could also do
it in a way that has easing so you could go like six pixels and then four pixels and that would look like it was going really
fast and then slow down obviously that doesn't really make sense
if it's a constant movement but it makes something coming to a stop
look much better so maybe you wanna try splitting up input and output and the game logic for you next
little clone even if it doesn't have a point little
games obviously doesn't matter that much doesn't really need to be clean that is important to remember that if
you're just gonna make really super small games and you have no plans to expand its fine to just shit things everywhere I'm just giving you
this as like a a warning for the future and you know
keep you informed on something that isn't really publicly shown normally i wanna talk about one man armies for a second you are one person making a game you are a one man army you are a 1MA and that's a good thing don't let anyone tell you that's a bad thing if your first impulse was to go and find someone to work with shut that down right now right now I'm not saying you shouldn't ever work with anyone but rule of thumb if if anyone working directly on the game hasn't made
a game before on their own they they shouldn't be working with you it's not going to be
good it's not going to be good for you it's not gonna be good for them because
there's there's just no excuse to be like trying to work on a game with
a team when you have no experience making a
game there's no excuse even if you're an
artist you you could make a little platformer all on your own in game maker is not that hard and and the reason I would advise even if you are an artist just
planning to be an artist doing arts to actually go and
make a game on your own to get some empathy for what's going on on the other
side and and I don't mean empathy as in
sympathy i mean empathy as in empathy as in understanding where
they're coming from alot of people alot of people confuse empathy with sympathy they think I'm telling them that they need to you
know feel you know bad for programmers no no its about understanding both sides of game development you gotta
know you gotta know what's going on and you'll have a better idea of how to not
waste their time understanding understanding is good
understanding the world needs more understanding this is about life man this is about people and humanity and caring alright i'm gonna stop scope scope so your're a 1MA right now scope 1MAs live in scope even in the future if you decide to you
know become a 2? 2MA? you still gotta live with scope scope is important scope is life scope is where games are because you might be
able to to just hype a game that has everything you might be able to make 10 billion dollars selling spaceship packages for your game
that has everything in it but you know you're not gonna have? a game you're not gonna have a game doing that if you wanna finish a game you gotta have
scope and that means reining in on ideas to something that's doable you gotta be
able to finish the things you start otherwise it's like you didn't do nothing at
all it's like you wasted your time that's how I feel you know some people
are like I dropped a project but I gained experience well yeah you gained experience in starting a game what you didn't gain was experience in
finishing a game and finishing a game is like the hardest
part you spend 99% of your time finishing a game first week of making a game it's it's fun it's a lot of fun you can get alot done in the
first week of making a game unless it's like something completely brand new that no one's ever thought of before and then it's gonna be really ridiculously hard but you know your first week of your
platformer or whatever it's gonna be really cool people are gonna be like wow look at that and you're gonna be having fun just playing around in it but that that goes away quickly and that
becomes it becomes a slog as you want to make
something you know fleshed out something proper
playable something enjoyable meaningful whatever
you're going for at the start you're making big broad concepts into reality and it instantly transforms nothing into something and
it's amazing but as you get further in it's you know
little little things constantly nagging at you and its easy to drop projects with the game nagging its little
problems at you all the time it's important be able to work through that stuff and make something properly finished because thats that's what you wanna be
doing you wanna be making finished games that people can play and enjoy and not be like this doesnt feel finished this is why did you release this for? this isn't this isn't anything and so that's where that's where scope comes in the tenants of scope are you wanna make your idea for your
game as simple as possible when you're working on your game if
something is too complex taking way too much time try and find a
way to simplify it or see if you can get rid of it you
don't need everything that you think of not everything has to be bigger and blockbuster you know you might love like GTA or whatever but thats like thousands of people working on a really boring game sorry but GTA is boring it's just cars why is there a golf mini-game? this is stupid i dont care mission mission i'm gonna give you a mission again your next mission is is gonna be to make something original after you've made a few more simple
things to get comfortable you know you're gonna spread your wings and you're gonna make something original but you're gonna keep it really small as small as the little clones you've
been making but original ish get a feel for what
it's like to make a game where you don't know what you're making where you don't know where the endpoint really is because it might not work as well as you had hoped in fact it probably won't that's just how that's just how gamedev rolls and you know start making some graphics start putting in audios and musics even if it's not something you signed up
for even if it was like i just just wanna, no you're working on your
own right now so you should probably get into doing a bit of everything
even if it's not good that doesn't matter just just make it happen and next time we're going to talk more about game design and art concepts concepts cock concepts conceptualizing
and [automatic translation] in the future we'll talk more
about you know how to get into doing art if
that's a thing you want to do and how to get into animation if that's a thing you wanna do not the same thing art and animation music and audio and and writing and all this stuff gamedev is a multi-discipline practice so I'm gonna I'm gonna give you at least a primer for
all the things all the things, how to draw the Owls imma teach you imma be there imma be there with you and I'm I'm just gonna I'm gonna be so proud of
you peoples I'm gonna be so proud of you