Sora – A Development Story

It’s been a while since we’ve posted one of these, but we had a lot of fun working on Sora and making it look good on modern systems, so we decided to give a little blurb on the technical changes we’ve made to Sora during the localization. Without further ado I’ll give to floor to Tony, the man behind the code.

Sora-Logo

Tony: I had only played Sora briefly in our meeting with Orange Juice in May 2015, but when I actually got to spend more time with the game, it really clicked; the fast gameplay, setting, soundtrack and presentation were amazing. I was also aware of the fans’ wishes for a new release of Sora, and felt it very important to do a good job with our localized version.

When we start localizing a new game, we evaluate its customization options such as screen settings and discuss what technical improvements we could add to make it more enjoyable for the players. Basically we ask ourselves “What would I like to see in this as a gamer?” and then check how feasible it would be to add it. Sometimes the engine the game runs on makes this impossible, but usually we’re able to add fancy things like higher resolution support.

The first thing we wanted to improve with Sora was the game’s resolution. The original version of Sora runs at 640×480 resolution which feels rather small in modern HD era. Since the base resolution was so low, simply adding resolution options to upscale the graphics to a higher resolution would leave the screen looking blurry and pixelated. I had some concerns about changing the rendering resolution because in shooting games every single element’s positioning is very important, but there’s no harm in trying, right? I set up the necessary changes to launch the game in 720p as an experiment and we got this:

first720p

First higher res shot of Sora running at 720p (16:9 aspect ratio). Notice how the action is centered on the screen because the game area is supposed to be 4:3!

The first tests revealed that the essentials were already in place thanks to Orange Juice’s smart coding, but there was still a lot of work ahead. The view was too far, allowing the player to see more of the game area than they were supposed to, leading to problems like enemies appearing out of thin air. Some of the backgrounds and effects were broken, some boss positions were off, and of course all 2D elements were still happily in the 640×480 land.

Yet even with all the chaotic results, we could see that the game’s visuals got a noticeable improvement from the resolution increase. We went through the graphics assets we were given and found that many images had more detail than the original game resolution could show. Our graphics guys Ozhan and Yulay were on board for creating high-res versions of the menu elements. After some gameplay / image comparisons our minds were set.

As a side mention, we experimented with making Sora’s gameplay fully widescreen while deciding on the new target resolution. We had a lot of fun with it and even had some back and forth with OrangeJuice, sending different builds! However, it was clear from the onset that it would break the game too much. Let’s put aside the stage 1 opening cutscene continuing forever because the missiles never hit their target, and ignore enemies popping out of thin air, how about being able to move behind bosses like Nath and getting some free shots while she’s stuck firing at nothing? The amount of undesired behavior the change would generate was overwhelming.

I’m over here!

I’m over here!

We decided to set the resolution to 1280×960 which doubles the original dimensions, the main reason being that beyond that even the higher resolution graphics wouldn’t benefit much. While our previous attempts at full widescreen were doomed, we were able to add support for widescreen menus and cutscenes specifically. As an added bonus, since the fight against extra stage’s last boss is in a special type of area, we added widescreen support for that too!

widecutscene

Jakke: After upgrading the resolution everywhere else, we were left with the game’s opening (at 640×480 resolution) looking strongly pixelated, not to mention all the Japanese text in it. Unsurprisingly, the original project files for the opening were gone from existence. Luckily, we received most of the original graphics used in the opening, and pieced them together with newly recorded gameplay footage to recreate the opening identically at a 1280×960 resolution with English texts. Our friends at Interweave Productions pulled some miracles with the video.

Sorathumb

Tony: We also changed the texture format. Sora uses a Japanese engine called Luna3D, which is also used by our earlier title 100% Orange Juice. The engine handles a lot of things well, but its texture handling has problems. There’s an issue with texture drawing that causes all textures to appear blurrier and the engine’s own texture format is somewhat slow and also takes up a lot of space. We changed 100% Orange Juice’s texture format some months ago and brought these changes to Sora as well. As result, our version should have faster load times despite having bigger images and the required hard drive space for textures is down to less than 100mb instead of the original’s 1gb.

As for input, the original game only supported DirectInput controllers, but similarly to what we did with QP Shooting – Dangerous!!, we added XInput support to support all types of controllers, as well as added keyboard bind options. Thanks to some helpful feedback from our testers / reviewers, we also added visible keybinds in the tutorial to help new players.

We had a lot of fun with making the achievements. When we started Sora, we were terrible at the game. Back in Japan, I couldn’t even get past the first stage! However as we kept playing we got gradually better and many “How am I supposed to beat this?” fights turned into satisfying victories. We think the game does a very good job at that and that’s why we had no qualms with making the achievements challenging.

Jakke: It took me well over 20 hours to clear the original Japanese version of Sora on easy difficulty. While playing and testing the game, gradually feats that had first seemed impossible, turned possible, then probable, and ultimately felt only fair. I’m not great at shooters myself, so I largely used myself as a guideline for deciding on the achievements – if I can do this, most people can be reasonably expected to be able to. My personal favorite is ‘Dance Like a Flower’, which drove me to near madness before I finally cleared it (with controller burns on my thumb).

 

Finally, go ahead and enjoy these screenshots of things gone horribly wrong during development!

This slideshow requires JavaScript.

 

11 thoughts on “Sora – A Development Story

  1. I actually got to play this game prior to the Steam release. The second I booted it up and saw all these new little additions that weren’t there previously like 1280×720 and widescreen support I knew this was going to be a great port. And it is! I had a blast playing through it again.

    Thank you guys for all hard work you put into localizing this game 🙂

    • It was another time when games were on cd’s in the mid 2000’s they were and still are really small

  2. Amazing job, thanks for all your efforts! The extra stage fight where the game goes into wide screen was quite impressive. It was a natural transition but very impactful. The game is a blast to play and the improved graphics really payed off.
    I’m also quite impressed with the achievements part – it “only” took me about 12 hours to beat Sora on easy (although I have 20 of Suguri and 26 of AoS on my belt) and Gotta Go Faster and special difficulty seemed so far form my capabilities, so it should have taken a lot of practice to do them all. But now I’m motivated do try harder.
    Now if only we also had an amazing port of Acceleration of Suguri 2…. *wink wink*
    Again, thanks for all your hard work, we can see the effort put up in this port and we’re very grateful for it.

  3. This was a very interesting read. I do hope that one day, Lethal Crisis (And it’s roguelike sequel Proto Sphere, which has Sora has a boss a quarter the way though the game, and as a possible final boss) will get translated and ported as well as Sora was.

    • I second this. Lethal series is a pretty interesting series and I really enjoyed watching the gameplay videos in youtube. I have tried the demo version of Proto Sphere and it is pretty fun too, but too bad I cant read Japanese so I can only figure out how the items and equipments worked with trial and errors. nonetheless, the gameplay and soundtrack were pretty enjoyable. The story in the series seems to be linked so i’m looking forward to it too.

      I’m guessing the next game you guys will be bringing to us would be Acceleration of Suguri 2, I’m looking forward to it too. But pls do try considering Lethal series after you are done with AoS2. And maybe also for the sake of Sora cameo in Lethal Crisis:Proto Sphere 😉

  4. Thank you for doing such great stuff!
    I really had fun reading you’re story!

    Okay, this is very stupid, but…
    …does Luna3D refer to the engine former distributed by haniwa at selene-lue.halfmoon.jp?
    I was searching for it once, but only found a release from 2006.

  5. Skype has established its web-dependent client beta on the
    entire world, soon after establishing it generally
    in the United states and U.K. earlier this four weeks.
    Skype for Internet also now can handle Linux and Chromebook
    for immediate text messaging communication (no video and voice nevertheless, these need a connect-in set up).

    The increase of the beta adds support for a longer list of
    different languages to aid reinforce that global user friendliness

Leave a comment