Corpse Party PC - Programming Blog
Hey there. Another PC game release, another blog from XSEED’s own PC title localization programmer! This time I’m here to talk to you about the PC version of Corpse Party and give you my own perspective on things, including why this release was so long coming.
- A Cup of Soup -
First, let’s look back at the original Japanese PC release of Corpse Party: BloodCovered. Released episodically from 2008 to 2011, the original indie version of BloodCovered was coded in a curious programming language known as HotSoupProcessor, or HSP for short.
Originally based on BASIC, this programming language is as minimal as they come, far from what’s usually used in the game industry. It gained popularity in the Japanese independent industry, being used for many other games by indie developers such as Team GrisGris and Platine Dispositif for a time.
The thing is, of course, that HSP is not a language that has wide use. It’s pretty tricky to work with at times, and indeed, it wasn’t going to be very compatible at all with the APIs used by popular services such as Steam or GOG. Maintaining code made in HSP was also going to be difficult, and bugs could sneak right under my nose without notice if I wasn’t careful.
We initially worked on the HSP version of the game as we inserted the English localization, but eventually, it was pretty apparent that we couldn’t keep going like this if we were going to release a compatible version with all the frills; I had to make a call. I decided to port the game to a modern, wide-use programming language and a new engine.
- Making a New BloodCovered -
Porting the game to a new engine wasn’t going to be easy. The original game’s code was made in a very intricate way where functions depended heavily on each other, and HSP is a type-weak language, much unlike the languages most commonly used in the industry. There were a few goals I wanted to achieve through this as well:
- Maintainability, so that I could take care of issues fairly well as time went by.
- Adaptability, such that features like graphics options and gamepad support could be robust.
- Portability, in the hopes that we wouldn’t be stuck with just a Windows PC build in the end.
So it began. I named the new engine BloodCookie. I don’t know why. It just felt right at the time. Silly, personal, and yet still somehow appropriate. Over time, every function from the original HSP game would be reproduced in C++ code as part of BloodCookie, but with the vast differences between the two languages, a lot of issues came along for the ride. Even the slightest typo could mean the difference between working and not, and due to the intricately intertwined nature of the code, it took a while before we could really see the game running at all in the new engine. Still, after many months of hard work, it became a reality.
- Horror within Horror -
So the game was running in its new engine. But it soon became apparent that more work would be needed, as bugs gradually crawled out of the woodwork, engulfing the new code. One of the most amusing bugs happened early on, where Chapter 1’s intro would continually loop for some strange reason, along with other oddities, such as everyone turning into little girls… or worse. Sadly, this was just scratching the surface, as other bugs reared their heads too, such as characters who did not move far enough due to a mistake in the script parser, or a number of continuity issues we later discovered could be triggered through very specific circumstances. Crawling through this pit of bugs was no easy task.
We tested the game thoroughly, making sure to fix as many things as we could, but even now I’m sure more bugs are lurking, and I continue to hunt them. This very instant, I’m sure there are still some of the minor audio-text desync issues that plagued us throughout, and to the very end we were fixing some really strange bugs such as being able to ‘revive’ a character by checking a certain note at just the right time. That said, most of the bugs remaining now seem to be bugs that existed in the original game, so I’m glad that this long, long haul has paid off in making the release as smooth as it could be. It’s such an incredible relief to finally be able to say “it’s done” and move on to the stage of support and improvement.
- The Payoff -
As development went on, we were able to start making the game better than it was originally. We added a name box to the dialogue boxes, which the original Japanese game lacked, allowing us as much room for text as in the PSP and 3DS versions without looking disruptive. For that matter, the original release of the game ran only at 640x480, with a fairly minimal selection of options. With the new engine, I was able to allow the game to run at any resolution you could possibly want to use, along with implementing features like a screen smoothing toggle or smartly-sized black borders for widescreen resolutions. The game also runs at a smooth 60fps, and it’s a beauty to see it in motion. Controllers handle the game pretty smoothly, with more in-depth control configuration to come. Most recently, I added an optional stretching feature and enabled vertical sync. While these features may not currently be available in our non-Steam versions of the game, look forward to seeing them soon enough!
The biggest thing that’s come from this, however, is raw compatibility and support. This release of Corpse Party should run on just about any system or setup, supporting a wide variety of displays, controllers, graphics cards, and other hardware. We’re also able to look into bugs far faster and easier than we might have been able to with the HSP version. But of course, the biggest benefit of all is one that hasn’t yet seen the light, although it’s actively in progress and will happen sometime in the near future: the game will have a Linux port, and be able to run in SteamOS. Functionally, the Linux version of Corpse Party will be 100% identical to the Windows version, but you’ll be able to play it on a wider variety of systems, including Steam Machines!
- In Conclusion -
Well, that’s about it. This release has been a very long time coming, and it’s been a very rough ride for many of us involved, I would say. I hope that everyone who plays the game will enjoy it. I also hope that those who are reluctant, such as those who are longing for the different artwork and voice acting of later versions of the game, will see how much effort has gone into this release. And I hope that maybe, just maybe, those people might give it a fighting chance. After all I’ve been through with this game, all I want is for it to get out there and bring joy (or terror) to as many people as it can. For me, the nightmare is finally over, but for everyone else, I would certainly say it has just begun…
Sara J. Leen
Localization Programmer, XSEED Games