Diary of a Game
Let's Make a Monster Part 4
Mayhem gets a few new moves, Monsterland grows by another level and the Apex Boyz lig out at the Future Entertainment Show. John and Steve Rowlands relive last November in part four of the continuing genesis of the game that's gonna be the game of '93, Mayhem in Monsterland.
The major alteration to the game this month is Mayhem's control method (the user interface), which has been modified to give him a greater range of movements. Although he can already walk run and jump, we felt that such a small repertoire of actions would limit the playability. Ergo the said game would be less playable, ipso facto making it less fun. QED, Vini, Verdi, Vici and, indeed, Curriculum Vitae. (Translations on a postcard please.)
These extra moves will not only make Mayhem more flexible but will also allow us to design extra features for each level. This gives Mayhem a greater interaction with the background graphics (ie. the graphics aren't just aesthetic — they're functional).
Nifty November 1992
Work had to cease on the game this week to make way for (cue fanfare) the Future Entertainment Show. This consisted of walking around the stands for 15 to 20 minutes, then frequenting the bar and dodgems (we even got a free go). We also spent many an hour on the helter skelter which adorned the Ocean stand. Trunk-booming shout outs to: Andy 'Shoe' Roberts, Andy 'Live Long and Prosper' Smith, Rob 'Not Until Christmas Eve' Ellis, François 'Mario Cart King' Mortl, Andrew 'Quincey' Davis, Vicky 'VPL' Robinson, Dave 'I Was Not Drunk' Clark, Jonathan 'DJ' Smyth (that's enough self-indulgence — Ed) and anybody else we bumped into.
JOHN: Before I get carried away and start incorporating new moves for Mayhem, I'm going to tweak the ones he can do already. For those of you who have played Creatures, you may have noticed that if Clyde jumps at the top of the screen he bounces back down again. (If you didn't notice you know now.) The problem with this is that it's often difficult to jump over gaps because you rebound off the top of the screen before you've jumped far enough, whereas with enough height you would normally be able to make it (assuming your game skills are good enough, that is).
In Creatures 2 Clyde could jump off the top of the screen (and into the top border) so this problem didn't occur. Now I've modified the jump routine again so that when Mayhem reaches the top of the screen he stays airborne (legs akimbo) for the duration of the jump. Now he can traverse large gaps as if there were no overhead obstacles.
While I'm adjusting the jump routine I've decided to put in a little de-bounce routine that forces the player to push up every time he wants to jump. In other words, you can't hold the joystick in the up position and jump repeatedly. While I'm on a roll, I also further modified the jump routine to check how long the joystick is pushed up — the longer you push up the higher he jumps.
Look, these modifications might seem trivial to you but they radically enhance the gameplay. Do you think I'd go to all this trouble just for the fun of it?
STEVE: The level I've called Pipeland is coming along rather well. Just to give you some idea of how I go about designing a level here are the basic design stages:
First I need some sort of theme for the level, which can be something as simple as a tree or a platform. Once I've worked out this first element, then the multi-colours I've chosen for that will remain the same for everything else in that level. (Hang on a minute, what's all this multi-colours nonsense? — Ed).
Oh, right. Let me fill you in. Each character (eight-pixel by eight-pixel block) can be made one of three colours (four if you include the background colour, but I won't here 'cos it just confuses matters). Two of these colours are multi-colours — which I choose when I start to design a level and have to remain the same throughout — while the other is the character colour, which can only be changed to one of the first eight colours of the C64's palette. Although this is rather limiting at first, if you persevere you can get some rather scrummy results (well we think Retrograde, Creatures and Creatures 2 look pretty darned good).
So, for example, Pipeland has dark grey and pink multi-colours with a cyan background. For the pipes the characters use (ranging from left to right) the following colours: dark grey, purple, pink, yellow, pink, purple, dark grey and black (take a look at fig 1), the character colours in this case being purple, yellow and black.
In the background of all this are some newly-designed mountains which have three layers. In order to get three different colours for these mountains I mixed green and cyan to get the colour for the closest ones, solid green for the inbetweeny bits and green and pink (which makes a sort of pale beige) for the ones furthest away.
JOHN: I'm still trying to enhance Mayhem's movement. Instead of him simply slowing to a halt after he's been charging around the landscape, he now skids leaving a trail of smoke behind him. Obviously the faster he's running, the longer the skid. I was testing this routine up and down the slopes and I reckon it looks pretty cool when you get a trail of smoke going over them.
The end of this week was spent creating a small collection of star routines. This started with star printing make them appear on the screen (which does help matters a lot), but then I added some rotation code to make them spin. The idea is that they'll spin at different speeds, remaining at the fastest speed for the shortest amount of time, and the slowest (which'll actually be not spinning at all — you can't get much slower than that) for the most time. This is because the points you'll gain for collecting a star will depend on the speed at which it's spinning. The faster it spins the more points you'll get.
STEVE: The first part of this week involved the stars John's been talking about. I designed the first frame using characters (2x2 square) but for the rotation animations I moved to sprites because to design a 16x16 pixel block of dots in characters is just too much hassle (you have to work on it a quarter at a time). Also, sprites can be animated more easily, which is handy as this star will have a nice smiley face rotating through 20 frames.
Now it's back to making Monsterland — I've got a new level in mind. I started with the idea of creating a platform with a chequered diamond pattern on it. This level began with the multi-colours set to brown and pink with a cyan background. The pattern uses yellow and brown diamonds with pink to anti-alias (shade) the edges (so that they don't look so sharp) with black across the bottom so that I can get the dark colours I need.
The next stage is to design a load of graphics on paper that could be used, and would be suited to the platforms I've just designed. I've come up with some weird-looking plants and platforms and have already put a few bits on to the 64, some of which look just like giant cherries on small stalks — well, I did say they were weird! This level has been given a working title of Cherryland (and why not?).
JOHN: All this week was spent finishing the star routines. First I did the collision between Mayhem and on-screen stars, then I eventually got the stars to rub off (when Mayhem collects them they vanish). This took a couple of days as not only did I have to rub the stars off the visible screen, but the hidden screen (used by the scroller) as well. Once I had these routines working I had to rub the stars off the map. If I hadn't, you could repeatedly return to the same point and pick up the same star ad infinitum.
As I can now physically pick a star up I thought I might as well increase the player's star count (that appears in the status area) and add the points to the score. As I've already mentioned the stars have different score values. There are five different rotation speeds, with the least number of points awarded for the slowest speed. At the moment the scores you get are 0, 5, 10, 20 and 50.
Finally this week I put in the code that will let us modify the colour splits that change the 64's character multi-colours. These splits are spread over the screen and basically give Steve more colours for his graphics (see box). The code I've just added lets me change the colours that are displayed on the screen as Mayhem runs through Monsterland. This will enable us to, for example, have dark gloomy colours for caves and, as Mayhem moves out of them, brighter colours for daylight. Obviously, any such changes will be done invisibly as having half the on-screen colours changing in front of your eyes isn't the most professional way of doing things (check out Golden Axe for example).
STEVE: Now I have a few levels started I can work on any one I want whenever I like. This makes designing a lot more enjoyable because if something on one level becomes about as interesting as being stuck in a lift with Ken Barlow I can load up another level and start something new. Using this philosophy I have now left Cherryland and I'm back to playing about with Pipeland.
While playtesting the game I came up with the idea of letting Mayhem jump up through platforms and landing on them when he falls back down. Also, to make him even more flexible, John could modify Mayhem's control system so that at the tug of the joystick you could drop through these platforms, improving the playability even more.
This type of platform would be included in each level along with the standard platforms that you can't go through. (I love coming up with ideas that give John more work to do!)
You may recall Steve talking about using the same character multi-colours over the entire screen. This doesn't have to be the case, however. Every game we've written has incorporated what we call 'Colour Splits'. This entails making use of something known as an IRQ raster interrupt to change the on-screen multi-colours.
Because the screen is made up of hundreds of horizontal lines (which the raster scans from top to bottom 50 times a second), splits can therefore only be horizontal. If you set up a series of the splits down the screen, you'll see the several different bands across it (see below). However, what we can't split is each character's colour. To illustrate this, look again at the pictures below and you'll notice (hopefully) that the yellow, purple and black remain the same down the screen.
If you have any idea what should go in this box, please let me know! :)