Welcome back to another weekly roundup! If you somehow missed it, we released DareSora Volume One last week, which you can check out on Steam HERE!
We also have some comments from the engineering staff on Sakura Sakura explaining why it’s taken so long, and to prove we haven’t forgotten about it! We currently have 6 members of the QA staff working on it right now, and have a Steam build submitted, so fingers crossed we’re ready to launch soon!
Newton and the Apple Tree:
Hey there blog post readers! I’m SpudManTwo, here to tell you some tales from upscaling Sakura Sakura. As you might have heard, I was brought on about a month ago to help out with the Sakura Sakura project. I’m here to help with some of the technical aspects of the game and to help the game accept the higher resolution assets that Doddler was talking about. If you haven’t read that one, I highly recommend reading it as it will help give insight as to why there is now 3 programmers on one project.
You might be asking, “But what kinds of issues could be popping up from the bigger pictures? Don’t you just have to change the window size?” I’m glad you asked straw man!
I don’t have the space or sanity to cover working on all the issues, so I’ll be picking a few and covering them in detail.
As you might remember Doddler talking about, Hiqo Soft really does bring across a sense of high quality with everything they have. This means having special assets for just about everything in the game. Aside from 5,000+ Character Sprites he mentioned, there’s an additional 3,000+ images used throughout the game. Here’s the trick, with every single that we have to display, it has a set “left” and “top” numbers. These numbers dictate where exactly the image should be displayed on the screen. When we make the game window bigger, this misaligns all the images and makes things go in all kinds of weird directions. Lucky me, I am a programmer and we have the technology to automate fixing these things.
Automating this process isn’t too rough. The trick here is that we only want to change things with exact keywords, and not things containing the keywords. Take for example, an asset that uses a keyword of something like “y=”. We could search for all instances of “y=” but it would return instances of things like “victory=” as well. So we need to filter it down to just the stuff we want, and none of the stuff we don’t. Beyond this, the automator needed to just certain types of files, but not others. All said and done with, you end up with a program that looks a little like this.
With that, you’d think we’d be good to go right? I mean, all the pretty pictures of best girl are upscaled right? Bzzt! That may be all the images but what about the text?
If you happen to own Newton and Apple Tree, I’m sure you might have heard some of the complaints about font size. So we made sure with Sakura Sakura to make the fonts bigger. But this means that text wrapping needs to be implemented, text overflowing needs to be fixed, etc. While these things may not seem like a lot, but these things all add up over time.
The fun didn’t stop there for me. You see, whenever someone says you’re crazy, the rational idea is to double and then triple down on that craziness right? Instead of just upscaling all the game’s assets, we decided to make it so you could resize and even maximize the game window. If you follow Doddler on Twitter you might have noticed he tweeted out a little video showing exactly how smoothly that went. If not, you can watch it here https://twitter.com/The_Doddler/status/1027126504415670273 . So what is actually going on in that video, is what we programmers call a “race condition”. In a race condition, the output is displayed based upon a series of events that may or may not happen in a very specific order. In non-programmer speak, imagine 4 little kids fighting over a stuffed bear. The bear gets pulled and jostled in all directions, breaking apart at the seams. Except in our case, the stuffed bear was the display window for the game. The solution I implemented in to protect the poor teddy bear, was I added a chaperone. The chaperone watches over the kids fighting and tells them when it’s their turn. This prevents things like what happened in Doddler’s tweet. I’d go into more technical terms but I don’t think we have time or space from that. Not to mention that I’m sure you’d all rather have me working on Sakura Sakura to help deliver it to you all as fast as possible.