SEAR DevBlog, week of 5/25/26: Import Your Own Music (?)
- Adam Nicolai

- 14 hours ago
- 5 min read

This week I worked on recapturing gameplay for the teaser, a process which ended up taking the better part of a couple of days because of weird little glitchy things that kept popping up in UE, and reviewing and debugging some issues related to the phase transitions not showing up when and where they were supposed to. This included resolving a fascinating (read: ABSOLUTELY MADDENING) bug in UE whereby you can read in the value of a variable from a struct, assign it, and then literally watch it change, on its own, from 1 to 0 the moment your code moves to the next line/node of execution.
(The solution there, for the record, was to skip making a local reference to the struct in question and just always pull data directly from the source data asset. Irritating and a little unwieldy on the graphs, but it worked. Of course the code as written worked perfectly fine on every transition except one, and I still don’t know why it failed on that one transition, but whatever. It’s done, moving on.)
So anyway, the happy ending is that as of now we have a working placeholder transition for every phase! They still need some work, we’ve got some clipping and other issues to iron out yet, but reaching this point is a huge milestone and already does wonders for making Last Days feel like a single cohesive whole.
On top of that the team continued focus on the tutorial redesign and more marketing prep. But one thing I really love about this team is that they tend to come up with stuff on their own that might be good for the project. We had two such things this week, both music-related - a distance field setting in Niagara for particle streams that can make particles react to music, which will be great for ambience and spectacle once we find the right situations to use it in, and a script for determining song phase boundaries.
Let me back up a second.
A lot of music games let the player import their own music and then have an algorithm of some kind respond to that music to generate little pickups, obstacles, and aesthetics. Or they may get the BPM and align sound effects with the beat, stuff like that. When I first had the idea for phase-based racing I had assumed SEAR would not be able to let players bring in their own music because everything we are making is so bespoke. We have a little story that is being told with every level, and the pieces of that story - the phases - are designed with the duration of the phase in mind as well as their individual roles as chapters in that story. The songs we’ve used so far have been instrumental, but I’ve got a lot of songs in mind that have lyrics and fully plan to incorporate those lyrics into level design as well for those songs.
But while debugging this week I didn’t need to focus on the music-sync element of the game, so I had the game music turned down and was listening to my own while I worked. And it really struck me that man, this would be so much cooler if you could bring in your own songs. I mean that’s where the idea came from in the first place - me listening to my own music while playing a different game. Plus it’s pretty much expected by the music game community I think, and not having it has always made me a little nervous.
Short of having some kind of AI write a story for every song it hears - a problematic approach for a thousand reasons, not least being that I don’t trust AI to write good stories - I don’t see a really viable way to make the kind of SEAR levels we are looking to make algorithmically. BUT that doesn’t mean we can’t make any SEAR levels at all. If we’re willing to do a kind of “chaotic jumble” where you as the player jump from phase setting to phase setting and it’s a little more disjointed, like getting kicked between realities on every transition, it should be possible to use the phase levels we build for the structured, bespoke levels, and map them instead to the phase durations we algorithmically determine from the imported song. So you’d end up going from a cave, for example, to a city, to the starcraft carrier, to an abstract grid in digital space… disjointed, but honestly cool in its own way too.
Or, when we identify a song with a matching number of phases to a song-level that already exists, it may be possible to just straight-up remap that song-level to the new song. This still won’t reliably feel “right” because our bespoke levels are HIGHLY bespoke - their elements are driven by the music’s feel, like the glowing crystals tied to the song’s piano strikes and the collapsing rocks tied to the temporary, booming bass beats. But it’s an option worth considering.
Now some care is required here because the reason phasing works, one of the biggest problems it solves, is that a good race needs to be of a certain duration. It can’t be too short, but it REALLY can’t be too long. One of my chief complaints about the “music racing” games I’ve seen to date that let you bring in your own music is that they run too long. Way too long. That kills all the pressure and just gets kind of boring after the first 30 - 45 seconds for me.
Part of my process when analyzing a song for suitability for phasing is looking at the durations of those phases in the song. And if a song has a two-minute run, for example, that can’t really be cleanly split apart, I just decide against using it. That’s fine when it’s me, but what if a player imports a song that’s really not suitable for phasing? I’m not talking about genre or bpm here now, I think the phasing system works with just about any genre or bpm and I can’t wait to make some of the more unexpected examples in that space. But if the phase durations don’t align, what do we do? Force a split where the music doesn’t really have one? Bite the bullet and accept an overly-long phase even though it risks killing the experience? Tell the player “sorry, song not supported” or maybe kick them into a screen where they can set their own phase boundary? All those options are bad imo.
So that remains a big concern for me. And there are a bunch of other concerns too, like not just the phase durations but the phase transitions - a good phase transition is really important for making the experience feel smooth. We can generate algorithmic transitions to a degree, but again this gets back to story and flow. The transitions will not be as clean or as thematic as they will be in the human-written levels.
But accepting these risks for a moment, it still seems like it would be worth pursuing. And that’s where the script to identify song phase boundaries comes in. In short, we now have one! It’s still very rough, but on a first run it identified most of the boundaries we’re already using for LastDays and some good possibilities on a couple other songs. It’s a good enough proof of concept that I think it’s safe to say an alpha version of a “bring in your own music” feature is now a target feature for Early Access, and that’s a big deal. I think that is exactly the feature EA needs, even if it’s still imperfect, to really break the game’s possibilities wide open.



Comments