Hi. I'm Mark Brown and I am making my own video
game. And so to start, I need to learn how to make
video games. Which is quite a big endeavour and quite a
big challenge. So believe me when I say that this whole game
making challenge… well, it almost ended before it ever really began. Let me tell you what happened. ♫ Music ♫ First though, let's back up a step. Because the first thing I had to do was to
pick a game engine. Now, a game engine (at least in this instance)
is a piece of software that helps you make a game by, essentially, taking care of the
stuff that's hard and boring about game development. Things like getting graphics to render onto
the screen, interfacing with a controller, doing physics calculations, and more. Plus, they have loads of really handy tools
that are specifically designed for the things that you'd want to do in a game: like animation
and UI. Now there's loads of game engines out there. I mean the most popular ones are Unity, Unreal
Engine, Godot, Pico-8, Game Maker, Construct. Plus, there are game engines for specific
types of game, like Twine, RPG Maker, and Adventure Game Studio. There are even game engines for specific ecosystems
like Game Builder Garage on Switch, Dreams on PlayStation 4, and Roblox in… the Roblox-iverse. Each one has pros and cons, lovers and haters. But ultimately I had to just pick one. And so, in the end, I decided to go with… Unity. There's loads of reasons why I chose Unity. It seems to strike a pretty good balance between
being very powerful and relatively easy to learn. It's good for both 2D and 3D, which is good
because while I plan to make my first game in 2D, I might want to do 3D down the line
and this means I won't have to learn a new engine. Plus, Unity supports pretty much every platform
under the sun so if I want to take my dumb game and put it on PlayStation 5 that is technically
possible, if not financially sensible. But, really, the most compelling argument
for using Unity is its sheer popularity. Unity is the game engine behind Hollow Knight
and Cuphead and Fall Guys and Overcooked and Cities: Skylines and Hearthstone. It is the most popular game engine on Steam
at the moment and when we ran the most recent GMTK Game Jam more people used Unity to make
their game than every other game engine combined. And that popularity is really important, for
me, because it means there's more people to help me learn it. More tutorials, more resources, more assets,
more plugins, more people I can turn to when I get stuck. For example, there's loads of people in the
GMTK Discord who know how to use Unity. Plus, I know very seasoned Unity users like
Noa from BlackthornProd and Andre from Mix and Jam, who can certainly help me get out
of a jam. That was really bad. Okay, and so that's my decision. Sorry Godot bros, it's all about Unity. That's step one done: pick a game engine.
Tick. Now, step two: learn how to use it. That's the hard bit! And so as I said, there's lots of tutorials
for Unity out there. And that is exactly what I tried to use when
I first started learning it. I went onto YouTube, I typed in ‘Unity tutorials’,
and found a bunch of, like, Swedish men who could teach me how to use the software. And so they showed me how to make a game,
and I followed along diligently. Every time they clicked a box I clicked that
box on my screen. And every time they typed out a line of code
I type out the same line of code. And before long I had a working game on my
computer, which was like… super exciting. But then, many weeks later, I decided to open
up a blank Unity project to kind of see what I had learned. And the answer was… nothing. Like, literally nothing. Like, everything they had said had gone in
one ear and out the other. Like, I couldn't even make a character appear
on the screen and move around. It was terrible! And ultimately it was my own fault: you remember
that video I made about tutorials where I talked about how in strategy games they have
those arrows that say ‘click here’, ‘click there’, and they're not effective at teaching
people at all? Well I had done exactly that for Unity! I had played myself. I had done myself dirty. Agh! But, to be honest, this was really demoralising. Like I truly felt like an idiot. Like I had wasted weeks of my life and I didn't
know if I was even cut out for game development at all. Like, if I can't even watch a tutorial and
have any of it sink in then maybe I'm not cut out to do this. Maybe I should stick to what I know. And I mean this was like months ago and I
was planning on doing this series that I'm doing right now and at the time I thought
maybe I should just cancel it. Like, maybe I should just never announce it
and just pretend it never happened. It was… it sucked. It was horrible. But then I thought about Adobe Premiere. This is the software that I use to make all
the videos on this channel and it's a pretty complex piece of software and yet I know how
to use it, and I know how to use it pretty well. So how did I learn Premiere? Well, when I was working at Pocket Gamer we
had to do these very basic video reviews. And so a colleague taught me the basics of
Adobe Premiere: like just the absolute baseline knowledge you need to make a video. How to import clips, put them on the timeline,
apply really basic transitions, and export them to YouTube. Then I had to make dozens of these video reviews
myself. And so I had to repeat those basic steps over
and over again, as they slowly wormed their way into my brain. Then I made Game Maker's Toolkit. And at that point I wanted to do more interesting
stuff with video. I wanted to do masks and colour and text and
transitions and motion graphics and all that fun stuff. And, really, that should have been very difficult
to learn. But I had two things on my side: one is that
I don't need to learn everything all in one go. As long as I'm always trying at least one
new thing in each video I make, I can slowly build up a repertoire of effects and knowledge. And, two: because I had done those video reviews
I had become really familiar with Premiere. I was comfortable with the software and so
whenever I wanted to try something new I felt I could experiment and play around. Or, at the very least, I knew what I should
go and type into Google to get the answers I needed. And so ultimately I ended up following a pretty
nifty three-step formula in order to learn Premiere: step 1, learn the absolute basics
and nothing more. Step 2, familiarise myself with those basics
through repetition and simple projects. And then 3, slowly, over time, build a repertoire
of tools in Premiere as I build and build and build my knowledge base of the software. And this has obviously worked pretty well
for me. I know how to use Premiere now. I can make pretty much whatever I want in
the software. And I think I understand why this worked. You see, making videos is often about coming
up with some idea: like ‘wouldn't it be cool if I had a VHS-style pause effect right
now?’. And then I need to figure out how to realise
that idea. Like how am I gonna make it so that the frame
pauses? And then what effects should I use to really
sell this effect? And then how do I get that wibbly line to
scroll down the screen? And if you think about it, there is an infinite
number of ideas I could have so it is physically impossible to learn how to solve all of them
at the beginning. But what I can learn is familiarity with my
tools, so that when one of these ideas crops up I have both the confidence and comfort
with the software to experiment for myself and figure things out. And I have the context for how the software
works, so I kind of know where the problem is and I know what terms to use when Googling
it. Or I know how to ask someone for help. And boy if that doesn't sound a lot like game
development, right? You have an infinite number of ideas that
could possibly crop up, and it's impossible to learn all of them. So all you can really do is build familiarity
with your tools, so you'll have some solutions when those problems arise. So perhaps I can take my three-step structure
- basics, familiarise, experiment - and apply it to Unity. Sounds like a plan. Let's give it a go. Okay, so luckily I'm not starting completely
from zero when it comes to game development. I am familiar with the fundamentals of programming,
or at least that's what it said on my Tinder profile. So I know about if statements and for loops
and functions and stuff like that. And I have dabbled in Game Maker, so I kind
of get how game engines work… sort of. But I do need to understand how Unity itself
works. So that starts with just the real basics of,
like, what is this UI, and what should I click on, and what are the keyboard shortcuts, and
stuff like that. I also kind of need to understand conceptually
how Unity works. Like, for example, Unity is all about GameObjects. Everything in Unity is a GameObject. And until you fundamentally understand what
that is you can't go forward. And if you're curious, a GameObject is basically
like an invisible container with a position, rotation, and scale, which you can then fill
with components to make it do stuff. That includes a sprite renderer to give it
an image, a rigidbody to give it physics, a collider to make it hit into things, and
most importantly a script to let you write programming code for it. Once I had that in my brain I put together
a list of things that I would really need to know in order to make games: things like how do I make one
GameObject talk to another GameObject? How do I spawn in new GameObjects and then
how do I delete them again? How do I make something happen when two GameObjects
collide into each other? How do I do UI and sound effects and animation? How do I deal with levels and game over and
things like that? So then I used tutorials and Google and talking
to people to kind of answer those questions and figure out the basics of Unity. And, sure, there are probably plenty of Unity
people watching this right now who think that is not a very comprehensive list. That is not going to get you very far. And there are probably, no - definitely, better
ways to do all of the things that you have just learned how to do. And, yeah, that's true. But it's enough to get me started. I can make stuff appear on the screen, make
it move around, make collisions happen, spawn things in, delete them again - these are things
that are fundamental to how games work and they are these kind of genre agnostic things
that I will need to know no matter what I make going forward. It is the baseline, bedrock that I can use
to start building from. And so with that I'm on to step two: to really
prove that I understand those things and to really familiarise myself with them, by repeating
myself and making simple projects. And I found in game development the best way
to do this is through the ancient art of plagiarism. What I mean by that is by copying really simple
games, things like arcade games, mobile games, web games, mini games… anything with really
basic gameplay and rules. By copying them I can prove to myself that
I understand how Unity works. And I think this is a really good training
tool because you don't have to worry about art or design or rules or anything like. That that's already done for you. All you need to care about is code. And you get this really clear objective: can
I take this game and recreate it, in Unity, by myself? And so the first game I did this with was
Flappy Bird: the really simple iPhone time waster about a big fat bird fighting with
gravity. And, yes, sure, there are tutorials out there
for how to make Flappy Bird in Unity. There's about 10,000 of them. But I didn't want to use them. I wanted to do it by myself. So I started by playing the game and figuring
out how it worked, and then making a game plan for how I was going to recreate it. It was really important to make the steps
as small as humanly possible: like, step one, make a bird appear on screen. Step two, make it drop. Step three, make it flap. Just one thing after another, nothing too
crazy. And then I just went about making it. I made a GameObject and gave it a sprite renderer
for the bird, an animation controller for the flapping, a rigidbody so it falls, a box
collider so it hits into the pipes, and a script so that whenever I hit the space bar
it applies some velocity to the bottom of the rigidbody and makes the bird flap into
the air. Nice! I then made the pipes and turned them into
a prefabricated GameObject, or a prefab, that allows me to spawn in an infinite number of
them at different heights. And it was here that I discovered a game development
cheat code! You see, the intuitive thing to do would be
to make the bird fly through a field of pipes but that's quite hard to do. What's a lot easier is to make the bird just
stay still and have the pipes move across the screen and then delete when they go off
the screen. Trust me, I felt like a genius when I figured
that one out. I also had to sort out collisions so when
the bird hits the pipe that's a game over, but if the bird goes between two pipes that
hits a trigger and adds a score to my UI. And so that involved sending information from
one GameObject to another: that fundamental lesson I had learned was being put to use. And then I finished it off with some sound
effects and some basic stuff like clouds flying by in a parallax effect. And this felt… amazing! I know it looks dreadfully unimpressive: like,
well done jackass, you stole the most simple game ever made, I hope you're proud of yourself. But I am! I am, I was, I am, I'm proud of myself. I took this game that exists, I broke it down,
and I remade it myself in Unity. I had proven that I knew how Unity worked
I got it working all by myself. It felt great and it felt a lot better than
that demoralising feeling I had when I first tried to learn Unity. And in fact it was such a good feeling that
I did it again, this time for the game Pop the Lock which is about a line that rotates
around a circle and you have to collect other circles… again it's pretty simple, but it's
very addictive. The process was pretty much the same: play
the game and kind of reverse engineer it to get a sort of quasi-design document. Break it down into the smallest steps possible,
like just have a thing rotate around the screen, and build it step by step. This one did cause some pretty big problems
because it's based around rotations, and rotations in Unity kind of use this thing called ‘quaternions’
which are like a four dimensional, rotational, axis. And my brain just kind of leaks out my ears
when I try to read about them, so that was quite difficult. But I did discover this cool built-in function
in Unity called ‘.RotateAround’ that allows you to rotate one GameObject around a point,
and that solved so many problems. And now that's in my memory banks for the
future. I also figured out this cool thing about parent
and child GameObjects and that solved a lot of problems too. And so then, again, I had this game working
on my computer and it just felt really cool at the time! I i can't really explain it, but it was just
like: I did it! I had this goal: make this game. And I did it. And the most important thing was that I was
proving that I knew how to use Unity and I was also building my familiarity with the
tools. The things that I had to solve when I was
making that game, I couldn't have done when I started but I can now because I kind of
know where to click, I know where to look, I know what to type into Google. And so at this point I feel pretty good about
Unity. Like, I'm definitely not an expert… but
I've got somewhere to start. And I think right now I should move on to
step three: to start building my own games and start experimenting. And, sure, I'm gonna run into problems. There are things I don't know how to do. There are problems I will face. But I've got that confidence and that comfort
with the tools now. I understand Unity on a conceptual level. I understand the basic things I need to know
how to do, and so from this point when I run into a problem I can probably solve it, maybe. I can at least play around and at the very
least I know what to type into Google. Or I know how to construct a question for
someone who is much smarter than me. Now I can't guarantee that this style of learning
will work for you. Everyone learns in a different way, and maybe
you do just like having someone explain things to you in a Swedish accent. But for me, someone who gets very easily bored
by tutorials… I possibly have ADHD, I don't know. Someone who needs to experiment and play around
with things and fail to really get things to go into their brain, this approach worked
for me. Learn the basics, familiarise myself with
them, and then slowly build up a repertoire over time. And I guess we'll really see if this works
in the next episode of this series because I am going to start making my own game and
start making a prototype. I do hope that you will join me. For now though, I know that this isn't a tutorial
series but if you watch this and you're thinking boy I would really like it if you could teach
me the basics of Unity, Mark… well, let me know if that would be useful in the comments
down below and if I have time I might be able to squeeze in a quick tutorial video to go
along with this series. For now though, thank you so much for watching. And I'll see you next time. This light is gonna run out of battery very
soon. But… you’ve done me proud. *Click*
I'm genuinely interested in watching this play out. Mark makes a great series, and I am curious if he can spin those observations into a quality game. I can't think of too many 'critics' who ended up making their own content without opening themselves up to the very scrutiny they dole out. I'm pretty confident he'd be able to pull it off though.
Well, he has the hardest part done already... any game he makes is guaranteed to get noticed.
Reminds me of his interview with the naughty dog dev. When he was told the museum level took two years, his mind was blown.
He's about to learn how different picking things apart is from creating them.
As someone who went through the same process that Mark described, I have to say this video felt very cathartic. It's a video I wish I had seen when I was growing up.
"maybe im not cut out for this" Man did I go through this, and still am, but its good to hear someone else vocalize it. I got my first game on steam this month and its sold 125 copies, I am excited about game dev and im going to push forward.
I always thought he was a game developer because of his channel. I look forward to this new series, because I'm a developer for my job and have always been a gamer, but I find the game development process as this giant, somewhat intimidating mountain to climb. This first clip gives me hope and a new perspective.
Holy absolutely shit, this could not have not hit at a better time for me personally . . . I literally just went through this same process and was at the . . . "maybe I should just cancel it" phase
It takes courage to begin making a video game yourself after years of talking about what's right and what's wrong in video games. After all, he will be judged by millions of people by the standards he set.
Great video. Mark doxxed me on gmail