Skip to main content

WH #4 - Interior Decorating

The fact that Westen House is already a complete game - and that its assets are available via GitHub - is both a good thing and a bad thing for the purpose of conversion to another system.

On the one hand, it meant that I could extract the MSX graphical assets from GitHub easily enough, and use them as a template for the SAM remix. This, in theory, saves an awful lot of time and effort, in that I could just follow the sizes and shapes already present, and just add more colour to bring everything up to SAM Coupé MODE 4 quality.

On the other hand, it meant that I might end up constrained by the appearance of the MSX assets, and miss opportunities to take fuller advantage of MODE 4 on the SAM. The one thing I was intent on ensuring, for the SAM conversion, was that the basic scenery - the walls and floors - should no longer look like unfilled colour vector outlines over a black background. Beyond that, I was hoping it would be possible to vary the colour of the walls, floors, etc. to better differentiate all the rooms. While the specific construction of each location seems broadly unique in the MSX game, the same wall pattern is used throughout the house. While that might work with the original presentation, a little more variety would go a long way toward ensuring the best possible presentation on the SAM.

The first problem I hit upon is that it's not entirely clear how the MSX game draws its locations. Take the entrance hall for example:

The floor area is 224 pixels wide from corner to corner, while the isometric 'wood floor' asset is 64 x 32 pixels in size.

My initial assumption had been that the whole 64 x 32 pixel assed was repeated as often as required... but I quickly realised that made no sense and couldn't be the case after all. Tiles of that size would require all rooms to conform to the same size requirements, and they clearly don't. A floor only 224 pixels wide uses 3.5 tiles of 64 pixels wide. Plus, even trying to arrange tiles that way led to unwanted seams appearing throughout the floor.

My next thought was that each block of flooring in the assets was a 3x3 set of isometric tiles, but I quickly dismissed that idea, not least because if the way walls and doors interact with the floors, and because the floor textures are broken up into even numbered patterns - 8 wood panels wide, for example.

Then I realised that I could possibly ignore the fact that it appears to be isometric, and break each 64x32 pixel block into four 32x16 pixel chunks, with one additional 32x16 pixel chunk taken out of the middle, which can be repeated to fill out any floor area... But, equally, it could be eight 16x8 pixel chunks around the edges with either one 16x16 chunk or two 16x8 chunks repeating to fill out the floor area.

This last option would seem to tally with the walls, which are clearly built out of panels 16 pixels wide and up to 48 pixels tall, while the door frames are 32 pixels wide and up to 64 pixels tall, including the sections of floor attached to some of them. The crypt walls are different, though - the corners of the room are drawn in as normal, but the walls themselves are frequently represented by just a single 16 pixel wide section of brick pattern, which is placed part way between each corner. This may necessitate a different approach to the walls in the SAM version. Hopefully it won't mean the black background has to show through...

A closer look look at the floors revealed that, in most cases, the outermost sections of the 64 x 32 pixel floor assets were each made up of two identical 16 x 8 pixel chunks and that, with the exception of the grass texture and the larger wood floor texture, the remainder of any floor could be built using either two 16 x 8 pixel chunks, one 16 x 16 chunk, or one 32 x 8 chunk. The grass texture repeats a single 16 x 8 pixel chunk, and I believe the larger wood floor texture is not actually used in the game... so that would very much simplify things.

However, it would also limit the kind of customisation I could do with the floor textures. My first wood floor, as shown in the mockup above, gave almost every board a unique pattern, and I'd done my level best to make the stone tile floors as varied as possible within the 64 x 32 pixel patterns of the original MSX assets. Chances are, that just won't be possible in the finished game, or it will make the code for drawing the rooms vastly more complicated... Either way, there's no great benefit in tweaking the floors any further till we have confirmation on precisely how the floors are drawn.

And then, going back to the doors, they're stored in some very odd ways in the assets. The visible doorways themselves are mostly stored in the file doors.png, but a strip from one side of each is stored separately on objects.png - presumably the foreground part that the player sprite has to move 'behind' as it passes through a doorway. The larger part of each doorway includes blank spaces to be filled with the missing frame part and the floor tiles, but each also has a section of floor attached:

This could, conceivably, become another limiting factor in the customisation of the floors... but, if my first round of mockups is anything to go by, it may not end up too bad. However, the inconsistency of the cutouts between the different door styles is another aspect that must also be influenced by how the floors are drawn... so, again, until we ascertain exactly how it's done, there's not much more I can do without the risk of it being a huge waste of time and effort.

By the looks of things, the doorways are simply overlaid on the floors, and then the missing section of door frame is added later - after the player sprite is drawn while it's close to the doorway.

It's at this point I start to see the appeal of keeping everything on a black background... It certainly simplifies things, but I'm hoping the improvements to the presentation will be worth any extra hassle experienced in making it work.

Comments

Popular posts from this blog

WH #5 - It's Not A Bug, It's A Feature

Continuing on the subject of things I really dislike when creating pixel art, we come to the things creeping and crawling around in Westen House , presenting the action-oriented  aspect of the game's challenge: In theory , a group of two-frame animations is nothing special and, in fact, for three out of these four creatures, it's no problem at all. The rats work well enough, the bats look pretty cute, and the blobs are kinda funny. The spiders - at least, I'm assuming that's what they're supposed to be - are pretty confusing, though. The bobbing cephalothorax on a static abdomen and legs that basically just go up and down get rather lost, because they're monochrome and only a single pixel wide, with weird angles in their joints. I realise it's very difficult to animate something that size - particularly something as complex as a spider - but it's hard to recolour something if you don't understand what yo...

TLC #16 - In Conclusion...

The Lower Caverns certainly took longer to develop than I'd expected. We began in July of 2018, exhibited the latest work-in-progress builds at RetCon each subsequent year (bar 2020, where the event was cancelled due to the COVID-19 pandemic), and it felt tantalisingly close to being done for well over a year before we actually finished the playtesting and tweaking. A combination of real-life tribulations, illnesses, injuries and responsibilities artificially extended the development period. Unfortunately for the coder, this had the side effect of giving me perhaps a little too much time to second-guess myself and nit-pick almost everything I had created for the game. There had been a few times during the process where, once a set of new graphics was incorporated into the game, I found fault with the very next build, and supplied amendments immediately. This occasionally led to confusion over which disk image file was the latest, since I neglected to date stamp them for the fir...

WH #2 - Sixteen Shades of Dread

Given that Westen House is essentially a horror game - albeit with a fairly simple,  cartoonish style for its sprites - one thing I definitely wanted to change was palette. The MSX's Mode 2 screen has a fixed palette of 16 colours that is somehow both bright and washed out, offering very little contrast between its shades. It also - like the ZX Spectru m - has two copies of black, even though - unlike MODE 2 on the SAM - it doesn't split the palette into two sets of 8 colours each, accessed by applying either BRIGHT 0 or BRIGHT 1 to PEN and PAPER slots #0 to #7. On the whole, it really doesn't seem like a particularly useful palette. Three shades of green, three shades of red/orange, two shades of blue, yellow and white/grey, cyan and a purply-pink on their own, and then those two instances of black. Bearing in mind the above is the MSX palette according to Multipaint , and not necessarily perfectly representative of what you'd see on actual hardware. I've certain...