🐔 Chicken Invaders 1 Remastered #06

In our last ‘episode’, I decided to bite the bullet and re-render all graphical assets at twice their original resolution. Assets include 3D models (which will need to be re-rendered), bitmaps (which will need to be upsampled), and the font (technically a bitmap, but it deserves special attention).

3D models

The re-rendering process is normally pretty straightforward. Just open the original model, change the settings, save it out.

Except, in our case the original files are 24 years old, and trying to open them straight up crashes the software.

image

Unfortunate, but I have another approach. It’s time for fire up the old Windows XP VM and try again with an older version of the software. This time, there’s no crash and the file loads successfully…

… or maybe not. What the cluck?

Clearly not everything is as it should be. I tried 9 different files, and they all exhibit the same problem in the chicken’s beak. The rest (anything not involving chickens) seem ok, though.

This is certainly weird, but let’s not waste time trying to understand why it happened. What options do we have? We could (try) to manually fix the problem by moving the geometry in its correct place. This would be (a) laborious, (b) would slow things down, (c) it would be hard to put the beak back exactly where it was originally, and (d) there would be no guarantee that other problems weren’t hiding under the surface(*).

* In fact, I strongly suspect there are more problems, because the GUI is also acting up and won’t render the view I actually asked it to.

Luckily, we have another option. CI2 uses the same chicken model, and that loads fine:

Let’s use that instead! I just need to fix-up the colours slightly, but it’s still going to be a net time/effort gain. I also take this opportunity to bump up the triangle count on the wings, because at the higher remastered resolution the straight lines of the individual triangles are just about perceptible (especially when the wing is fully bent). The things I do for quality.

And there we have it – our first remastered chicken:

image

Now it’s a question of repeating the same process for the rest of the 3D assets. Some models require a lot more touching up, and in those cases I’ll first check whether the work has already been done for CI2 remaster. If so, then I prefer to use that in order to save some time and effort, generally speaking. The assets I ended up using from CI2:

  • Asteroids
  • Smoke
  • Explosions
  • Egg
  • Gift
  • Feather

Huh. CI2 ended up helping with a larger chunk of the graphics than I thought.

What is definitely time-consuming and annoying is that in a lot of cases, I didn’t bother to set up proper cameras back in 1999, but rather manually “eyeballed it”. Since then, the precise centering and distance from the model have been lost, so to get a pixel-perfect recreation (or as close to it as I can realistically get) I now have to manually match the output size and placement:

In the above screenshot, I have loaded the original rendering of the shield as a reference backdrop, onto which I’m trying to align the 3D model.

Even so, the rest of the models go by uneventfully until we get to this:

image

This is interesting because it highlights a choice: Which one is preferable for the remastered version?

image

The first one is a faithful re-rendering, while the second one is arguably more modern and looks better. And it’s already done (for CI4), so hardly any extra work is required!

There is no right decision – it will all depend on the goals of each project. In this case, since the goal is to preserve the spirit of the original game as closely as possible, the first one is the correct choice.

Bitmaps

Looking at the original bitmaps closely, I get a sinking feeling when I realize that they are in 16-bit colour depth (which only uses 5 bits per R/G/B channel instead of the nowadays usual 8). Just look at those dithered pixels:

In fact, looking at the code I see that UVE is initialized to a 16-bit color depth, so even the rest of the art is stored in 24-bit, it’s only displayed at 16-bit.

Although I can’t be entirely certain, I believe the reason for this choice was that in 1999, the performance of graphics cards in 16-bit depth was superior to 24-bit depth (32-bit depth was not a thing yet), because one pixel naturally fits in a 16-bit memory word. Also, I seem to recall certain graphics cards that could only do 16-bit at higher resolutions due to the lack of video memory.

Be that as it may, dithered graphics behave very poorly when upscaling, so we need to do something about it.

Luckily, it’s CI2 to the rescue again. The CI2 starfield is simply a recolored version of the CI1 starfield, so it can be used with minimal changes. Even better, it was already remastered to be put into CI5 as an unlockable background, so no changes. Score!

Annoyingly, the exhaust in CI1 is hand-painted (and, even worse, it has baked-in translucency), so it requires special handling (and CI2 can’t help us here, because the exhaust has been completely re-designed there):

image

My initial attempts to re-paint this manually were met with abysmal results, so I’ll leave it for now. You can’t win 'em all!

Font

Fonts in CI1 (and for many years following) were made up of individual bitmaps, one for each character. These are all the characters for the “large” font:

image

Hmm, this seems to be sorely lacking. Only Latin characters, there are no capital letters, and most symbols are missing. Recall that when CI1 was first designed, it was a hobbyist project that I did in my spare time, and I never expected it to become publicly available, much less successful. So, I’d try to get away with doing as little work as I possibly could. Also, looking at the source files for the font, it appears that each letter needed its own manually-sized bounding box, which would make the whole font creation process boring and repetitive.

image

In fact, I recall it still being boring and repetitive all the way up to CIU. It got even worse after support for different languages (codepages) was introduced, to say nothing of the 1X/2X variations that had to be created and kept synced and up-to-date. So, even though I’m going to technically chalk this up to laziness, at least it was justified laziness.

In any case, we are using a modern UVE now, so let’s discard all this bitmap nonsense and use actual TrueType fonts instead. Of course, it would be too easy if “it just worked”, so we must (at the very least) manually replace that weird-looking copyright © symbol:

image

Fun!


Next part in the series

Start at the beginning

30 Likes

It was actually slightly different because the original CI1 starfield did not loop horizontally very well

image
we cannot see this :pensive:

One thing I gotta admit is that this series is fantastic to read. Too bad we didn’t have anything like that for the episodes.

Also bonus upscales from me:
realesrgan-x4plus
remacri
ultramix_balanced

15 Likes

Fun fact: Windows XP will use classic icons (Windows 98 icons) if your graphics card can’t render all colors correctly. (Something I experienced due to my sweet old previous computer)

1 Like

wondering which control method will be used: D-keys or Mouse?

All of them except the touchscreen

2 Likes

Ah, correct. It only scrolls vertically in CI1 so there was never any need. It’s the “principle of least effort” (you’ll see a lot more of example of that in the upcoming posts :wink:

Sure you can:
image

It’s interesting how the bottom one creates ‘bumpiness’ in the specular highlights where there originally was none.

You’re most likely running in 4-bit color (16 colors), and Microsoft did not bother re-drawing the icons for that.

8 Likes

But not with blue shirt :<
Also, do these red things exist in CI3/4/5/U, if yes, then we cannot see it :<

Have you played CI1?

what
ok hold on

image

Pinky pinky

Here you go
изображение

I definitely did not photoshop this.

Checkmate. No texture.

image

pink

butt

Rounded smoothly

what 3D modelling software do you use?