Blood Quest - ZX Spectrum - Development Journal - 1 - English

Blood Quest  - ZX Spectrum - Development Journal - 1 (English)

In order to have something to work with, I created a number of tiles some time ago and put together the first screen for different versions, this one was the one I did for the ZX Spectrum, which is the fame version I will be working on first because my first computer was a clone of the ZX Spectrum, the Timex TC 2048.


Today I did some more gfx for the game and started mapping the castle, here it is showing just black and white but when playing the game it will be more like the picture above.

The program I use to create my gfx and levels/map is CharPad Pro, there is also free versions of this great tool. This is geared at the C64 but I use it for several of my versions.

There are plenty of tools available to work specifically with ZX Spectrum gfx, for instance, one I have used in the past is Sevenup by Metalbrain.

At the moment I have defined 52 UDGs and 18 tiles(not counting some that won't be shown as they are only place holders for baddies). If I create 50 rooms of 12x10 tiles it will take 6000 bytes in memory. So this will be my max size for the game map). The map includes not only background, foreground tiles and the objects such as keys and blood bottles but also information regarding baddies(start position and type). For now I have in mind to put in place baddies that move horizontally on platforms and those that fly horizontally or vertically. The baddies won't have a set path they will move in one direction until they come in contact with a foreground.

In order to finish the game, Zezito must collect all the blood bottles and find the exit.

     

Play area and display strategy

The play area is 12 by 10 tiles which translates to 192x160 pixels or 14 by 20 characters. As I want to have at least 5 16x16(pixels) sprites on screen and some extra smaller ones for effects I am thinking of implementing a double buffered display, it won't be by hardware unfortunately as the ZX Spectrum 48k doesn't have that option so I will have to have a screen buffer where I will work on, painting sprites etc. and then once done copy it to the screen. This buffer will be bigger than the play area on screen as I want my sprites to enter the screen from the top and bottom as well as from the sides; the size of the buffer then must be 14x12 tiles = 224x192 pixels = 0x1500 (5376) bytes. 

One benefit of this solution is that instead of working directly with the ZX Spectrum screen layout which is not linear: gfx routines would need to calculate the address of each screen line at a time or use a table with those addresses, on the other hand the buffer data can be linear so instead of calculating the needed screen address or using a table we can just add the width of the buffer in bytes to the address we have in a register pair in order to move to the next screen line.  Once we have drawn our sprites and/or tiles we can copy each buffer line to the correct position on the ZX Spectrum screen. I will be using the Stack to do this as it is the fastest way(this will be explained later on in these series).

 


The screenshot above shows the play area and the back buffer, the play area is the one with the gray background and the buffer includes the play area plus the one tile width border, this extra space will allow me to make the sprites enter the screen in a smooth way(roll in) instead of suddenly showing up on screen. Of course when copying the buffer to the screen I will have to copy just the section that is visible on screen: 0xF00 (3840) bytes not the extra space around. 

The tiles with the 'bicho' text in this map screen mean:

the starting position of  a ground/tile bound baddy;

the starting position of a flying(horizontally) baddy.
 
 
Well this is all for today,  next I will have create some sprites. 

Until next time!

Iapetus


 










 


Comments

Popular posts from this blog

Blood Quest - ZX Spectrum - Development Journal - 2 (English)

Blood Quest - Español

Blood Quest - English