~ NOTE: This post is cross-posted to the game's itch page. If you wanna comment, you can do so there! ~


This is dev diary #2 for my game X-YZE. It talks about a bunch of different topics related to the design and development process of the game. If you wanna read about the process of composing music for it, you can do that here.

This write-up assumes you've played and, in some places, finished the game. If you're concerned about spoilers, I recommend finishing the game before reading on.


INTRO

When I started working on X-YZE, I had 2 simple and vague main goals: to make some sort of bump combat game, and to make a game that impressed my friends. To be fair, the latter is almost always a nagging subconscious goal with nearly anything I make. I officially started working on X-YZE in January of 2024 after being overwhelmingly inspired from playing Ys I & II Chronicles+ for the first time. I found those games via Melos Han-Tani because they were working on a bump combat game of their own I was excited for: Angeline Era. Within the first handful of months of X-YZE development, sylvie finished her own bump combat game I wound up loving: Sylvie RPG: 7 Elf Apocalypse. A bit later on, I then played the NES version of Hydlide, which was interesting.

With all these cool bump games swirling in the air, a heartfelt wish formed within me: For X-YZE to be worthy of being part of the conversation too. However, it was intended to be a 6-month project... but turned out to be a 1.75-year project instead... So it also had to justify taking 350% longer to finish... I don't think this stuff affected individual design choices much, but it was definitely a mental weight that got heavier every day.

The longer-than-expected dev time also meant that some of my early engineering decisions came back to haunt me. The way you code stuff, the frequency and type of breaks you take, etc... You approach these things very differently when making a 24-hour jam project vs a 1-week jam project, or a 6-month project vs a 21-month project... I was a fool for thinking a bump combat system would be way easier to make than the complicated and overwrought "press a button to attack" combat system the kids play these days. Going forward, I hope I can be way better at predicting dev time and difficulty more accurately.

I kept a huge semi-private social media devlog thread since the very beginning, with the intention of looking back through it while writing these design notes. Well, that sounds miserable to me right now, so I'm just going to go based on memory mostly. Sorry if I miss something interesting... (not that you'd know, I guess)

Future me here: I wound up digging through the thread after all... Mostly for images and videos of old versions of things. Alix kindly put all that together into this little montage:


BUMPING

I never had any clever ideas for X-YZE's bump combat system. All I knew was I wanted it to do something a little different and/or a little more than the other bump games I had played. I started off trying to copy the Ys Chronicles system almost exactly, with the expectation that it'd evolve from there. Over time, I also learned a bit about how Melos and sylvie did their systems.

Here's where X-YZE's system ended up:

There are various exceptions to some of these rules, but that's how a vast majority of interactions work. Honestly, I was tweaking all this stuff up until about a week before release. There used to be a bug where, if you reversed your direction on the same frame you attacked an enemy, you would get bumped toward the enemy. I almost didn't bother fixing this because it was fairly rare and the code changes necessary to fix it were kinda drastic... but I fixed it anyways, and overhauled a portion of the bump system in the process. Even though it's scary to make such big changes so close to release, I'm glad I did it for this. The bumps are better than ever for it.

I've heard many opinions about how the bumps could or should have been different, and some of those opinions are probably right, maybe, but... I think weird imperfections/quirks are a big part of what make games memorable. It's not like I intentionally added imperfections or anything, but I definitely chose to not sand down certain edges.


DE-RPGIFYING AND EN-SHMUPPENING

X-YZE used to have ATK and DEF stats, EXP and levels, currency... I had a whole system planned out for "Drivers" which were like accessories you could "install" to modify various stats or combat behaviors or movement or whatever. You could buy or find new Drivers, increase your max number of Drivers... it was all very Game Design. As I started implementing it, I realized a few things this system would demand of me:

I used my psychic abilities to peek into the future, into a world where I had muscled my way through all those tasks like a champion, and the entire system was working exactly as I had dreamt up. And what did I see? I was a decrepit old creature. My children had grown into adults and their children were graduating from college. My spouse had left me long ago, and I was the topic of conversation everybody avoided during the holiday gatherings I was neither invited to nor able to attend anyways because I was still working on X-YZE and wondering why all that work only made it so enemies only sometimes die slightly faster.

So I cut Drivers and cut currency since there was no longer anything to spend it on.

Another reason for cutting those things, and for eventually cutting ATK/DEF/EXP/level, was world structure. Those things kind of demand that you spend an extended amount of time within one area and/or revisit areas occasionally. Otherwise, you'll be configuring upgrades without having any idea what you'll face next, or you'll gain a level after clearing an area only for the next area to have enemies that are also 1 level higher... what's the point? For various reasons, I didn't want to structure my world in a way that made sense for those systems, and so they were cut.

I had been calling this game an Action RPG, but now nearly all the RPG elements were gone... I looked to the humble Shmup for guidance, and this is the vision it bestowed upon me:

This was by far the most important pivot for defining the shape and texture of the game.

But there were still more mechanics to cut!

I felt like the game still needed something to shake up the moment-to-moment, so I made a "Player Effect" system. It was basically like shields in the old 2D Sonic games. You pick up an Effect at various spots in levels, and it's active until you take a hit. The Effects I coded were: ATK buff, ATK debuff, shield (absorbs 1 hit), and speed boost. I hope I've since learned to look into the future before coding my systems ideas, because it wasn't until after all this was in place that I realized it had many of the same problems the Drivers system had. Levels and enemies had to account for all these Effects, and in the end it just felt like a thing happened to you instead of giving any interesting decisions.

It was actually even more complex than all that... if you got enough Data to gain a new Backup while an Effect was active, that Backup would have that Effect attached to it. So in the future, if you got hit and "reverted" to that Backup, you would get that Effect again! Once again, very Game Design. It sucked ass while also making more work for me, so away it went. Actually, all the code and scenes still exist in the project, so in theory I could drop these Effects in levels and they should still work... Also this cut system is kind of how I came up with the terms "Backup" and "Data".

I still wanted something more to the combat than just bumping and evading, though. I eventually landed on the Attack Gauge and Dash Attack, which I'll touch on soon.


ATTACKING AND MOVEMENT

In Ys I and II, you wanna hit enemies slightly off-center because you'll take damage if you hit head-on. I tried riffing on this in X-YZE for a while. I tried inverting it so head-on hits were the good ones. I tried giving you 2 different weapons: sword that works like Ys, and spear that's the inverse. I tried making all hit angles good, but certain ones would be a critical hit. I think this kind of thing works in Ys for a few reasons:

I think all that is evident in the fact that they ditch the angle-based system with bosses, who actually have unique behaviors. You can hit them from any angle without consequence.

I knew fairly early on that I wanted X-YZE's enemies to be more interesting in and of themselves than the ones in Ys, and it was soon clear that the angle-based approach didn't work as cleanly in that case, especially since X-YZE tends to be more frenetic. This realization went hand-in-hand with the cutting of Drivers and Player Effects and all that stuff.

Once again, I pulled from shmups to end up with the Attack Gauge. I had to dig into the big thread to remember the details here... It used to be called an "Overclock Meter" and it was in-place before I had cut Drivers and even before I came up with Player Effects. The initial idea was for ATK and DEF to have an inverse relationship. I went through a bunch of iterations, but the one I found an old video of has a spedometer type thing where the higher the meter gets, the more damage you deal and the more damage you receive. Dealing and receiving hits increased the meter, and it would always be slowly drifting back down to 0. Eventually I cut this, probably because it was too complicated, and replaced it with the award-winning Attack Gauge everyone knows now (simple multiplier, resets when you get hit).

In July 2024, I decided on a whim of defiance against the tyrannical games industry that I would no longer normalize diagonal player movement. I guess I was thinking about how I hoped people would speedrun the game. I wound up liking how this felt. I incorporated it into some encounters throughout the game, but it's not terribly necessary. However, one of the secret pro strats of X-YZE is to utilize this in regular combat... Faster diagonal movement == faster attack speed == quicker Attack Gauge gains.

The dash had been around since pretty much the very beginning, but I don't actually remember any specific reason why I included it. I think I just wanted to have a little more going on in combat than Ys had, so the initial function of the dash was probably just simple evasion. The levels and encounters were somewhat tight and clumpy, so I made the dash go through enemies. I tried various ways of previewing where you would end up after the dash, like showing a silhouette where it would end or drawing a line or something, but nothing really worked well without putting in more effort than I wanted to. I figured players would probably internalize the dash distance after a while. Adding the little dash line particles later on actually helped more than I expected. I don't really know why though since they don't preview anything... maybe it's just that they help you more easily see where you wound up as your "end dash" animation plays. Even still, it was too easy to over/under-shoot and end up on top of an enemy or in the middle of a clump of guys. And so the post-dash i-frames were added to give you a split second to react.

Another whim decison was to let you dash in-place if you pressed the dash button while not moving (people kept calling this "spot dash" so I've since adopted that term too). Spot dashing is definitely not necessary anywhere, but I've seen it used in a variety of ways I didn't expect, which is exactly what I hoped would happen!

It was pretty late into development before I came up with the Dash Attack, and once again I don't remember why I came up with it. It kinda calls back to an idea I mentioned earlier, where all hits are valid but certain ones could be critical. I liked how it played into the Attack Gauge, letting you reach forbidden numbers by boosting whatever your gauge is at. The window in which you can land a Dash Attack is directly tied to the dash's cooldown which is directly tied to the post-dash i-frames. The reason for this is that I was lazy and didn't want to make new timers. It used to be tighter, something like 0.2 or 0.24 seconds, but I changed it to 0.3 after the first round of playtesting.

After adding the Dash Attack, I decided it was cool if the Basic Guards (the pink guys you see throughout the game) could be killed with a single Dash Attack at full Attack Gauge. This became the central point I based all enemy HP values on.

I've been very surprised to see how many players neglect Dash Attacks in their playthroughs. Not only does it deal more damage, but it also increases your Attack Gauge more than normal hits, plus gives you more Data if the killing blow is a Dash Attack. All this is explained in the How To Play menu, but maybe people just don't read those. It makes your life much easier in casual playthroughs, but also has fun uses in high-level play.

To finish this section, I will reveal the arcane formula that calculates the damage you deal:

So the range of damage you can deal with the various Attack Boost settings is:

The number displayed in your Attack Gauge is the end result ("damage").


LEVEL DESIGN

I felt like I was just winging it when making levels. It was one of the most "I have no idea what I'm doing" things when I first started.

The story kind of informed the starting point, in a way. I came up with the names and aesthetic/narrative theme for all the levels first, though I did also have some spare enemy ideas in parallel. From then on, I approached each level linearly kinda like this:

  1. Come up with enemy designs for the level that fit its vibe
  2. Paper sketch out a broad flow for the level (you can see these in the bonus pack on itch)
  3. Come up with interesting encounters for each new enemy type, plus some for combinations of enemy types
  4. Decide where in the level to put each encounter

So much of that was just driven by instinct... I have no fancy level design hacks to share with you, I'm sorry. Just make something and continuously refine it. And consider getting playtesters at some point! My first round of playtesting only included the first 2 levels, but it was extremely helpful for setting me on the right path to touch up the rest of the levels without playtesters.

The story wound up getting drastically overhauled and scoped down multiple times after all the level themes and enemy types were decided. Some levels had a big change to their overall flow as a result, but since most levels are separated into small rooms, it was fairly easy to just shift the order of things around.

I really tried to make each level have a distinct gameplay texture, and I think I was pretty successful with that. After watching a lot of people play through it, I realized that this level/enemy variety, combined with the fact that I kept it to just 5 main levels so nothing really got stale, resulted in the game feeling bigger than it is.

I've also enjoyed seeing players go through the arc of "this is literally impossible" to "oh my god i'm a genius". I'm not smart enough to have designed that arc on purpose, but I did make sure that every enemy and every encounter has at least 1 trick to it that can make it easier. Even after you learn those tricks, I think it's still fun just to execute.

There are some encounters I've heard Complaints and Opinions about, but for the most part the feelings those people have expressed are the exact feelings I was trying to evoke with the encounter. A lot of stuff is indirectly tied into narrative as well, sometimes consciously and sometimes by happenstance.

I also like how the dash, your most powerful tool, can sometimes work against you in tight spaces if you aren't careful.

I'm very happy with how it all turned out.

Some cut content...


STORY

I always wanted X-YZE to be a gameplay-first game. I figured the story would be some generic whatever thing, defeat the dark lord, save the world, etc (I have no issue with stories like this, to be clear). I still wanted it to be at least cute and a little compelling somehow, and I soon realized that I was not a skilled enough writer to do a "basic" story that was also "cute and compelling".

So I started putting more and more care into the story until oops I've got a LOT here now. The final boss used to be a separate 3rd main character alongside Kaira and Rain, and all the other bosses used to be important supporting characters. The "digital world" concept had been around for a while, but everyone used to have real-world representations as well, mostly in the form of flashbacks. All the enemies were supposed to be avatars of real people, too. I had some pretty detailed and fun concepts for everybody. The Warden used to be that friend everyone has who would drop everything at a moments notice to help you unconditionally, but had really confusing and bad politics. The Foreman and Jester used to be madly in love with each other. The Firewall used to be an it/its anarchist punk. Etcetera etcetera.

I was not (and still probably am not) a skilled enough writer to pull all that off. And so I cut and cut and cut until I was left with only 2 characters. I also had a personal experience around this time that fortunately/unfortunately made it very very natural to write the story as it is now. Another big help was my buddy John, who I went to with my post-overhaul synopsis and begged for feedback. My main takeaway was to focus on making it fit the scope of a "short story" in the literary sense. That framing helped a lot with the refining process.

Alix did all the visual character design for the bosses (except for the Firewall) when I thought I'd be going with the old big story. We didn't change any of the designs after the overhaul because I had already designed their fights and made their sprites and I liked them a lot anyways. The final boss is the only one that was designed post-story-overhaul.

Also, throughout most of development including post-story-overhaul, Rain and Kaira's roles were reversed. You used to play as Rain!

I was really nervous about how the story would be received. It's very personal, very vulnerable, sometimes hopelessly earnest. It doesn't really have a clean ending either, and I was worried it might exacerbate feelings of hopelessness and loneliness in some people's own life. I don't know if that has happened or not, but I have heard from several people that it really really resonated with them in meaningful ways. Some of the stories I've heard from these folks have been shocking in how exact and direct their connections are to the game's story, sometimes from angles I hadn't even considered.

I've been teased and outright mocked for my corny heart-on-sleeve earnestness for most of my adult life, and I've put a lot of effort into anxiously suppressing that. I saw an interview (I think it was this one) with a musician I like where she talked about having very similar experiences but ultimately consciously chose to fully embrace and lean into it. Hearing that gave me a sort of awakening and empowering... I should do that too. That really helped me feel confident in X-YZE's story.

To everyone who has shared with me the ways the story impacted you: Thank you, truly. It means so much.


ARCADE MODE

I had the idea for arcade mode shortly before the first round of playtesting. Without ever really writing any code for it, I blasted through so many possible versions of scoring. It was one of those things that kept me awake all night because I couldn't shut my brain off. I didn't really stick with any one approach for very long. Scoring time using to be based on how much faster/slower you were than my personal clear time. Scoring kills used to be where an enemy was worth more points if it had more HP, but you could get extra points for killing them in as few hits as possible. Scoring damage was a pool of points where every hit you took subtracted from the pool... This sort of thing tends to light up my board game gamer/designer brain, which is fun if I can keep it in check but I did not keep it in check and I was miserable.

Aside from all the numbers bullshit, I needed to figure out how to store and display all your records. I wanted to show and save your per-level statistics too (clear time, damage taken, kills, deaths, etc) because if there was one thing I was certain of, it was that seeing your stats was fun. This UI/UX concern was actually the main thing that killed this arcade mode approach. Also the fact that the nature of scoring stuff required me to make decisions about what was/wasn't important or "good play" and I didn't feel comfortable deciding that. I really really wanted (and still do want) players to speedrun and challenge run this game, but I had no idea what would be a fun texture of challenge run for most people.

And so I decided I would not score anything. I would just present your run stats and you could invent your own challenge/speed runs. Not scoring stuff meant I also didn't need to save your best runs because I wouldn't know if one was better than another. That was a little bit of a cop out, but by this point arcade mode was one of the only things holding the game back from being finished, and I was giving myself as many breaks as I could conjure up.

Eventually I decided I really really really needed to just finish the game and that it was in my best interest to save arcade mode for a post-launch update. I was a little bummed because I assumed by the time I got around to adding it, most people would have stopped caring about the game. It did take a huge weight off my shoulders though, and I got my one-millionth second wind that let me basically finish the game.

...And then I added arcade mode before launch anyways. It felt like it would be pretty easy at this point, after all the scoping down I did for it. Unfortunately, because of the way I built my event system and overall game state stuff, it wound up being a huuuuuuuuge pain to implement level/boss practice modes... This was by far the biggest source of final-week bugs, but eventually I got it all working.

I'm glad I got arcade mode in there, even if I haven't seen it engaged with quite as much as I hoped. It's been a blast watching those that have engaged though.

At some point in the not-too-distant future, I want to release an update that expands arcade mode a bit:


CLOSING THOUGHTS

Well, in the end, I'm not sure if X-YZE will be part of any conversations, but it did at least impress a few friends.

It started as a fairly small project to get me back into making more full and polished works, but it mutated into a thing of desperation. I desperately wanted to prove myself to all the cool new gamedev friends I had made. I desperately wanted what I made to be worth thinking about and mentioning. I desperately wanted to know that I'm still capable of all this. I desperately wanted the project to justify taking so much time and isolation and tunnel-visioned focus to finish. For someone who preaches about scoping small and keeping stakes low, I didn't really do a great job of that. I mean, I guess I did finish the game...

I've always struggled with finding my voice in creative pursuits. My tendency is to mimic, or make sure I check off all the appropriate boxes, or do things the correct way. I've tried to break away from that in recent years, but I think X-YZE is the first time I've done it with sincerity and some success.

I still feel self-conscious about the game, though. When I make the mistake of comparing it to the works of my peers, I find it's not as clever, innovative, intellectually-stimulating, tightly-constructed, smart, or funny as their stuff often is. And it took so much of my self and time just to make this thing that isn't as [adjective] as all that. I've finally started to find my voice, but in the end it's still not quite remarkable enough.

...That's how a part of me feels, anyways. Mentally, I know that's just The Curse obscuring positives and highlighting negatives. It's kind of impossible, for me anyways, to know what people think unless they vocalize it. Despite, or... I guess in addition to, everything, I'm still extremely proud of X-YZE. I'm trying to break my habit of using lots of superlatives, but I think it is actually true to say that making this game was one of the hardest and most discipline-demanding things I've ever done. I'm pretty certain I'll look back on it and wonder how the hell I did any of that.


CLOSING THOUGHTS 2

I wasn't sure where else to put this section, but I wanna mention some personal life things that happened throughout X-YZE's development, for posterity.

It's kinda unpleasant stuff, so I put it behind this little hidden thingy, which you can reveal at your discretion.

In 2023 I got my first full-time video games industry job, and I was pretty excited. It wound up being very stressful in different ways than the stress I expected. After less than a year, right as I was finishing up my game "within" and leading into the end-of-year holidays, I was laid off. Also in 2023, I started wrestling with identity stuff. Questioning everything, feeling hopeless in a body I don't like, greatly fearing what family would do or say if I said anything about any of this.

In 2024, I got another opportunity to work full-time in the games industry, and I took it because I enjoy livable wages. This time it was even more stressful than before, and I was once again unceremoniously laid off as the holidays started. At this point, I'm thoroughly convinced I don't ever want to work in the games industry again, but I also don't really have any other marketable skills. My living situation is also one where there are severe and perhaps fatal risks involved with covid exposure, so in-person work is kind of an absolute desperate last resort.

2025 started off with massive wildfires in my area, which came within a few miles of us and forced us to evacuate. Thankfully our place was unharmed. Then we got the transfer of US presidents and, well... I'm sure everyone is well aware of how that's been going. Doesn't fill me with much hope or confidence or security. Maybe halfway through 2025, I reached one of my lowest points, had my first bout of real ideation, and basically had the experience that I wound up basing X-YZE's story on. I've improved since then, but my circumstances haven't.

So here I am at the end of 2025. I haven't been looking for work very hard recently since I wanted to focus on finishing X-YZE, and no one really hires at the end of the year anyways. But more than all that, I have a truly foolish wish: To have a life that doesn't require me to spend a majority of my time doing stupid tasks for pointless and unfulfilling endeavors to the benefit of horrible and selfish people. I want to fight for this better life, but when I try to think of how to do that and only come up with "start a Patreon and Kofi" it's hard not to give up. Maybe I'll start those things, maybe I won't. I don't really know what to do. In many ways, it feels like my life ended in March of 2020 and ever since I've just been experiencing existence via memories of how things used to be. I'm kinda just holding onto a hope that it won't be like this forever.

Anyways. I'm already working on my next project, which is more writing-focused. It's much smaller scope than X-YZE. I'm having fun.

Thanks for reading and playing.
~ Chris / DFR