When you think of the Playdate handheld, it's likely the bullet hell genre isn't the first thing to spring to mind. However, a small indie developer named Yoyogi Games recently released a love letter to the genre for the 2-bit device, which has proven to be one of this year's most exciting and surprising shoot 'em ups.
Gun Trails, as the game is called, is the work of five people, including the brothers' Josh and Sam Filstrup, the composer Adam Carey, the sound effect artist Matt Martin, and the announcer John Sremac. It is a tribute to the shoot 'em up developers' Cave and Stellar Circle, as well as a range of animated sources, and brings to Playdate a type of experience that has been sorely lacking from the platform.
We've been following the game's progress ever since February of this year when we first stumbled across it. But now it is finally ready for Playdate owners to buy on Catalog, we thought what better time to catch up with its lead developer Josh Filstrup and find out how the team managed to squeeze such an action-packed experience onto such a tiny piece of hardware.
Ready, Set, Go!
According to Josh, he first got the confidence to pursue the project that would eventually become Gun Trails after leaving his job at Nvidia, where he was working on "games-adjacent tools". At the time, he was living in Tokyo and frequenting the arcades to play bullet hell games — a genre that he has loved ever since playing games like Ikaruga and Blue Revolver. So he contacted his brother Sam (who is a professional illustrator and animator) and told him about his desire to start work on another shmup. The pair had attempted to develop a few different shoot 'em ups together in the past, but none of them were ever completed. This time, though, Josh vowed things would be different.
That's because he had set his sights on a brand new platform, one that would put his test programming skills to the test while providing the kinds of limitations that would prevent the project from becoming over-scoped and prematurely sputtering out. The name of this platform, as you probably guessed, was the Playdate.
Just to give you a bit of background, in case you've been living under a rock, the Playdate was first released back in April 2022 and is the brainchild of Panic, the publisher behind both Firewatch and Untitled Goose Game. It is a crank-based handheld with 16MB worth of memory and is only able to display its graphics in monochrome (black and white). As a result, it's not the type of machine that typically attracts high-performance shoot 'em-ups like Gun Trails. However, upon seeing the Playdate for the first time, Josh immediately knew it was the right platform for him.
I was seeing a lot of cool stuff on Playdate but a lot of it was you know, more kind of slow-paced. [...] Great games, but nothing that was really pushing the hardware...
"I was talking to a friend who I worked [...] with and the first thing I said when I saw the Playdate was, ‘Oh, I bet I could fit a bullet hell on that’," Josh tells us. "Because we do a lot of performance-related work in our jobs. So, that is where my interest went as a programmer. I was seeing a lot of cool stuff on Playdate but a lot of it was you know, more kind of slow-paced. [...] Great games, but nothing that was really pushing the hardware that I could see, so that really felt like a pretty unique opportunity to me. So from the beginning, it was like this should be a bullet hell. I had some sketches back from 2014 or 2015, back when I first started making shmups, but in the end, none of that survived."
According to Josh, he gave himself two months to hammer out the technology behind the game, before having to relocate back to the States to take on another job. His goal was to create a robust bullet hell engine for the machine that would enable him to hit 50FPS, which is the maximum full-screen refresh rate that the Playdate's screen will allow, and very soon he found himself successfully hitting his goal. So, buoyed by this success, he began to recruit some more people to the team.
One of the first people to join Josh and Sam on the project was the composer Adam Carey, who someone had come recommended thanks to his similar sensibilities to the pair.
I saw Adam’s stuff, and he had done a bunch of really cool like PS1-inspired music and I was like, 'That’s really awesome!'
"It's a very traditional, millennial story," claims Josh. "I was on Twitter and I had seen someone else saying they were looking for composing work. So I started talking to this other person and I kind of told them what I was looking for, and I showed them some stuff from Mushihimesama and typical shmups and I was thinking about those kinds of beats and they had said they weren’t the right fit but they had a friend who might be a really good fit for it. So they pointed me to Adam. And then I saw Adam’s stuff, and he had done a bunch of really cool like PS1-inspired music and I was like, 'That’s really awesome!' So I contacted him and commissioned a test track and it was amazing. And that's now the level 1 track for GunTrails. Like it’s still there. I think he’s changed it a bit here and there but it is still essentially the same thing."
After Carey joined the project, Josh then added a further two more people to the team, including a sound effects artist called Matt Martin, and Josh's old college pal John Sremac who had the right kind of voice that the programmer wanted for the in-game announcer.
"Matt Martin was a friend of Adams," says Josh. "So I met him through Adam, because I said, ‘Hey, I need some sound effects’ and I wanted to commission everything uniquely for this game; I didn’t want to go buy a sound pack or anything. So Matt did the sound effects pack and that was great. And then there's an announcer voice inside GunTrails and that's just an old friend from college. He has that announcer baritone, so I just randomly texted him and we hadn’t talked in years and I was like, ‘Do you want to do a voice for my game?’ And he was like, ‘Yes! Yes, definitely.’ So that’s kind of how the five people came about."
Welcome To Bullet Hell
Speaking to Josh, it's clear that Gun Trails has always had very strong points of reference, with Mushihimesama and Blue Revolver being the main games that influenced its development. According to the programmer, Mushihimesama is (on most days) his favourite shmup from the Japanese developer Cave, while the indie game Blue Revolver from Stellar Circle is in his top 10 list of bullet hells of all time and had a huge impact on the scoring system included in Gun Trails.
Josh explains, "There are games like DoDonpachi, which are amazing, but their scoring system is kind of predicated on this notion [...] that to get a great score, you have to hold the chain from the beginning of the game to the end of the game, which is a pretty tall task. Blue Revolver had this microcosm of that where it said if you hit 8 enemies, you build up your chain to 8, and then you can immediately kind of cash that out using your special weapon and get a bonus for that. So it’s this much kind of tighter gameplay loop in terms of the scoring feedback. And I liked that because one, I enjoyed that in Blue Revolver, but also because Playdate doesn’t have a ton of hardcore shmup players on it."
In Gun Trails, Yoyogi Games replicates Blue Revolver's scoring system, with players being able to create a chain by shooting enemies to increase the number on the side of the screen. Once that number hits 9, they can then cash it out to fire a special shot to rack up a bunch of bonus points. According to Josh, he hoped that this specific style of scoring would make the game more appealing to newcomers without diluting the overall experience.
"I wanted to give people kind of affordances to make it more approachable," says Josh. "So that was one of the things: not going kind of crazy with the scoring system in ways that kind of punish people for not being perfect. There are definitely bonuses you can get for being perfect through a run but I wanted people to feel like they were succeeding, even from the beginning. Especially because bullet hells are already difficult games to clear so I just didn’t want it to feel like I was punishing on top of the game, which is already punishing in its nature."
As for the aesthetic, Gun Trails features three unique stages (and four bosses), with the presentation of these not just pulling from a range of other bullet hells like DoDonPachi, but also the Cartoon Network anime block Toonami (that featured Cowboy Bebop, FLCL, and Dragon Ball) and the 2002 Disney animation Treasure Planet.
"For the game specifically, outside of the bullet hells, the big inspiration was steampunk narratives," says Josh. "And the particular steampunk [aesthetic] that I thought was really cool was the Disney movie Treasure Planet because I thought its take on airships looked really, really neat. So kind of from there, I pointed at these things for inspiration but I kind of let Sam go wherever he thought looked cool. And one of the kinds of neat affordances you can have in these kinds of games is that worldbuilding can be varied, right?"
If you've seen Gun Trails, you'll know that its art and animation are two of the highlights. Josh's brother Sam went to incredible lengths to push the visual style of the game from the very beginning, as reflected in the ridiculous number of frames of animation that he created for the project.
"The reason the animation came out so good is he just did a crap ton of work," Josh tells us. "I did a count the other day. He drew something in the order of 2900 frames of animation across all of GunTrails. But for every kind of task that came up and every character he went to do, he went pretty nuts. And he would come back with stuff and it would always present like an extra technical challenge for me, because I’m like, ‘How the hell am I going to fit this in the game?’ But the work was so cool that I was like I kind of have to find a way to do it. The death animation for the final boss is something ridiculous like 80 frames. Sometimes I was like, ‘Sam, you’re killing me! There’s only so much space here.’ I think he just really enjoyed the opportunity to kind of own the entire art direction, and he went crazy with it. So that was really cool."
Getting Stuck In
Pulling off a bullet hell on Playdate sounds anything but simple. Yet Josh claims there were only two areas that caused him any concern. The first of these was the performance of the Playdate's CPU and whether it would be able to match the aspirations of the project, and the other was the device's 16MB memory limit.
As Josh tells us, he had initially started writing Gun Trails in LUA, which is a high-level programming language, but switched over to "C" during its development in order to create some "headroom" for himself and future-proof his engine, should he ever want to use it to develop games on the Nintendo Switch or PC. It was while rewriting the game that he began a series of tests and benchmarking exercises that encouraged him to start developing a more bespoke toolkit rather than relying on the pre-established features included in the Playdate Software Development Kit (SDK). This helped him to reduce the overall CPU load and get Gun Trails running at only 50% CPU Utilization but maximum framerate, eliminating the first of his concerns.
He elaborates: "The only things out of the SDK I use are image:load, blit image over to the buffer, audio track load, and like button inputs. That’s really it. That kind of came out of all that benchmarking. Like, for example, they have collision detection and the collision detection is actually really good and it’s really general purpose, but a lot of the time, when code is written in a really general purpose way it’s not taking advantage of the context of your situation. And for a bullet hell game, your needs for collision detection are very, very small. You don’t need a ton of information to do the right thing. So their solution was a bit too heavyweight. So we wrote our own collision detection instead."
For the longest time after Josh had solved the issue with performance, he claims to not have encountered any more issues until fairly late in the project. This is when he saw the game had started to creep worryingly close to the 16MB boundary. As a solution, he ended up writing a custom loader to help the game stay below this memory ceiling — something which helped solve the issue.
"Knowing that it might be an issue in the future, it’s a very easily solvable problem," he claims. "You just kind of have to build with it in mind. Like you need a bit more of a segmented memory structure where you maybe have more discreet loads that happen pre-level. Part of the design of GunTrails was, because it’s such a hard game, I load everything right at the beginning of the game. The reason for that is when you do a restart it’s instant. Like there’s no load time whenever you want to restart the game or whenever you want to start it again after dying; that was because of that. So there will be challenges if the next game has the same play, die, replay cycle in it, but it is definitely all solvable."
I just couldn’t see a way to make a good action game [with a crank] that stays true to the tenets of what I think makes really good action games.
Besides technical limitations, there were also some self-imposed restrictions too. As Josh tells me, he never felt comfortable with the idea of using the handheld's crank — one of the device's key selling points upon its release. This was a decision that he's had to defend on occasion but came down to his own personal design philosophy on what makes a good action game.
He tells Time Extension, "I definitely got a lot of questions on Twitter saying, ‘How does it use the crank?’ or there were also some people just assuming I was using the crank and they’re like, ‘This must be pretty hard to play with a crank’. In my mind, I was like shmups are about really precise controls and dodging very carefully, so from the beginning, I was like there is no way I’m using the crank, absolutely not. The only way it would’ve gotten used is maybe as a gimmick in a cutscene or something like for revving the engine up; that maybe would have been funny. But I just couldn’t see a way to make a good action game [with a crank] that stays true to the tenets of what I think makes really good action games. And luckily, at least from Panic, there was no pressure."
A Catalog Of Good Luck
GunTrail is currently one of many games available on Catalog, Playdate's online store, but its journey to being featured on the site wasn't the most conventional.
Josh hadn't really thought much about what he would do when the game was eventually finished or how he would release it, instead choosing to put his head down and focus squarely on game development. As luck would have it, though, one of his posts on Twitter caught the attention of an influential supporter, in the form of Jörg Tittel, the developer of the Playdate game Skew, the recent C-Smash VRS for PSVR 2, and The Last Worker. Tittel became an early advocate for the game and helped Yoyogi connect with Playdate's developer relations team directly.
"Jörg is a wonderful guy," Josh tells me. "He had seen something about Gun Trails on Twitter and he DMed me and he was like, ‘Hey, are you going to be on Catalog or Season?’ I was like, ‘I don’t know.’ I was just kind of developing it at the time and nobody had really reached out to me. So he emailed the person who was doing developer relations at Panic and he was like, ‘This game has to be on Catalog!’ So that’s how that conversation got started.
"Nowadays I think there’s a form to submit for Catalog. On the Playdate dev website, you can just say, ‘Here’s my game.’ I think at this point they generally want pretty finished games at this point for the most part, which is ironic because Gun Trails was admittedly not finished when we submitted it."
Gun Trails was released just last month on July 18th (so reviews are still pretty scarce), but the reaction so far has been pretty overwhelming. As such, it's been a little bewildering for its lead developer to process, with Josh telling Time Extension, "I definitely didn’t anticipate it and part of me was kind of self-conscious about it honestly. Because if you’ve seen the Playdate and you’ve seen other games on it, I think you kind of see why Gun Trails is impressive and cool. But like, for outside people that maybe just have a Switch or a Steam Deck or something, they may see this and be like, ‘Eh, it’s just another little shoot ‘em up, I guess.’"
Since launching the game, Josh has been doing his best to promote Gun Trails wherever he can, writing a brief blog post for the Playdate website and joining the Playdate YouTuber Tiny Yellow Machine on his live stream to answer further questions about its development. And things seem to be going well, from what we can see. So, we wondered what's next for Yoyogi Games.
He tells us, "I’m making no promises, but here’s where my head is at. Sam and I have this backlog of essentially failed projects from when I was a much younger programmer and wasn’t able to balance my time and things sputtered out. So there are a couple of small games I’d like to put together for Playdate using those assets (because I think they'd fit the platform well). But primarily I want to do it to get my engine tech where I want it. […] Then I want to get back to making another action game."
Josh says this could potentially be Gun Trails 2, but there are also two other ideas rattling around in his brain that he's excited to pursue. Only time will tell what the future holds for the creator, but given the quality of Gun Trails, we'll likely be keeping an eye on these no matter which direction he takes.
Gun Trails is available to buy now from the Playdate Catalog for $6.