Our next milestone is to get the CI1 code to compile inside the CIU framework. We want to get the absolute bare minimum to compile (but not necessarily actually work correctly), and then iteratively build upon it.
This means we ditch anything optional or superfluous and focus on the bare essentials. We comment out or stub out the introductory sequence, outro, disk I/O (saving/loading high scores), high score name entry. Even the sound and input systems are ripped out almost entirely (CI2 provides a sound emulation layer that we can use, and weâll do significant rework on the input system to support mouse and joypads anyway). There are a lot of casualties here, but weâll swing around and fix them later on.
This is a crucial step because it canât be broken down any further sub-steps, and thereâs no indication of whether weâre on the right path or even how close we are to a successful compilation (well, except for the giant list of compiler errors that should hopefully get shorter and shorter as time goes by). We have to spend several hours âflying blindâ until we land on solid ground again.
Thankfully, CI1 is a small project, and itâs easy to strip it down to a minimal working version. Other projects are much larger/harder, and we can easily spend several days or even weeks in a non-compilable state.
As part of this process, we also wire up the graphical resources so CI1 can access them (otherwise we wonât be able to see anything). Weâll use that program I wrote for CI2 to convert the essentials from bitmaps to textures:
These graphical assets are in the original (low) resolution, so letâs configure UVE for 640x480 and single-resolution (1X) graphics.
A slight(?) detour
Since UveUDX9, UVE has a mode called HQ2X, which doubles the resolution of all textures (while keeping the rest of the game exactly the game). This is how CI3 and CI4 were âremasteredâ: by re-rendering all assets in 1600x960 resolution (instead of the original 800x480). Uve++11 expands upon this concept, theoretically allowing for HQ3X, HQ4X, or above. Very recently, the capability to have different resources use different HQ factors was added. So, for example, itâs now possible for the UI to have twice the resolution of the rest of the game (this is used in the Android version of CIU).
When HQ2X was first introduced, two separate sets of assets needed to be created (one for 1X and one for 2X), and they were both kept separate on disk. It quickly became apparent that this is not a sustainable strategy, however. The two versions of each file must always be kept âin syncâ â updating one but forgetting to update the other causes a lot of bugs and maintenance headaches.
So CIU took a different approach. Only one version of the assets is ever created (the highest-resolution version). When the game is looking for an asset to load in low resolution, it will automatically downsample the higher-resolution version appropriately(*).
* This is only during development. For the final build, when the WAD data file is created, assets are baked into their final resolutions. There are also a lot of details Iâm glossing over, such that .JPG files are never downsampled to prevent quaility loss, or that high-resolution asset dimensions are restricted so that they perfectly match the 1X dimension, or that you can mark certain assets to be âresolution-agnosticâ. But this detour is long enough as it is.
âŚand weâre back
As Iâve mentioned, the decision at this point in time was to NOT remaster the graphics. Using existing graphics as-is (a) saves effort (b) arguably creates a more authentic experience and (c) is more in line with the initial reasoning behind this project, which was not a full remaster but more of a âtechnical refreshâ. In fact, I agonized over the subtitle and how to best communicate this to the players:
- Chicken Invaders: One ?
- Chicken Invaders: Redoux ?
- Chicken Invaders: Tech Refresh ?
- Chicken Invaders: Re-heated ?
In practice, however, keeping the original graphics in 1X resolution was a poor decision:
-
UVE doesnât actually support loading 1X assets directly â it always requires a 2X asset that it can downscale. So changes needed to be made to the engine to support this, hence more work. Most egregiously, it breaks compatibility with the older folder layout of assets on disk. As of this writing, Iâm uncertain whether this change will be reverted.
-
After viewing the game for the first time, it became apparent that 640x480 graphics upsampled to FHD resolutions (or above) simply became to murky and blurry. And it only gets worse if you turn âbilinear interpolationâ off(*).
-
I tried to half-fix this by upscaling the UI, but having the UI at 2X while the game is at 1X creates a jarring inconsistency in the quality.
* I should really have more screenshots of this process, but I didnât know I would be doing a write-up until later.
So, the decision has been reversed: weâll remaster the graphics at 2X resolution (similar to CI2), which now lands this project firmly in the âremasteringâ category. On the upside, we now at least know what the subtitle will beâŚ
.. but we now have a new set of problems.


