Id you didn’t know (!), I am making a video game called Mind Over Magnet, a delightful puzzle platformer about, you guessed it, magnets.
Now, when I returned to game development after my Christmas break, I noticed a very interesting button in my Steam Developer Dashboard thingy that I can't show you due to NDAs.
Basically a button to submit the game to the next Next Fest. This is Valve's online games convention where developers can share demos of their upcoming games and it's proven to be a pretty powerful marketing technique.
I mean, look what happened to the very addictive poker-based roguelike game Balatro in the last one in February.
So I knew I had to submit Mind Over Magnet to the next Next Fest happening in June. I just needed to create a trailer, make a demo, and fix one very annoying thing about my game that's been bugging me for months now.
Okay, so my game is pixel art, right? But the sprites are pretty big. I mean, compare Magnus to Mario, or Madeline.
This means that a typical room might fill up 1280 by 720 pixels. So if you're playing on a really old 720p monitor, great. Pixel perfect. And if you're playing on a nice 1440p monitor like I do, cool. We can just double all of the pixels. And if you're playing on a really nice 4K TV, then I can just triple all of the pixels.
But what about 1080p, the most commonly used PC screen resolution according to Valve's surveys? Well, that's a bit tricky because that's 1.5 times bigger than 720p. And, well, there's no such thing as half a pixel.
Now there's a few different solutions to get around this problem. One is to just let Unity figure it out. Like add an extra pixel here and remove an extra pixel there to make all of those half pixels fit onto a full pixel grid. But as it sounds, that's not perfect. And things can look really squiffy and ugly, especially when it comes to angles and curved surfaces.
Another solution is to use anti-aliasing to feather all of the edges. But now everything looks blurry and it's no longer that crisp, retro-looking pixel art.
And solution three, or C, forgot what we're doing, is to keep the pixels as they are but have a stonking great border around the screen. And now everything is small and zoomed out.
Now I tried all of these solutions. I put in a setting in the menu for pixel perfect mode that would add borders around the screen. I coded up a system so it would systematically only add anti-aliasing if the pixels couldn't be multiplied by a nice round number. And at times I wondered if maybe players just wouldn't notice the ugly, squiffy pixels and it was just a me thing?
But ultimately it felt like I was trying to find the least worst compromise.
And I spent a long time going back and forth between these things, trying to find one of these three solutions that would kinda, almost, sort of work for the game.
Now of course there is a fourth solution but I don't even want to think about that. And I mean it would work but I don't even want to say it. Okay fine, I'll say it. I could get rid of all the pixel art and replace all of the graphics in the game with brand new 4K ready artwork. But that... but that would be mad, wouldn't it?
So I replaced all of the pixel art in the game with brand new 4K ready artwork.
I took every sprite, tripled it in size, and then remade it using Photoshop's vector tools like the pen tool and the shapes. That's every button, every door, every decorative object, every magnet, every UI element.
And you know what? It didn't actually take as long as I thought it would. I mean my pixel art is already pretty chunky and made up of simple shapes with basic colours. I also chose not to use this newfound pixel real estate to add in extra details because I wanted things to still be super readable when crunched down to a smaller display like the Steam Deck. And I also chose not to remake the background art. Instead I kept that as pixel art and just threw on a depth of field filter to blur it out.
But no one needs to know about that, right? That can be our little secret.
And after all of that work I'm actually really happy with how the game looks now. Magnus has way more charm and character. The game no longer looks like yet another generic pixel art indie game. And the game just works. You can put it on a 4K TV or a 1080p monitor or the small screen of a Steam Deck and it just works. It just works.
And the funny thing is, in the end I probably spent more time trying to find a good compromise than I spent just remaking the art assets. And so I've learnt a really good lesson from this.
Well, two lessons. One is just plan ahead. I made the sprites long, long, long before I made the final camera system and just kind of hoped that they would work together. They didn't. I mean, there's this button in Unity for a pixel perfect camera and I kind of just assumed I could turn that on and things would be perfect, which is dumb and naive. That is not how it works but I know that now.
But the other lesson is sometimes it feels like a good idea to try and find a compromise or a loophole or a workaround but that's kind of the lazy way out. And sometimes it's just better to bite the bullet, knuckle down, and do the hard work to make an actual real solution that's going to work properly. So in the future I'm gonna save myself some time by just skipping ahead to doing the real solution.
The trailer
Okay, so with that kind of a nightmare out of the way it was time to move on to the next thing - making a trailer.
Now this is something I've put off for a long time simply because my game just isn't done yet so there's not a lot of stuff to show in the trailer. I mean I finished World 1 but if I just show that then the whole trailer is gonna be the same footage of the same turquoise-y sewer system over and over again for two minutes. Not a good depiction of what my game is really about.
So I decided to use the ancient art of "fake it until you make it". Quite literally make it in this case.
Because I've got a load of stuff that isn't quite done yet like these levels that haven't been playtested and are currently using the blueprint background design I use for development. I've got some half-finished backgrounds and some different mechanics that aren't implemented fully yet. If I throw all that stuff together I can make some content that isn't 100% going to be in the final game but is pretty indicative of what the game is going to be like.
Side note, I actually think I did too good of a job with this because after I posted the trailer I got a number of comments from people congratulating me on finishing the game which I will take, thank you very much. It's not actually done. It's all fake!
So with this new content I then recorded myself playing through those levels. I didn't have any music on but I did keep the sound effects on so those can be in the trailer. And, at the risk of talking more about screen resolutions, I recorded everything in 4K but the trailer is only 1080p so I can crop the most interesting bits without having to zoom in and lose image quality. I then threw this footage into Adobe Premiere and cut out all of the most interesting little clips - you know, interesting animations or depictions of mechanics or narrative beats or whatever.
Now as for music, I do actually finally have a composer for the game now so I can shut that very large Google form. They're not quite ready to work on the game yet so for this trailer I just went to my favourite audio source, Epidemic Sound. And the cool thing about Epidemic Sound is that when you download music you don't just get the full song but also the individual stems like the melody, the bass, and the drums.
This meant I could isolate the drums and have it so the footage changes on the drum beat.
In terms of the narrative arc of the trailer, I start with just really simple stuff like using the magnet beams to lift up blocks. Then I slow things down to introduce Magnus as a character, then show what Magnus can do as a game mechanic, and then have a rapid fire montage of other stuff you'll see in the later half of the game like other magnets, other mechanics, and other worlds. And then end with a nice call to action to wishlist the game on Steam.
Now this is not the best trailer ever made - I put it together in like the course of a single day, I also don't have a huge amount of footage to use, and I'm simply not Derek Lieu, you know, the guy who makes all of those awesome trailers for every indie game.
But I think it serves its purpose for now. And also I posted it on YouTube and other socials and it pushed the game past 30,000 wishlists which is pretty good before Next Fest even begins.
The demo
And then finally there's the demo.
Now I'm not 100% sure how much stuff I want to have in the demo. Like the trailer, if I just have world 1 in the demo, that's not going to be very indicative of what the whole game is like to play. So maybe it should also have world 2, or half of world 2, or whatever. So I need to start making some of that.
But in any case, I think I just need to get working on finishing this game.Because like, going back to Balatro, you might have noticed that the game built up a huge amount of hype during Steam Next Fest, and then launched for real a couple weeks later. Pepper Grinder is kinda similar: it's launching about one month after the end of its Steam Next Fest debut.
And so if I'm going to showcase my game at the Next Fest in June, I should probably look to release it in July or August, and that's not hugely far in the future, and so I'd better get on with this game!
Now in the last few weeks I have discovered a pretty good, not to sound too grandiose, production pipeline for getting this game done. It's very much inspired by Valve's approach to making Portal, which I discussed in that video on Valve's playtesting philosophy.
It basically works like this. On Tuesday through Thursday I work on new content for the game. New levels, fancy new backgrounds, or new cutscenes. Anything new for the game. On Friday I work on bug fixing. I take a few items off of my ever-growing Trello to-do list and try to find a good way to solve that bug, and then do some more bug fixing. And then at the end of the day I take what I have, test it, and export a new build.
I then give it out to some playtesters, usually like a few randos on Twitter, but a maximum of three playtesters. Then on Monday I check my Twitter DMs to find some nice playtesting footage. I watch the whole video through and make as many notes as possible for things I want to change, like bugs, or places that need more polish, or levels that are too easy or too hard or too fiddly or have some exploit that I didn't foresee when I was developing that part of the game.
Now I've had some version of this process throughout the game's development, but I feel like I'm really perfecting it now.
Like, in the past, I've given builds to too many people in one go. That just ends up with way too much footage to watch. It's just overwhelming, and if one person stumbles upon a bug or an exploit it's really painful and not very useful to then see that same thing crop up in nine more videos. Also I've given out playtest builds in the middle of the week, and then I'm just kind of stuck because I can't do anything until I get the playtest footage back.
So doing it on Friday means people play the game over the weekend when I really should be taking a break and playing Balatro.
And so with this process the game is really starting to take shape.
New content starts out a little bit rough and experimental but then quickly gets playtested, and stuff that's been in the game for a long time, stuff in the early levels, has been seen by so many playtesters and had so many little tiny tweaks and bug fixes that it's now starting to get seriously polished and good.
And so with this process I feel somewhat confident that the game will be done shortly after its Next Fest showcase.
As always GMTK Patrons can play the latest build whenever they want but if you're not supporting the show financially you can just wishlist the game now on Steam and you'll be notified when the demo is available during the next Next Fest.