Upscaling
For a while now, I've been thinking about how to take this pixel-graphic game and upscale it to a modern or even retina res. Although I personally like old-school pixel graphics, I don't think the appeal holds for the general population. Recently I started playing around with some options.
Hello Neighbor
I started with the game's native res of 570x320, then scaled it up x2 using nearest neighbor scaling:
Looks good. As designed. Pixelly.
Vectorize
My original plan was to manually (using Illustrator's LiveTrace) vectorize all the game's graphics, save them as SVG, then rasterize them to the appropriate resolution on load. The faces in Helsing's Fire got this treatment and it looked great. For Papers Please, This is a much bigger task than it sounds like initially, mainly due to the upgrade from pixel fonts to proper TTFs. That requires all new font selections and basically blows the page layouts I've done so far. Working from the screenshot, I vectorized everything to get this:
Hmm.. Not as f*ckin rad as I expected. The docs are much harder to read now and it feels like an inconsistent level of detail. Some of that could probably be fixed with fatter typefaces but I was tired of looking at fonts at this point. I also really miss that "ARSTOTZKA" font on the entry permit. Couldn't find anything like it in TTF.
There's Special Stuff For That
Ok, next try: Fancy pixel rescaling. In these modern times, there are a whole bucketload of fancy pixel rescaling techniques used in the emulator scene: EPX, SuperEagle, Super2xSa, etc. I researched a few of these before stumbling on the daddy of them all, hqx. Searching for resources on that led me to an impressive pixel-to-vector algorithm that regrettably doesn't come with source code. It's not a total loss though, as they've set up a great comparison page where you can compare the results of many different algorithms easily. Here you can see hqx does really quite well.
Based on that promise, I grabbed the hqx source and compiled it for OSX with some help from this post on the cocos2d forums. Some scaling techniques can handle dithered areas well, but hqx apparently isn't one of them. So as a first step, I converted all the dithered areas in the original image to solid blocks, then ran hqx:
Not bad. This has a much more consistent level of detail. The text gets a _little_ weird, but I could fix that manually. It even maintains the pixel style without actually being pixelly, which I like.
Whither Dither
Going back to compare hqx to nearest-neighbor, however, I'm still sorta drawn to the rough original. Especially when looking at the non-dithered version:
Still chunky, but doesn't have the obvious low-res dithering.
No Conclusion
And that's where I am right now. Haven't been able to decide for sure but I'm leaning towards hqx, with hand-tweaking and assets pre-baked at 2x, 3x, and 4x.