-
Hi, my name's Mark and I am
making a video game about magnets.
-
So in the previous episode of this series, I was
set something of a challenge from a professional
-
game designer: to make a minimum viable product.
Or MVP. Which is basically a fully functioning
-
game, with everything that makes a game a game,
except the whole game can be extremely condensed.
-
And what's more I have to make this MVP under
a very strict deadline. I've given myself
-
30 individual days to make a fully featured game
with five complete levels. So how did I get on?
-
Well, you're gonna have to
keep watching to find out.
-
Okay, so before I jumped into Unity I
thought the best idea would be to make
-
a plan. How am I gonna spend these 30
days? And so this is what I came up with.
-
I'd spend the first five
days working on the character
-
and the magnet. The absolute basic stuff.
-
Then I'd have five days to make level one.
-
Make all the level architecture and
the game mechanics and stuff like that.
-
Then I'd have 15 days to make levels two, three,
-
four, and five, with the assumption
that I'll get faster as time goes on.
-
That leaves me five days for meta elements
like a pause screen and saving and loading,
-
as well as polishing and bug fixing.
-
I think that's a pretty good plan and I can't
think of anything too important that I've missed,
-
so let's crack on!
-
Spoiler alert: I, uh, I
missed something important.
-
So it's day one and it's time to do
something that I've been wanting to do
-
for a very long time: give my game some graphics.
I am sick of my game being a white rectangle
-
jumping around some blue squares. It’s time
to give my game some character and some life.
-
Now I was really pleased with the response to my
pixel art in a previous episode of this series,
-
when I showed you my old Picross game. So I
decided to do pixel art for this game too,
-
which has the added benefit of being pretty fast
to produce. So in a matter of hours I had made
-
a character, who is now a boxy orange robot.
A magnet with a slightly unnerving face. I
-
might remove that. Some key gameplay elements
like an electromagnet and a button. And
-
some background decoration and some floor tiles.
-
Day two and I started a new project in Unity and
started working on the character. I pulled across
-
a bunch of code from my prototype, but with the
aim of refining it and rewriting it for this
-
MVP. For example the prototype never had any
animation, so time to figure out how that works.
-
Which I realised… it was going to be kind of time
consuming to make a full run cycle for this robot,
-
so I decided to cheat and just kind of cut
its legs off and replace it with a wheel.
-
A bit cheeky but with some nice dynamic poses
and some particle effect it looks pretty nice.
-
Day three and it was time to put the magnet into
the game. Now I wanted to develop my own magnetism
-
system. I’ve been using the built-in point
effector in Unity, which is cool but does have
-
some limitations. Unfortunately I'm not a strong
enough coder for this to really work - my system
-
was good but had loads of bugs and weird edge
cases, so I decided to cut my losses and scrap
-
most of it. But I could reuse some of the code
to make a nice juicy system where the magnet
-
subtly tilts towards nearby magnetic sources.
-
Day four was all about magnet states. So I now
have a red magnet that's attracted to blue stuff,
-
a blue magnet that's attracted to red stuff, a
gray sleepy magnet that's attracted to nothing,
-
and a way to switch between
them with a button press.
-
And then day five was all about picking
up and throwing the magnet. And this was
-
another case of my pixel art making things
more complicated. How do I make the character
-
pick up and hold a magnet, and make it look
good with these pixel art arms? So I cheated
-
again: I cut the robot's arms off and just have
these floating hands to pick up the magnet.
-
But, again, if I put some little
arms on with a line renderer,
-
and use a springy hinge
joint for holding the magnet,
-
I think it actually looks pretty cool. There's
a lot of charm and character here. And so
-
in the first week I now have the character and
the magnet moving around an empty environment,
-
and it looks pretty good. So I'm happy with
that, and it's almost time for level design.
-
Though, first, I had to take a quick week off
to work on the Metroid Dread Boss Keys video.
-
I am still trying to run a YouTube channel here.
-
Okay, now it's time for some level design and
-
the idea for the first level is that it kind of
just introduces you to the concept of a magnet,
-
and has some nice simple scenarios and
challenges to test you on those basic skills.
-
Now in order to actually design the
level I made, what I consider to be,
-
one of the greatest purchases of
my entire life. It’s a whiteboard!
-
This thing is amazing. This actually isn't even
the one I purchased - I purchased this absolutely
-
huge one but it's screwed to the wall downstairs.
But it was so good I bought another one just to
-
have next to my computer. It’s not just great
for level design but also for to-do lists and
-
pseudo code and doodling ideas. I use
it every day, it's the best thing ever.
-
So the way I actually did this was to draw
out a small scenario on the whiteboard:
-
perhaps just a magnet to pull down
a weight, which opens up a door on
-
a pulley system. And then take a photo
of it, erase it, draw out another one,
-
and repeat. Then put all the photos onto my
computer and arrange them in a way that I thought
-
flowed quite nicely, and had a nice
sort of casual incline of difficulty.
-
I could then draw the full… this made much
more sense before I realised how tight the
-
frame was going to crop in. I could then draw
out the full thing on the whiteboard and, uh,
-
remake it in Unity. And so that's what I did for
the first day: I made the level architecture using
-
the tile map, and I designed and drew and coded up
the first mechanics, like the weight and pulley,
-
this crusher thing that can destroy
your character, and an electromagnet.
-
I then wasted an entire day trying to
make a really complicated enemy using,
-
like, a finite state machine AI
system, which was absolutely overkill
-
for this project. So then kind of, again, cut my
losses and just made a really simplistic enemy.
-
basically like a Goomba that can move left and
right and you can bop it on its head to kill it.
-
By that point I had made most of the
level so I kind of just went like…
-
‘done!’, uh, time for polishing!
-
So I used Unity's 2D lighting system to
give the game a bit more depth and visual
-
interest. I had those floor tiles from before
but it would be really tedious to put down all
-
of the floor tiles in the right positions.
But here comes Unity with the assist again,
-
with its experimental rule tile system. You
basically teach Unity how your tile map works
-
and now you can just draw it on and it puts down
the tiles in the right places. It's an amazing
-
system. And I also played around with Cinemachine
which is this built-in camera system that can do
-
really powerful stuff like have it track the
player in a really nice way, and then subtly
-
transition to a zoomed out static framed shot of
a puzzle room, before following the player again.
-
And then finally I just needed to add in a few
more elements to make the level actually work like
-
checkpoints so you don't need to go all the way
back to the beginning when you die, and a way to
-
respawn the magnet if you chuck it into the
spikes. To illustrate this I used a chunky green
-
pipe as a sort of winking homage to my favourite
video game series of all time: Flappy Bird.
-
So now I am on to the big 15 day sprint of
making levels two, three, four, and five. But
-
over the weekend I had an idea for a puzzle.
Now I'm gonna have to be a little bit vague
-
about how the puzzle works, not because I'm like
super precious about my level design, but because
-
I need to get feedback on these puzzles at
some point and that's not gonna work if you
-
already know the solution. So forgive me while
I kind of dance around it a little bit. But I
-
drew the level idea out on the whiteboard,
and then remade it in Unity. And then
-
realised that there were loads of problems
and ways to cheat it in Unity so I had to
-
work on it over and over again, and kind
of iterate on the idea until it worked.
-
But I am really proud of it. It was a lot of fun
to make and I think it is a pretty cool puzzle. It
-
works on a lot of that stuff I talked about in my
puzzle design video of using assumptions to lure
-
the player into realising that there's basically
an impossible catch to the puzzle, forcing them
-
to think in a more lateral way to come to the
actual solution. The puzzle itself is a single
-
screened puzzle chamber with lots of moving parts
and complexity. I just really enjoyed making it.
-
And what's more, to make the puzzle work I had
to design some brand new game mechanics like
-
a laser beam that you can block with the magnet,
which ended up inspiring some new puzzles about
-
lasers. And I also had to make this plug
and socket system where you can transfer
-
power from one block to another,
which itself inspired some new
-
puzzles. And those new puzzles led to new
game mechanics which led to new puzzles on
-
top of that. I mean puzzles were just
coming out of my butt at this point.
-
But I did have a problem. You see, level
one was just a single scene in Unity: a
-
long continuous stage with all of the elements in
the world at once. And so I tried to do that for
-
level two by having the puzzle chambers
all in a single scene and then, you know,
-
I’d put in, like, little corridors to
link them up. But this was a bit unwieldy.
-
I mean that is a lot of stuff in memory at
one time. My hierarchy in Unity was getting
-
way too messy. And, I think, worst of all
it was really hard to move things around.
-
Like if I suddenly decide that actually the fourth
puzzle room is quite easy and so should go in the
-
second place, it would be a nightmare to
shift all of that around. It’s just it's
-
just not worth it. So I came up with a new plan:
instead of having five, big, individual levels,
-
the idea is each level would be a series
of small scenes all connected up via doors.
-
So a level might be three of these
puzzle chambers, with a number of
-
interstitial levels that might teach you the
game mechanics that you'll need in the puzzles.
-
Or provide some platforming as a sort of light
palette cleansing in between the tricky puzzles.
-
It would be a lot more work but I think it is
the right way to go and I'm pretty excited.
-
But I need to take time off from
development again to make the
-
previous episode of Developing, which I
mentioned in this video… how does time work?
-
And this is where things
started to go pretty wrong.
-
So I came back to work on the game and I made
one of these little interstitial levels. A
-
small tutorial, teaching you how the laser beam
mechanic works. But then I needed to stop again
-
because time was running out for the year, so I
needed to make the accessibility roundup for 2021.
-
And as soon as that was done, I had to
transition immediately into making the
-
video on The Forgotten City, because I
was just kind of running out of time.
-
So it's now been a full month since I last
worked on the game, but I tried to put in
-
another day's work. I made some new levels
that are basically replacing level one: you
-
know ,teaching you about picking up the magnet and
throwing it. But then I had to stop for Christmas.
-
I worked for one day after Christmas but then
had to stop for New Year’s. And now it's 2022
-
and I worked on the game for a day,
and did a little bit of level design.
-
And I tried to work on the game for
another day. I put in these little
-
screens that tell you which buttons to press, but
that's literally all I did that day. And then I
-
had to stop again to make the Invisible Choices
video… and this just isn't really working, is it?
-
You see, every time I stop development
to go work on a YouTube video, I
-
lose a lot of momentum, and it's really hard
to pick it back up again. Especially after
-
a month out, basically I took
all of December to make videos.
-
I think what makes it even harder is that
my systems for making the game are pretty
-
messy. Like my code and my tools in Unity…
they're just a bit shonky. I've got loads
-
of little bug fixes and last minute patches and
these things where it has to be set up in just
-
the right way for it to work, which makes even the
-
most simple and easy levels more tedious and
time consuming to design than they should be.
-
So I've lost my momentum I've got tools that
make things more tedious and time consuming
-
than they should be, and it's just sapped all
of my motivation for this MVP. And I've done
-
20 days of game development at this
point, but the thought of doing
-
10 more… like another 50 percent of that
work again is, just, I don't think I can
-
do it. Like, it sucks, but I feel like
I should probably just end it here.
-
But it's not the end of the world, because the
MVP totally paid off! Like, the exercise did
-
exactly what it should have. By giving myself
that deadline and that super specific goal,
-
I got myself out of that analysis
paralysis rut. I made decisions,
-
I made content, I discovered what I really
like about the game, which is making these
-
single screen puzzle chambers. I also came up
with loads of ideas for how to improve the game
-
in the future. For example, having really robust
and reliable and intuitive level making tools,
-
so I can churn out content much
more easily and more comfortably.
-
And perhaps most importantly of all, I have
made something now that I can give to people
-
to play to get some feedback on. Remember, I’m
the only person who has ever played this game!
-
I need to give it to some other
people to see what they think.
-
So it's time for operation “Git ‘er dun”.
-
Just spend a few more days putting together the
last finishing touches to make the game work,
-
to make it playable, so that I can
upload it and get some feedback.
-
So day 21. It's time to radically cut the
scope of the game, from like 35 scenes
-
down to about 14. Much more manageable. And so
I spent that day just working on the final level
-
designs that I would need to plug the gaps,
and have it work as a full functioning game.
-
Day 22 and it was finally time to put in some
audio, some music and sound effects. And,
-
whoa! I should have done this way earlier.
This actually adds so much character and life
-
to the game: even something as simple as a button
coming on and off, if you have a simple sound
-
effect with it, it just works so much better. I
will remember this in future: put sounds in early.
-
And day 23, I crawled to the finish
line by polishing up a little bit,
-
fixing some of the most egregious bugs
that I knew about, and putting in a very
-
scrappy, lazy pause menu for resetting
the puzzle and quitting the game.
-
And now I'm done, right? I mean,
it's a bit messy, it's a bit broken,
-
there's lots of bugs and glitches that I
know about. But I can't do any more. Like
-
it's over. It’s done. I've gotta just
get it out there. It's the end. Right?
-
Well that was kind of the original
plan: this video was going to be
-
about me making the MVP across 30 days.
Or now 23 days. And then the next video
-
was going to be about me
getting feedback on the game.
-
But I got a bit excited, you know! Because I
finished the game it’s, it's playable, it's ready
-
for people to try. And som, you know, I gave it to
my wife to play and her feedback was not… great!
-
MRS GMTK: Why am I up here?
Mark, I think that's broken.
-
MRS GMTK: There's too many
buttons, I don't like it.
-
MRS GMTK: I would say the jump is a
bit… you go a bit all over the place.
-
MRS GMTK: Like I've got it now, so you
don't need to hammer home the point.
-
MARK: It's quite tedious…
MRS GMTK: It’s really tedious.
-
This is really tedious, Mark.
-
MRS GMTK: *Annoyed cry*
-
MRS GMTK: I think I'm a bit tired…
-
But she did give me some very good advice.
She said: you want feedback on this game,
-
but you want people to tell you about the
game as a whole and about the puzzles. You
-
don't want people getting bogged down in all
the little bugs and glitches and annoyances
-
and frustrations. So maybe just spend a couple
days fixing those up before you release the game.
-
So I begrudgingly agreed. So day 24, fix up all
of the annoyances that my wife discovered. And day
-
25, okay, you know I am, like, a better programmer
at this point so I should try and make a better
-
magnetism system. Yeah, that actually looks
a lot better, let's put that in the game.
-
Now I am done, though, right? Well
I gave the game to my dad to play
-
and he discovered a whole bunch of bugs
that I had never seen before. Like,
-
you shouldn't be able to throw that switch off
the screen, that's going to break things. And, oh
-
no, shouldn't be able to do that. That’s, that’s,
that's wrong, that's a disaster. So day 26, fix up
-
all of those bugs. And day 27, if I'm doing this
I might as well do it properly. So I added in a
-
save and load system so you didn't lose all your
progress if you quit the game. And a better pause
-
screen that is less ugly and stops you from
quitting the game with a single button press.
-
But now I really am done, right? Well I gave the
game to my brother to play and he discovered a
-
bunch of ways to essentially cheat the puzzles
and skip the solutions. So day 28 fix all of
-
those problems. Oh and I left the game with my
brother and he gave the game to my eight-year-old
-
nephew who managed to break the game in ways
that only a child can break it. So day 29
-
fix all of those bugs. And day 30
polish, finish, compile, upload.
-
So in the end I did get to 30 days, and
that's because in my original plan I had never
-
considered play testing. I mean
I'm not a complete idiot: like the
-
point of this was that after I finished the MVP
I would throw it out to the world for feedback.
-
But I now see the value of giving the game to
a very small, select group of trusted people
-
to see how they play the game, and see what bugs
they run into, and what assumptions they make that
-
I never did, and to then fix and tweak
the game based on those play tests.
-
Better to get those problems out of the way now
as part of the development process, than after
-
giving it out to thousands of people on the
internet. But it is finally that time! The
-
minimum viable product is now done and I have a
playable demo for the world to play. Or, at least,
-
a very small, tiny fraction of the world because
I'm giving this demo exclusively to my Patrons on
-
any tier for the first month of its
release. And I'll also give it to
-
some designers and developers, including
Oliver who set me this MVP challenge.
-
Because as it turns out, the MVP
was a brilliant idea. I just kind of
-
screwed it up. So if you want to do one of these
yourself, here is my three pieces of advice.
-
Number one, it's got to be pretty
much your singular focus for the
-
duration of the project.
You can't go off for a month
-
and make a bunch of YouTube videos and expect
to keep up that same level of motivation.
-
Two, you have to factor in play testing.
Give yourself at least five days
-
to give the game out to various
people see what their feedback is
-
and tweak and adjust and fix the
game based on those play tests.
-
And three, you don't actually need loads of
content for this. It's not about generating stuff
-
and getting the game built, it's really about
seeing what the game feels like, and plays like,
-
as a complete whole. The way I see it, a prototype
is a way of testing the viability of a mechanic,
-
but an MVP is a way of testing the viability of
that mechanic within a larger game structure. So
-
you want to see: is it working? Is this the right
direction? Is it fun? And, ultimately, that's up
-
to you now. Or at least people who give me money
every month. So, please, if you are a GMTK Patron
-
go download the game, see what you think, leave me
some feedback, and then next month on Developing
-
we will look at that feedback, see what you
think, and decide where to take the game next.
-
Thank you so much for watching
and I'll see you soon.