How I polished my indie magnet puzzle game (Developing 12)

GMTK n8bqjpq0MIw Watch on YouTube Published December 06, 2023
Scored
Duration
16:53
Views
278,729
Likes
21,592

Scores

Composite
0.70
Freshness
0.00
Quality
1.00
Relevance
1.00
2,866 words Language: en

Hi, my name is Mark, and I am making a video game about magnets. So, in pretty much every episode of Developing, I make some embarrassing mistake or have to throw out tons of work or just generally have a bit of a breakdown. But not this time. No, this month things just went really well, and so I get to be like a real-life Game Dev YouTuber and just show off a bunch of cool stuff I made in the last month. It's a Christmas miracle! Let's go! I feel like you're now anticipating a late video twist where I reveal that I deleted the entire game or something, but no, this is not that video. This is a good one, promise. Let's get on with it. ♫ Music ♫ Okay, so last month went well. Like, really well. I talked about how I created a plan for how to finish the game, which was essentially a complete overview of the game—the worlds, the levels, the mechanics, the story, and so on. Basically, like a bullet point layout of the entire game. And then from those bullet points, I was able to make a sort of rough draft version of almost the entire game. Now, like I say, it's super rough. All of the levels look like blueprints, a lot of the stuff is using placeholder graphics, the story isn't implemented at all, and most of the levels still need some tweaks and adjustments. But it did at least allow me to see the game as an entire finished product and made me realise that, yeah, I'm actually pretty happy with this. And so now my job is to take that rough draft and make it into the real deal. That is, of course, a huge job. But here's one of the benefits of working on a game that's split up into nice evenly sized worlds. I can break the job up into chunks. So, my job for November was to take just world one of the rough draft and make it real. Here's how I got on. Step one was to finalise the level designs. The rough draft had most of the levels done, but they still needed some tweaking based on playtester feedback. Sometimes the solution was to just move some objects around to make things more clear or simple, but that wasn't always the solution. Like, take this level. You've just got the first magnet in the game, and you're introduced to one of the game's central mechanics—using a magnet to ride up to a higher platform. So, you grab Magnus and ride up the magnetic field to grab the key on the left. But how do you get to the door on the right? It's too far to travel across. Maybe pause the video for a second to see if you can figure it out. Because here's the thing, every single playtester I gave this to couldn't figure it out. That includes two professional puzzle game designers who both skipped this puzzle. ADAM: "I'm going to have to skip because I don't want to spend forever on one puzzle." And this was baffling because to me, the solution was simple. I never even thought of it as a tricky puzzle. It was more of a tutorial than anything, but people were stumped. Here's all you have to do: turn the magnetic field off, take the magnet to the right, leave it, turn the field back on, and then go get the magnet and ride up to the door. Huh, talk about challenging your assumptions about your players, right? But okay, there's obviously some conceptual block that needs to be cleared. I thought I could fix it by putting a suspicious lump on the right side of the screen to suggest where to put the magnet, but alas, no, that didn't work. GONEN: "I'm gonna give up on this level." But then I thought about the next level. In this one, the magnet is too big to get through this gap. But if you leave the magnet behind, it gets pulled up by the magnetic field before you can grab it. So after a little confusion, players realize that they need to make sure the magnet is safely stashed somewhere else and then correctly place it on top of the slope, then they go get it after the field is turned on. That they get. So I changed the level order. I made a new level where you simply ride the magnet up twice, then there's the level with the too-small gap, and then I bring back the perplexing stage. I gave it to some playtesters, and hooray, they got it! Thanks to the new knowledge gained in the previous level, they realised that they can leave the magnet in other places and use that to solve the stage. Perfect. Now it's obvious that players need to be taught a mechanic before giving them a puzzle on that mechanic. But it was only through playtesting that I realised that leaving the magnet behind is a mechanic and that this level is a puzzle. But anyway, after a bit more back-and-forth argy-bargy with my playtesters, I had my finished collection of level layouts. Now, as you might have noticed, all of the levels look rather dull. They all use the same simple blue tile set with a basic grid background and absolutely no decorations or flair. Now, this is actually really useful because it meant I could focus exclusively on puzzle design rather than visuals. And it meant I could easily change things based on feedback—maybe move elements around or start a level from scratch or move a level into a completely different world, no problem. But now that I'm happy with the layouts in world one, it's time to dress them up, to take these boring blue levels and essentially paint over them to make them look more exciting. So world one takes place in a sewer. I mean, is it really a video game without a sewer level? I've always envisioned the game to be about escaping a factory by going from the bottom floor to the top, and there doesn't get any lower than the sewers. So here's the step-by-step guide to taking a level from this to this. The first step was to replace the tiles. Now, this was actually really easy. The tile set for the sewer is laid out in the exact same way as the blueprint tile set. So I can actually just use the paint bucket tool to replace all the tiles with a single click and then use some other tiles to add extra details. In this case, I'm making it so the brickwork tapers off into plain blue to better frame the image. Then I bring in the background. I talked about this before in a previous episode, but it's essentially a bunch of overlapping plates with different brightness levels to give a sense of depth. So we've got the back wall, then an aqueduct, then the front walls with details hanging stuff like chains and lights and nearby elements like these barrels. I then throw on a gradient overlay to wash everything out. That's actually really important. These backgrounds are just for visual interest, and so they should never compete with the actual important puzzle elements. You can definitely go too far with this. Take the recently released puzzle platformer "Ugly." It's a good game, and the backgrounds are wonderfully detailed, but almost too detailed. It's hard to tell what's important and what's just set dressing. So I try to keep my backgrounds unobtrusive. And just as an additional accessibility measure, if you find these things too distracting, then you can toggle simple backgrounds, which replaces the whole thing with the same grid I was using in the rough draft. Okay, anyway, another way to add some visual interest is to add some particles. These are just basic circles that appear, float up, and disappear, but they look like little dust motes and make the game feel more alive. And then for this sewer world, I added a bobbing body of water at the bottom of the screen. This is made using a very simple and small texture and then a shader which displaces the pixels using some sine wave or something. I don't know much about shaders. I just fiddle around with nodes until it looks right. The next step is to add these brick walls, which can be used to break up the background and also highlight certain elements like the exit door. Now, I could have made this with a single tile—repeat this, and you get a perfect brick wall. But that obviously looks a bit rubbish. So I use Unity's rule tile to detect the edges and apply a special pillar on the left or right, a cement lip on the bottom, and a shadow from the wall above at the top. And then to make it look even more interesting, I use random tiles. So if I take that same brick pattern and have a few variations and then let Unity pick which tile it uses at random, you get a really nice and visually interesting brick wall. Oh, and here's an extra cool trick. The bricks all have a semi-transparent black overlay which is set to only show through a mask. Then I take my character and the magnet and add masks which are offset to one side. Now when you run past the brick wall, the characters cast shadows. Neat. Finally, one last step. I add in a few decorations. They're just random bits and bobs—cones, barrels, chains, crates, and so on. They're grayscale and then tinted to a different colour depending on what world they appear in. Phew! I then repeated the same process for all the levels in this world, sometimes adding in unique touches like these pipes, a ladder, and this waterfall. It uses a simple shader to constantly offset this texture's vertical position. And then I use the particle system for the suds at the top and bottom. And in a few levels, I added these nuts and bolts which lay on the floor. They kick up when you run through them and also get yanked up by magnetic fields. Okay, so that's visuals done. Time for sound effects. Thankfully, I have added in a lot of the sound effects as I've gone along. When I make a new game mechanic, I don't just do the art and the code, but I try to remember to wire up some sounds to go with it. But there are a few sounds that do still need making. Now, I kind of hate doing sound effects because you have to make the sound, put it in Unity, test it in the game, hate it, and then repeat the process over and over again. Surely there's got to be a better way. Well, this month I found a better way. I record a short video of the game. In this case, it's this animation of a door being opened. Then I throw it in Adobe Premiere, the video editor I use for GMTK, and basically become a Foley artist as I add sound effects to the video. Now I can layer sounds on top of each other, throw on effects, and change the EQ, fade things in and out. These sounds are all coming from Epidemic Sound, by the way. Affiliate link in the description if you want to support GMTK. Then once I'm happy, I can export the sound out and pop it in Unity, totally assured that the sound will work nicely with the animation. We are on a roll here. Okay, so the rough draft version just immediately drops you into the first puzzle in the game. That's no good. So I made a fancy introductory cutscene to start off the adventure. And then the rough draft version also introduces you to the magnet in a very unceremonious fashion. So that also needed a cutscene. I think I'll talk more about story stuff in a later episode, but making this cutscene did lead to a couple neat additions to the game. For starters, it was weird for Magnus to look directly at the camera while talking. He should look at the character, right? And once I got that working after a lot of faff, I get so lost in these animation state machines. But once it was working, I realised I could just have it happen at all times. So now Magnus's eyes will follow the character around the room, which is super cute. And also, I have these speech bubbles that show up during cutscenes. But I wondered with a few tweaks, could I have the bubbles just show up in normal gameplay? I was definitely inspired by the talking flowers in Super Mario Wonder. But anyway, the answer is yes. So I now have a bark system where Magnus can shout out little phrases and quips when you do certain things. It's definitely something that needs to be restrained. It could easily become too annoying. But when you subtly man it, adds a lot of polish and character to the game. And this is a good lesson for polish, I think. There's basically like two types of polish. There's additive. Like, I could draw some super unique background art that only appears in a single level. And then there's multiplicative. If I spend some time making Magnus's eyes follow you around the level, that's going to improve every single stage in the game. And so, if you're a solo dev or in a small team, focus your time and effort on the polish that's going to get the most bang for your buck. With all of that done, I had finished world one. I'm happy with all of the level designs. The art is nice, the sound effects are done, and the cutscenes are in. The only thing I'm missing is the music. Right now, there's just some annoying placeholder track, but I'm finally ready to put in the game's final soundtrack. But I don't know how to make music, so that's where you come in. If you are a video game music composer and would like to work on this game, then there's a form in the description for this video where you can fill in your details and get in touch with me. This is a paid gig. You're not working for exposure, but we'll work out all the details when I get in touch. I look forward to hearing from you. So now I have a full world in the game that is pretty much complete. And I realised that this would actually make for a nice demo or something to show off to potential publishers or console makers. The only problem is there's still loads of stuff on the meta level that's still unfinished or placeholder or unpolished. Like the game still doesn't save your progress, and the options menu looks like this. So I spent a whole week making the options menu look nice. I will spare you the details. It wasn't fun to do. It's not fun to talk about, though Patrons are getting more in-depth devlogs if you do want the nitty-gritty details. I made the game save and load your progress. Also, just incredibly boring. A little bit more interesting, though, is my hint system. Instead of just giving you a bit of text, I try to show the hint visually using these dotted lines. I think it's more interesting; it's easier to understand, and you don't need to speak English to get it. So, I've still got a bit more to do, but it's pretty close. As always, if you're a GMTK Patron, you can access the World One demo right now on PC and Mac. You can also pop in the Discord and help me bug test it if you think that would be fun. If you're not a Patron, well, then the next best thing you can do is go to Steam and add the game to your wishlist. You'll get an email as soon as the game goes live next year, and it also tells Valve to promote my game to as many people as possible. And so, that is it for this month, except for when I deleted the No, I'm joking; this is a good episode. Just let me have one. Thank you so much for watching Developing this year. Sorry again for the 6-month break, but we're on Easy Street now. That is definitely not true. We're heading towards the finish line now. That much I can say. 2024 is the year: the Year of the Magnet. So I hope you will join me to celebrate a well-known and totally real festive celebration. Thanks for watching, and I'll, uh, I'll see you soon. Bye. I never know how to get out of frame for the, uh, for the Patreon credits and stuff, so I'm just going to... I'm just going to sort of fall down.

Summary

Mark shares his process of polishing the first world of his indie magnet puzzle game, focusing on level design refinement, visual and audio enhancements, and implementing polish features like character animations and a hint system to create a complete and engaging demo.

Key Points

  • Mark completed a rough draft of his magnet puzzle game, focusing on world one to create a polished, playable experience.
  • He refined level designs based on playtester feedback, reordering puzzles to ensure mechanics were taught before being tested.
  • The game's visuals were enhanced by replacing simple blue tiles with a detailed sewer theme using Unity's rule tiles and shaders.
  • He added visual effects like particles, water, and decorations to make levels more engaging while keeping backgrounds unobtrusive.
  • Sound effects were created using a Foley-style approach by syncing audio to video animations in Adobe Premiere for better quality.
  • Mark implemented cutscenes and character animations, including eye-tracking and speech bubbles that now appear in gameplay.
  • He introduced a multiplicative polish feature—Magnus's eyes follow the player—which improves every level without extra work.
  • A hint system was designed with visual dotted lines to help players without relying on text.
  • The game now includes a proper options menu and progress-saving functionality for a more professional experience.
  • Mark is seeking a composer to create the final soundtrack for the game and invites interested musicians to apply.

Key Takeaways

  • Prioritize additive polish features that improve the entire game, like character animations, over one-off decorative elements.
  • Use playtesting to identify conceptual blocks and restructure puzzle progression to teach mechanics before testing them.
  • Leverage tools like Unity's rule tiles and shaders to efficiently create visually rich environments with minimal effort.
  • Create sound effects by syncing audio to video animations to ensure timing and quality, avoiding trial-and-error in-game testing.
  • Implement a hint system using visual cues to support players without relying on text, improving accessibility.

Primary Category

Indie Games

Secondary Categories

Game Design Analysis Game Mechanics & Systems

Topics

indie game development game polish level design playtesting visual design sound design cutscene creation character animation music composition game demo

Entities

people
Mark Adam Gonen
organizations
Steam Epidemic Sound Unity GMTK
products
technologies
domain_specific
video_games game_characters gaming_platforms game_genres

Sentiment

0.80 (Positive)

Content Type

build_guide

Difficulty

intermediate

Tone

educational entertaining inspirational technical humorous