WEBVTT 00:00:00.160 --> 00:00:06.240 Hi, my name is Mark and I am -  still - making a video game about 00:00:06.240 --> 00:00:11.280 magnets. So it's been a little while  since we last spoke but in that time, 00:00:11.280 --> 00:00:15.200 three things have happened to me that  have inspired me to get off my butt 00:00:15.200 --> 00:00:29.840 and finally start to bring this game to the  finish line. So, here's what happened... 00:00:31.920 --> 00:00:37.840 Okay so the first thing was definitely the  response to the demo I put out at the end of 00:00:37.840 --> 00:00:42.800 the previous video. I put out a demo to address  some of the most negative feedback I'd received 00:00:42.800 --> 00:00:48.960 on my minimum viable product. So people thought  the character controlled like junk? Well, I spent 00:00:48.960 --> 00:00:54.560 a month making a much better character controller.  People thought the mix of platforming and puzzle 00:00:54.560 --> 00:01:00.480 solving was a bit confusing. So I stripped  out the platforming and focused exclusively on 00:01:00.480 --> 00:01:06.800 puzzles. People thought the game wasn't magnet-y  enough, so I gave the magnet a face, the power 00:01:06.800 --> 00:01:13.600 to change polarity, and made sure every single  puzzle was inherently based around magnetism. 00:01:13.600 --> 00:01:18.880 And all of those changes received pretty good  feedback, but I think the best response came 00:01:18.880 --> 00:01:25.440 to the design of the puzzles themselves. You see,  I spent a lot of time just kind of working on the 00:01:25.440 --> 00:01:32.160 craft of puzzle design, specifically to get more  of those 'aha' moments. I've spoken about those 00:01:32.160 --> 00:01:38.080 before: basically when a player feels stumped by  a seemingly impossible puzzle and then suddenly 00:01:38.080 --> 00:01:45.360 sees the twist at the heart of the conundrum and  is able to make the logical leap to solve it. 00:01:45.360 --> 00:01:48.160 And so did I achieve that with this new demo? 00:01:48.720 --> 00:01:52.800 Well I think I'll let these let's  play videos speak for themselves: 00:01:52.800 --> 00:02:01.120 HARRY: Okay what is this? So when this button  is down I want to be here. So how do I do that? 00:02:01.760 --> 00:02:06.480 I don't know. I'm thinking. This is what the  robot does when he thinks. He just swings the 00:02:06.480 --> 00:02:14.160 magnet back and forth. Ah! Did you hear that?  That's the sound of me maybe figuring it out. 00:02:14.160 --> 00:02:18.680 Oh that's so smart. Oh my  goodness, it was worth it! 00:02:18.680 --> 00:02:25.520 MARK: So that made me feel pretty confident that  I was on the right path with my puzzle design. 00:02:25.520 --> 00:02:31.280 But it also just felt awesome to  have made this thing, these puzzles, 00:02:31.280 --> 00:02:38.240 put them out into the universe for people to then  find them, play them, and have a strong positive 00:02:38.240 --> 00:02:44.480 emotional reaction to a thing I had made. To have  noises come out of their mouth. It was almost 00:02:44.480 --> 00:02:49.840 like casting a magic spell on people. It felt  really cool, it's not something I've done before. 00:02:50.400 --> 00:02:56.080 And it inspired me to, you know, make more  puzzles and package them up in a finished 00:02:56.080 --> 00:03:01.920 game. It inspired me to get off my butt and  finally bring this game towards the finish line. 00:03:01.920 --> 00:03:09.200 And so I... didn't, and instead stopped work  on the game entirely for a month to make 00:03:09.200 --> 00:03:13.920 a completely different video game,  which ended up being Platformer Toolkit. 00:03:13.920 --> 00:03:20.080 Look, I had this idea for an interactive  video essay and if I have an idea to do 00:03:20.080 --> 00:03:26.800 something and I'm excited about the idea, it's  really hard to not just focus on that thing 00:03:26.800 --> 00:03:33.280 intently until either I burn out or the thing is  done. And so that's what happened with Platformer 00:03:33.280 --> 00:03:38.560 Toolkit. But it was also the second thing  that inspired me to finish my game. You see, 00:03:38.560 --> 00:03:44.240 Platformer Toolkit was very much inspired  by this whole series: I wanted to take my 00:03:44.240 --> 00:03:49.520 experience of making a platformer character  and share it with people in an interesting, 00:03:49.520 --> 00:03:54.480 interactive video essay. But also the  development process of Platformer Toolkit was 00:03:54.480 --> 00:03:59.520 massively informed by everything I've  been talking about on this series. 00:03:59.520 --> 00:04:04.480 So I made quick and dirty prototypes of  some of the key mechanics. I made a minimum 00:04:04.480 --> 00:04:11.040 viable product with most of the systems turned  on but only a fraction of the content. And I 00:04:11.040 --> 00:04:16.240 released demos early in order to get feedback,  which would help the development process. 00:04:16.240 --> 00:04:22.400 Following these steps allow me to speedrun the  game development process and get Platformer 00:04:22.400 --> 00:04:28.320 Toolkit up to the same point as Untitled Magnet  Game, but in the space of a few weeks rather 00:04:28.320 --> 00:04:33.840 than a few months. But then I went further with  Platformer Toolkit and actually finished it. 00:04:33.840 --> 00:04:39.440 You see, the game jam was fast approaching and I  realised that I need to either finish this thing 00:04:39.440 --> 00:04:46.720 now or it will never get done. Snd so I did. I,  you know, completed the development process of the 00:04:46.720 --> 00:04:53.040 game. I learned a lot about how to finish video  games - definitely more on that towards the end 00:04:53.040 --> 00:05:00.800 of Developing - but I also saw just how good it  feels to take a creative project and finish it. 00:05:00.800 --> 00:05:05.520 I mean, for one thing, you get to put it out into  the world for people to enjoy. Platformer Toolkit 00:05:05.520 --> 00:05:11.520 has been played by almost 100,000 people and  the comments and reviews have been wonderful. 00:05:11.520 --> 00:05:17.040 You also get to flush this thing out of your brain  and stop thinking about it all day, every day, 00:05:17.040 --> 00:05:22.960 for weeks and weeks on end. And also you kind of  get permission to move on and do other things. 00:05:22.960 --> 00:05:28.960 And I realised that I want all of this for  Untitled Magnet Game. Like as much as I'm enjoying 00:05:28.960 --> 00:05:34.080 working on this game - it really is an absolute  joy - I don't want to be making a video game about 00:05:34.080 --> 00:05:40.400 magnets for the next 10 years of my life. I want  to get it done and then move on to other games, 00:05:40.400 --> 00:05:46.400 in other genres, with other art styles, and  solve other design problems. And so I felt 00:05:46.400 --> 00:05:55.200 inspired to get off my butt and bring this game  towards the finish line. And then I just didn't. 00:05:55.760 --> 00:06:00.240 Instead I worked on the game jam and another  video and then just kind of procrastinated. 00:06:00.240 --> 00:06:06.400 But then there was thing three that inspired  me. Okay, so soon after I had started working 00:06:06.400 --> 00:06:12.800 on Untitled Magnet Game I started seeing  clips for a game called Elechead. This is a 00:06:12.800 --> 00:06:19.840 2d platformer about a robot who throws an  object around in order to solve puzzles. 00:06:20.640 --> 00:06:25.440 That's pretty close to what I'm working on  - doesn't feel great! And so when the game 00:06:25.440 --> 00:06:29.280 came out, even though it's exactly the sort  of thing I would normally love to play, 00:06:29.280 --> 00:06:34.160 I just didn't play it. Because, you know, partly  out of spite. Partly out of jealousy - the game 00:06:34.160 --> 00:06:38.160 was getting amazing reviews. And partly because  I didn't want to sort of accidentally steal 00:06:38.160 --> 00:06:45.360 any of the ideas. But then a few weeks back  I finally gave in and played the game. And, 00:06:45.360 --> 00:06:49.360 yeah, it's great. It's really good, it's well  designed, deserving of the great reviews, 00:06:49.360 --> 00:06:53.600 and different enough from what I'm  working on for the two games to co-exist. 00:06:53.600 --> 00:06:58.880 But it was also hugely inspirational for me. And  this is going to sound like a bit of a backhanded 00:06:58.880 --> 00:07:04.160 compliment, but I was impressed that the game  had gotten such good reviews - reviews I agree 00:07:04.160 --> 00:07:11.360 with - despite the fact that it doesn't have an  epic storyline. It doesn't have state-of-the-art 00:07:11.360 --> 00:07:16.400 graphics. And it doesn't have millions of puzzles  - in fact, the game is very short. It's only a 00:07:16.400 --> 00:07:22.160 couple of hours long. But what it made me realise  was: I think in my head, Untitled Magnet Game was 00:07:22.160 --> 00:07:27.200 kind of impossibly large. Too big for me to  think about ever finishing it. But then I look 00:07:27.200 --> 00:07:34.400 at a Elechead, and that level of scale and scope  and ambition actually does feel attainable. If I 00:07:34.400 --> 00:07:39.200 think of Untitled Magnet Game as having a similar  number of levels, and a similar sort of storyline 00:07:39.200 --> 00:07:45.280 to something like a Elechead, that is something  I could actually do. That is something I could 00:07:45.280 --> 00:07:52.320 finish. And so I felt inspired to get up off of  my butt and bring this game to the finish line. 00:07:52.320 --> 00:07:58.800 And this time I actually did do some work  on the game! And in the last month or so I 00:07:58.800 --> 00:08:04.640 have done so much work that has brought the  game so much closer towards being finished. 00:08:04.640 --> 00:08:08.480 So what I really mean when I talk about  bringing this game closer to the finish line 00:08:08.480 --> 00:08:14.960 is there's a lot of stuff in this game that is not  finished, not finalised, not properly implemented, 00:08:14.960 --> 00:08:19.600 or just not implemented at all. It's just in my  brain or in a notebook. These are things that 00:08:19.600 --> 00:08:26.240 I've been leaving for another day or putting on  the shoulders of future Mark. And this process 00:08:26.240 --> 00:08:34.960 is about saying: today is another day. I am  future Mark. And it's time to get cracking. 00:08:34.960 --> 00:08:38.160 So first things first, there is of  course the character - but I'm actually 00:08:38.160 --> 00:08:43.520 really happy with that now. I think that is  pretty much final code and final animations 00:08:43.520 --> 00:08:48.560 and final sprites. I'm happy for that to  be the character in the complete game. 00:08:48.560 --> 00:08:55.040 But the magnet needed a lot more work. So what  I finally decided to do was split the magnet 00:08:55.040 --> 00:09:00.800 into three distinctly different characters. So  this is the first one you'll meet in the game: 00:09:00.800 --> 00:09:07.440 he's called Max, he is a basic red magnet and  has no special abilities. Which is probably why 00:09:07.440 --> 00:09:14.480 he looks a bit miffed. Then you'll meet Maggie,  and she has the power to switch polarity and swap 00:09:14.480 --> 00:09:22.240 places with her sister Meg. And so it's like two  characters on the same magnet. And then finally we 00:09:22.240 --> 00:09:29.760 have Magnus who is a big chunky boi. And the fact  that he's so big means that instead of him being 00:09:29.760 --> 00:09:35.280 attracted towards magnetic sources, he is the  magnetic source and stuff attracts towards him. 00:09:35.280 --> 00:09:40.640 Now this took a lot of time for me to implement  into the game. Lots of design work and problem 00:09:40.640 --> 00:09:45.200 solving and iteration. Until I realised that  the solution had been staring me in the face 00:09:45.200 --> 00:09:51.440 the entire time. You see, back in the MVP,  every magnetic object was its own bespoke, 00:09:51.440 --> 00:09:59.440 uniquely-crafted thing. Which was kind of dumb.  So in the end I made a generic magnetic panel 00:09:59.440 --> 00:10:05.120 which can be resized and placed pretty much  anywhere you want. You can put it on the ceiling, 00:10:05.120 --> 00:10:10.720 or connect it to a moving block, or a weight and  pulley system, or put it on these swinging gates, 00:10:10.720 --> 00:10:16.000 or put it on the tip of a magnet. Make  it invisible and now you have your own 00:10:16.000 --> 00:10:20.800 personal magnetic field to play with. That  should lend itself to some really cool puzzles 00:10:20.800 --> 00:10:26.560 about manipulating the shape of the world. And  with that I finally have the cast of characters 00:10:26.560 --> 00:10:30.880 for the final game. You'll meet them throughout  the experience, one by one, then maybe they'll 00:10:30.880 --> 00:10:35.120 come together for puzzles. Maybe you'll chat  to them and have a little banter with them. 00:10:35.840 --> 00:10:40.960 I don't know that's still for another day.  Bad Mark! But can't do everything today. 00:10:40.960 --> 00:10:46.080 Another thing I did was finalise some of  the core mechanics in the game. So I built 00:10:46.080 --> 00:10:51.120 a better moving block with these little lights  on it to show you where it's moving. I also 00:10:51.120 --> 00:10:57.200 built a magnetic block that can be made into  any size you like. For this I built a system 00:10:57.200 --> 00:11:02.080 where you can split up the sprite into different  bits, put the corners into different places, 00:11:02.080 --> 00:11:07.680 and it automatically tiles the edges to match.  And then I put this out on my discord and everyone 00:11:07.680 --> 00:11:14.080 went 'Mark this already exists, it's called  nine slicing, and it's been in Unity forever'. 00:11:14.080 --> 00:11:18.000 And so I felt like a bit of a doofus for  wasting so much time. But I'm glad I found 00:11:18.000 --> 00:11:22.720 nine slicing because it's been hugely useful in  so many things I've been working on since then. 00:11:22.720 --> 00:11:28.320 I also brought the laser beam back from  the MVP, and gave it a bit of a facelift. 00:11:28.320 --> 00:11:33.200 I've also been learning a bit more about shaders  in Unity which I used for the laser beam and this 00:11:33.200 --> 00:11:38.640 computerised display for the laser receiver.  Shaders are amazingly powerful: very cool, 00:11:39.280 --> 00:11:44.880 very complicated. I feel like I'm only scratching  the tip of the iceberg- that is a mixed metaphor 00:11:44.880 --> 00:11:51.120 there. I feel like I'm only scratching the...  surface of shaders. That's how words work. I 00:11:51.120 --> 00:11:57.200 also made a ridiculous conveyor belt, again using  the generic magnetic panel, and spent way too long 00:11:57.200 --> 00:12:02.160 bug fixing a thing where I can make it change  direction. And a few other mechanics as well. 00:12:02.160 --> 00:12:06.240 Another thing I have been putting off and  putting on the shoulders of future Mark 00:12:06.240 --> 00:12:11.520 has been sound effects. I know just how  important sound design is to making a game 00:12:11.520 --> 00:12:16.400 feel alive and polished and complete,  but it's very easy to just put it off 00:12:16.400 --> 00:12:20.320 until the future. But it is the future! The  future is now baby! And it's time to put in 00:12:20.320 --> 00:12:24.080 some sound effects. So these are some of  my favourite ones that I have put in... 00:12:24.080 --> 00:12:28.393 *Door Creak* *Drill Whirr* 00:12:28.393 --> 00:12:30.147 *Laser, Musical Notes Rise* 00:12:30.147 --> 00:12:32.480 *Clang* *Suction Pop* 00:12:32.480 --> 00:12:36.000 I also put in some placeholder  music, just to kind of give the game 00:12:36.000 --> 00:12:42.720 a bit of a different vibe. But in terms of the  actual soundtrack, that is again another future, 00:12:42.720 --> 00:12:47.440 future Mark thing to figure out. I've had a few  people reach out to say 'hey, I'm a composer, 00:12:47.440 --> 00:12:51.360 I could make music for your game'. And thank  you for that - I'm just not quite ready for 00:12:51.360 --> 00:12:56.160 that conversation yet. So at some point in  this series I will do a much more public 00:12:56.160 --> 00:13:01.920 call out for composers for me to  hire. Until then, please be patient. 00:13:01.920 --> 00:13:06.320 Another thing that I have been  sitting on for a long time has been 00:13:06.880 --> 00:13:14.080 backgrounds. So in both demos I just have a really  basic checkerboard tile effect in the background, 00:13:14.080 --> 00:13:18.720 but people have said that's a bit boring. And  I agree. If you look at other platformers and 00:13:18.720 --> 00:13:24.640 puzzle games they have these amazing images in the  background that really give these games a sense of 00:13:24.640 --> 00:13:29.680 place. And so I wanted something like that for  my game, but I couldn't quite figure out the best 00:13:29.680 --> 00:13:36.880 way to do it. I mean, I needed something that was  visually interesting and evocative and colourful, 00:13:36.880 --> 00:13:41.840 but at the same time it needed to be easy for  me to make with my pretty limited art skills, 00:13:41.840 --> 00:13:47.120 and also didn't distract too much from the  more important puzzle elements. Luckily, 00:13:47.120 --> 00:13:51.040 I figured out a nice solution. So the first  thing was not to do with the background at all, 00:13:51.040 --> 00:13:56.960 but actually those puzzle elements. I  boosted the 2 pixel black border to a massive 00:13:56.960 --> 00:14:02.720 4 pixel border which I think makes everything  look better and more chunky and fun, but also 00:14:02.720 --> 00:14:06.960 helps them to pop off of the background.  But in terms of the background itself, 00:14:06.960 --> 00:14:13.760 well I found this image on Google from OpenGameArt  and thought it looked pretty sweet. Threw a shader 00:14:13.760 --> 00:14:17.600 on it and chucked in the background of my  game, and yeah I was really happy with it. 00:14:17.600 --> 00:14:23.440 But I was also inspired - that's kind of the  theme for this video - I was inspired to make 00:14:23.440 --> 00:14:29.520 something similar for myself. I mean, it looks  pretty easy to achieve. It's just some basic 00:14:29.520 --> 00:14:34.640 shapes in silhouette with, you know, the colour  grading from back to front gives it that sense 00:14:34.640 --> 00:14:41.040 of depth. And so this is what I came up with: I  built a number of background plates. So this one 00:14:41.040 --> 00:14:47.120 is some buildings off in the far distance. This  is the back wall of the factory with some windows. 00:14:47.120 --> 00:14:51.760 And then light comes streaming in through the  windows. I've got some random pipes moving around. 00:14:51.760 --> 00:14:57.840 Some boilers. Some objects hanging from the  ceiling. And some objects more in the foreground. 00:14:57.840 --> 00:15:01.680 Put them all together on different layers, and  have them move at different rates, and baby 00:15:01.680 --> 00:15:07.360 you got yourself some parallax. I then played  around with shaders and post processing to give 00:15:07.360 --> 00:15:13.680 it a more interesting vibe. So I put on a gradient  overlay to give the space a bit more shape, 00:15:13.680 --> 00:15:20.480 and push it further into the background. I also  put on a really harsh bloom which gives a retro 00:15:20.480 --> 00:15:26.880 pixel banding effect to all of the gradients. I  put on some colour adjustment to add some colour, 00:15:26.880 --> 00:15:32.400 and then a split tone effect and... this is  looking pretty good! I finished it off with 00:15:32.400 --> 00:15:38.960 some little bits of movement: some random dust  particles, some steam coming out of these boilers, 00:15:38.960 --> 00:15:46.320 these gauges with moving needles, and flickering  lights. Put it all together and it now looks alive 00:15:46.320 --> 00:15:52.160 and polished, and I'm really happy with this. I  think this looks really cool, and best of all it's 00:15:52.160 --> 00:15:57.840 really modular - so I could swap out the boilers  for a different object, change all the colours, 00:15:57.840 --> 00:16:02.960 and now I have the background for world two. And  then world three and four and five and so on. 00:16:02.960 --> 00:16:06.720 The final thing I wanted to achieve in  this development sprint was to nail down 00:16:06.720 --> 00:16:12.800 the transitions between levels. So in the first  MVP, people thought it was weird that you leave 00:16:12.800 --> 00:16:18.000 behind the magnet from stage to stage. And in  the second demo, people thought it was weird 00:16:18.000 --> 00:16:21.920 that when you collect the key it just sort of  instantly boots you back to the hub. So I had 00:16:21.920 --> 00:16:27.040 to build a new system that made a bit more  sense, and made sure that the character and 00:16:27.040 --> 00:16:35.840 any magnets in the scene all went to the  next level. And so this is what I built. 00:16:35.840 --> 00:16:40.240 *Pulling cork* *Pop* *Sucking sound* 00:16:40.240 --> 00:16:44.480 Okay, so it's a bit silly - but I think it's  fun. I think it will be really satisfying when 00:16:44.480 --> 00:16:49.520 you've finished a hard puzzle for this to be  the ending. And it goes on nicely to the next 00:16:49.520 --> 00:16:53.920 stage where we see a little title card  for the name of the level, and then the 00:16:53.920 --> 00:17:00.640 character pops out the pipe on the other end.  That should make each level feel more eventful 00:17:00.640 --> 00:17:06.000 and should give more of a sense of place to  this whole factory that we're moving through. 00:17:06.000 --> 00:17:11.440 And so with all of that, the game  really feels much much closer 00:17:11.440 --> 00:17:16.720 towards being complete. It might not look hugely  different from what you've seen in the past, 00:17:17.280 --> 00:17:23.120 but with these steps I've taken, I've  ticked off some really big things that 00:17:23.120 --> 00:17:27.600 the game has needed. Like finalising the  magnets and chucking in sound effects. 00:17:27.600 --> 00:17:30.400 And so while I've got many, many  months still left ahead of me, 00:17:31.440 --> 00:17:36.720 some really cool things have been  finished. And that feels really motivating. 00:17:36.720 --> 00:17:42.000 So what is left to do? Well, I've got to figure  out some kind of context or story for the game, 00:17:42.000 --> 00:17:48.480 and some kind of story giving mechanism as well.  I also need a name for the game. It can't be 00:17:48.480 --> 00:17:52.960 Untitled Magnet Game, that joke has already  been done. Gotta do the soundtrack. And... 00:17:53.600 --> 00:18:01.520 oh yeah, the big one, content! Gotta build lots  and lots and lots of levels, which of course is, 00:18:01.520 --> 00:18:05.360 you know, the biggest thing in the game. And  it's going to take, you know, months for me to 00:18:05.360 --> 00:18:10.640 do. But I feel like I've got a really good base  to build them on now, and so I can really focus 00:18:10.640 --> 00:18:17.520 my time and attention on just making loads of  levels. And so that is what we're doing next! 00:18:17.520 --> 00:18:23.840 And so here's my challenge to myself: I won't  come back to make another episode of Developing 00:18:23.840 --> 00:18:30.080 until I have made... 30 puzzles for this  game. And then we'll see if they're any good 00:18:30.720 --> 00:18:35.120 and how many more I need to make after  that. Thank you so much for watching, 00:18:35.120 --> 00:18:40.080 thank you to anyone who gave feedback on the  second demo, and thank you for your patience 00:18:40.720 --> 00:18:46.880 while I'm working on this game. Obviously a lot  of my GMTK video making time is spent scratching 00:18:46.880 --> 00:18:52.880 my head over bugs in Unity, but I think it'll  be really worth it. I'm really enjoying making 00:18:52.880 --> 00:18:59.200 this game and I think just being a game developer  is going to make me a better video game critic, 00:18:59.200 --> 00:19:04.560 analyst, whatever the hell I am. So thanks  for watching and I'll see you again soon! 00:19:04.560 --> 00:19:07.680 I don't know how long it's going to take me  to make these levels. But I'll see you again. 00:19:07.680 --> 00:19:13.200 Probably. Yes I will! Yes of course, we're gonna  finish this game. Let's do it. Let's get it done. 00:19:13.200 --> 00:19:18.880 Finish the game! Finish the game!  Finish this video, somehow! Uh... stop