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.

 

Orange Juice Fan Art Contest Winners Chosen!

#1 "Wedding Bride" by TsukinoRS

#1 “Wedding Bride” by TsukinoRS

After a long and hard judging process, TsukinoRS’s wedding bride version of Suguri was chosen as the winner of the second Orange Juice fan art contest!
They will be receiving a unique 200% Mixed Juice! T-shirt on top of a free copy of the game.

Since we were overwhelmed by the sheer number of great entries (well over a hundred in total), we decided to extend the other rewards from top 5 to top 20.
The following users have won themselves a copy of 200% Mixed Juice!:
(click on the thumbnail to view full picture)

NOTE: All winners, please add echomateria [Fruitbat Factory] to your Steam Friends list to receive your rewards. We will contact you with your reward shortly after. If you haven’t heard from us by 30.9.2015, please reach us at support@fruitbatfactory.com.

#2 "Transition" by El' Nath

#2 “Transition” by El’ Nath

#3 "The Vorpal Seagull" by Solmyr2000

#3 “The Vorpal Seagull” by Solmyr2000

#4 "Obligatory Hotspring "Episode"" by Kulas

#4 “Obligatory Hotspring “Episode”” by Kulas

#5 "Sora's Extraordinary Specs" by Anonymous_Neko

#5 “Sora’s Extraordinary Specs” by Anonymous_Neko

#6 "200% Mixed Friends" by puppyprince

#6 “200% Mixed Friends” by puppyprince

#7 "Inter-Continental Ballistic Marc" by Geoff

#7 “Inter-Continental Ballistic Marc” by Geoff

#8 "Instensifying Poppo!" by QPoyio

#8 “Instensifying Poppo!” by QPoyio

#9 "100% Orange Juice 5" by LendoKhar

#9 “100% Orange Juice 5” by LendoKhar

#10 "LittleCustard" by Kelsuis

#10 “LittleCustard” by Kelsuis

#11 "suguri~" by curenanako

#11 “suguri~” by curenanako

#12 "Kai and Poppo BFF" by Zero Eiyuu

#12 “Kai and Poppo BFF” by Zero Eiyuu

#13 "The winning hand" by Octopus Prime

#13 “The winning hand” by Octopus Prime

#14 "Orange Chibi" by WUR

#14 “Orange Chibi” by WUR

#15 "There's Bound To Be Pudding There" by [明] Isara (No Game, More Life)

#15 “There’s Bound To Be Pudding There” by [明] Isara (No Game, More Life)

#16 "The Popponator" by Sir Stiffy

#16 “The Popponator” by Sir Stiffy

#17 "Give em' back, Marie Popo!!" by NightSkull

#17 “Give em’ back, Marie Popo!!” by NightSkull

#18 "The lost sheep" by Pa!

#18 “The lost sheep” by Pa!

#19 "Pudding Thief (no color)" by Frostshark

#19 “Pudding Thief (no color)” by Frostshark

#20 "Suguri Pic for Contest" by Yinsashi

#20 “Suguri Pic for Contest” by Yinsashi

In addition, as promised, we’ve run all the rest of the entries through our trusty RNG machine, and the following lucky five will receive a copy of 200% Mixed Juice! as well:

"Do you like bullying other people?" by Blues

“Do you like bullying other people?” by Blues

"Innocent" by Truly Drowsy

“Innocent” by Truly Drowsy

"Kai's Ace in the Hole" by S.

“Kai’s Ace in the Hole” by S.

"Random Orange Juice Characters" by Puru

“Random Orange Juice Characters” by Puru

"100% suntan (Contest Entry)" by kmyc89

“100% suntan (Contest Entry)” by kmyc89

The full list of the fan art can be seen in the Steam artwork gallery. Again, big cheers to all participants!

Orange Juice Fan Art Contest!


To celebrate the upcoming release of 200% Mixed Juice!, it’s time for another fan art competition!

Submit a new fan art of your own making to the 100% Orange Juice Steam community Artwork gallery by September 1st to enter and win 200% Mixed Juice!

The first art contest gathered such an awesome selection of artworks, we had a hard time picking winners. That’s why this time everyone will have a chance to win, in true Orange Juice spirit!

Since 200% Mixed Juice! covers all of Orange Juice’s productions, the theme is free, as long as it’s related to any of Orange Juice’s games.

Prizes:

  • First place: 200% Mixed Juice! t-shirt + 200% Mixed Juice! Steam key*
  • Places 2 to 5: 200% Mixed Juice! Steam key*
  • Additionally, we are running all the rest of the entries through our trusty RNG generator, and 5 lucky entrees will receive a copy of 200% Mixed Juice!*.

Rules:

  • Enter a new, previously unpublished artwork of your own making to the Artwork section by September 1st with the comment “Orange Juice fan art contest” in description.
  • Artwork must be related to Orange Juice’s games, and follow general Steam content guidelines to be accepted. No joke entries, sorry! (Obvious 1 minute Paint entries of ‘orange juice’ will be automatically disqualified from the lottery).
  • Multiple entries permitted, but each entrant may only win (or participate in the lottery) once.
  • Fruitbat Factory staff will pick the winning entries at their own discretion.
  • Contest entries may be used by Fruitbat Factory on their social media and other promotions.

*Winners will receive a 200% Mixed Juice! Steam preorder key, which can be redeemed immediately and will activate upon the game’s release.

100% Orange Juice v2.0 ~The Poppoing~ Preview

After weeks of extensive testing, we are proud to finally introduce our upcoming patch 2.0 for 100% Orange Juice.

In many ways, as befits the version number, this build finally encompasses our vision of how we always wanted 100% Orange Juice to be.

Changes:

– Added a new boss character, Big Poppo. Big Poppo has a 10x Player Level chance of appearing for non-Poppo players in place of another boss when encountering one on any map. Any stars lost to Big Poppo will be distributed between Poppo players in the game.

bosspoppo

– Added a new map: Poppo Paradise. On Poppo Paradise, all CPU characters will be Poppos. Poppo Paradise replaces all previous starting maps.

– Added a new field effect: Poppogeddon. Every 6 turns, all non-Poppo players are assaulted by Big Poppo. Poppogeddon has a 50% chance to steal another field event’s place when not chosen for the map.

– Added a new panel: P-panel. If a Poppo lands on P-panel, they will cast Ubiquitous on all non-Poppo players in turn (they do not need to carry Ubiquitous). If a non-Poppo player lands on P-panel, all Poppos in the game cast Ubiquitous on them.

– Using Ubiquitous on Kai now steals their player’s credit card info, instead of their wallet as previously.

Fixes:

– Corrected the tooltip for Ubiquitous to reflect the actual effect. New description: “Move to target unit’s panel. In addition, steal 10% x their level of their player’s soul.”

Barring any technical difficulties, version 2.0 ~The Poppoing~ will roll out on Steam very shortly. We are very excited to see the reception.

 

99 Spirits and a New Font

And now for some development news.

As I began editing the 99 Spirits scripts, I found I wasn’t very happy with the font the game used; in English it looked rather clunky for the theme and feel of the game.

After discussing it with the developer, TORaIKI, we found it’s possible to redeem this, and after careful evaluation the font used in the game’s story segments has been changed into one which I believe captures the spirit of the game much, much better, making the text more colorful while retaining full readability.

You can see the outcome in the shots below.

99 Spirits merchant girl Saki 99 Spirits - Hanabusa's journey

Our whole team is extremely happy with the new looks, but more importantly, what do you think?

Those Who Hunt Tsukumogami

In answer to a popular request, today we’ll walk you over the basic gameplay in 99 Spirits. We’re calling it a Puzzle RPG, but what does that mean exactly?

Read on to find out! (Note: all images are still very much a work in progress.)

The combat in 99 Spirits revolves around a puzzle mechanic wherein you work out the true identity of the enemy Tsukumogami, ordinary objects that, as per the Japanese legend, have come alive on their 100th birthday.

At the beginning of each battle, you face an enemy shrouded in an impenetrable mist which signifies the concealment of their true nature, and no attacks performed on them can cause lasting damage. All you can do is simply exchange blows with them until they run away. The battle itself is kind of turn based, you have a set number of strikes every ‘turn’ – or ‘clash’ as we call them, and you either defend or attack as long as they last – but the enemy can interrupt you with their own attack, and with good reflexes you can parry that and counterattack.

99 Spirits - Combat 01

Now, when you obtain the Gokon sword, you gain two new abilities in the form of the gems you can see at the bottom:

99 Spirits - Combat 02

You fill the two gems by attacking and defending, respectively. Once the first gem’s gauge fills up from your attacks, it allows you to read a part of the essence of the enemy Tsukumogami.
These hints come in the form of either a keyword related to the item in question, or part of the name of the actual artifact:

99 Spirits - Combat 03
99 Spirits - Combat 04

Once you have gathered enough hints for that ’eureka’ moment when it all clicks, you can use the sword’s second gem to make a guess at the item that is the essence of the Tsukumogami you are fighting.

99 Spirits - Combat 05
Activating the gem brings up a new menu, where you enter your guess:
99 Spirits - Combat 06
99 Spirits - Combat 07

And if it’s correct…

99 Spirits - Combat 08

The enemy’s true form is revealed!

Each Tsukumogami is unique from their hand-drawn artwork to their fingerprint-like combat hints, so an experienced spirit-hunter might be able to identify a familiar prey from a single hint. Based on early testing sessions with family, I can already tell this part can also be great fun with friends trying to outdo each other to puzzle out the correct answer as fast as possible.

99 Spirits - Combat 09

From this point you can unleash all of your skills to vanquish the enemy.

99 Spirits - Combat 10

If all goes well, you’ll defeat the Tsukumogami and continue your journey.

99 Spirits - Combat 11

A keen reader might’ve picked up on there being more than two gems in the sword, but that’s a story for another day.

The game has nearly 100 different Tsukumogami with dozens of different skills to conquer, and you can eventually capture them to learn their skills, making the battles increasingly more complex and tons of fun.

In closing, don’t forget to support 99 Spirits in the Indie Dev Grant voting at http://bundle-in-a-box.com/!

Know Your Aspects

And now for something completely different.

In these post release days where we are finally receiving some much appreciated feedback from the players, I would like to talk to you regarding something that we’ve received questions about and noticed on some of YouTube videos and screenshots of the game.

The Aspect Ratio

War of the Human Tanks uses a 4:3 aspect ratio, which means it is not widescreen (16:9 or 16:10 aspect ratio). In order to play it or any other games you have that use a 4:3 aspect ratio without getting horribly stretched in Full Screen Mode, you need to enable a simple setting in your graphic card’s options. Why this setting is turned off by default ever remains a mystery.

But first let’s look at what I’m talking about. First screenshot is how our game is supposed to look and second is how it turns out without enabling the correct setting.

WotHT Screenshot with correct 4:3 aspect ratio

WotHT Screenshot with correct 4:3 aspect ratio

WotHT Screenshot with wrong stretched result

WotHT Screenshot with incorrect aspect ratio

Enabling a simple option will save you from suffering this horrible stretching. I have an NVIDIA card, so I’ll describe how to do this for NVIDIA cards. If you have something else, the process should be mostly similar.

First, right click on an empty space on your desktop and choose NVIDIA Control Panel to open the settings window. You can alternatively open this window by typing NVIDIA on the Search Bar after pressing the Windows key. With current drivers it will look like this:

NVIDIA settings for aspect ratio

NVIDIA settings for aspect ratio

On this window, navigate to the shown tab. Display > Adjust desktop size and position > Scaling.

If you see that “Full-screen” is checked like this: then you are going to see all games that are not wide-screen stretched, apart from a few that compensate against that problem.

What you need to do to fix this is to pick the choice above it, “Aspect ratio”. Also do not forget to set Perform scaling on: GPU. Other settings on this screen don’t matter.

When you follow these instructions, there will be no change to your widescreen applications. Non-widescreen applications, however, will now display in their correct proportions.