Diary of a Game
Let's Make a Monster Part 6
And lo, on the sixth month did the Rowlands create monsters — loads of 'em, 15 to a screen, in fact. John and Steve, the Apex Boyz, describe how they populated Monsterland, the setting for their forthcoming blockbuster.
The story so far
John and Steve Rowlands, the team that brought you Creatures 1 and 2, are in middle of writing their new game, Mayhem in Monsterland. Three levels are in the design stages — Pipeland, Cherryland and Spottyland — and the movement and collision detection routines are almost hunky dory. And just so you know, John does all the routines and stuff, while Steve handles the arty and musical side of things. Both of them like Ice T.
You can't have a platform game without some baddies to bump off. Well. Okay, you could, but it'd be about as dull as a very dull thing making a guest appearance on Eldorado. You need some nasties to nobble to add a bit of challenge. So, the time has come to put the monsters into Monsterland.
The first thing to decide is what the maximum number of on-screen monsters at any one time will be. The C64 only allows for up to eight sprites on one horizontal line, and Mayhem takes up three. That leaves us with five sprites per horizontal line for the enemies. We also need to consider how much processing time and memory each monster will take up — the more monsters we put in, the more time and memory they'll use. Taking all this into account, we reckon 15 on-screen monsters would be sufficient (sounds like more than enough to me! — Clur), the same as in Creatures 1 and 2.
We also have to decide how many different types of monsters to have. In our previous games we've included different casts of baddies for each level, which helped create an other-worldly atmosphere. With Mayhem, however, we want you to feel that you're in different parts of the same world, so we've decided to create one cast of monsters for the entire game. But there will be different sets of monsters for the Sad and Happy versions of each level. Yep. It does mean more work for us, but it also means a better game for you!
Jolly January 1993
JOHN: I spent a day or two tweaking Mayhem's control system (again) correcting a few bugs I've noticed recently. One of them exists in Creatures 1 and 2, and enables you to jump fractionally into a platform. I reckon that I've finished streamlining my code now and I can't really improve Mayhem's movement and animation routines much more. (Having said that, I'll probably find a huge bug in a couple of weeks.)
The rest of the week was spent adding some sound effects to the game (SFX as we technotypes call them) such as skidding and charge-activation. They've improved the in-game atmosphere considerably, so while I'm incorporating sound into the game I might as well chuck in some in-game music. This is another element that has to change from Sad to Happy. You can't have a jolly little tune playing in the background of a level that is supposed to be dark and scary.
STEVE: Last month I mentioned that I'd started a new level called Spottyland and said that a colour split could be inserted across the middle to add more colours. After seeing it in action I didn't reckon it looked too hot. I've decided to leave the idea alone, and continue with the happy trees and vegetation for the rest of the level.
Although it's coming along nicely, I'd like to add some really happy stuff (like loads of smiley faces) just to get the message across that you've done a really good job to convert the level. The problem now is to incorporate big grinning heads into the rest of the level without them looking out of place. In 'Sad' mode the faces won't smile, but snarl. (We've got some piccies of Clur if you want them for reference — Ed.)
JOHN: This is it! I've finally started coding the 'monster' routines, with the first few days spent creating the split routines to give me 15 monster sprites. I thought that as well as splitting sprites, I might as well split a sprite multicolour. This gives an even greater amount of on-screen colours, which is fast approaching the maximum of 16 (there's a full explanation of colour splits in CF29 — Dave).
So, with 15 monster sprites dotted about the screen, the next stage is to get them to scroll with the background. The monster scroll routine not only has to cope with eight different speeds, but has to be bi-directional too (meaning they will have to move left or right as Mayhem moves). This was one of those routines that I thought would take about an hour, but eventually took over a day!
The only problem is that some of the monsters at the bottom of the screen occasionally jerk while they scroll. This bug has jumped straight to the top of my 'must fix at a later stage' list, which loosely translates as the 'I'm too lazy to fix it now' list.
STEVE: After a quite easy and, dare I say it, brilliant (there I said it!) conversion of the happy trees from paper to pixels, along came the task of designing the surrounding scenery. I had a very rough version of what to do left over from last month; the first thing to do was redesign the two layers of mountains and merge them with the characters around the tree tops. The foreground mountains are pink, while the background peaks use our method of colour mixing (see our Def Guide To Graphics In issue 28) to make a sort of hazy shade of pinky light blue.
While I was sketching ideas for the Spotty level, I came up with some rather funky plants, which unfortunately couldn't be included in Spottyland owing to ever-decreasing graphic memory. Instead, I'm using this plant as a basis for the whole new level.
JOHN: Now I've got my monsters on-screen, the animation and movement routines have to be added next. I'm using the ones from Creatures, modifying them to suit Mayhem. So as I burned the midnight oil, I transferred the routines across, changing a MASSIVE amount of variables as I went. The only problem is that the routines take up oodles of processing time as they perform loads of functions. Mayhem won't need most of them, so I'll have to rip them out at a later date. Ho hum.
Going back to my in-game music code, I had to modify it slightly to make it situation-sensitive. This will enable the in-game music to change subtly depending on Mayhem's position in each land. For example, if Mayhem's in a gloomy cave the music should be scary and echoey. As soon as Mayhem leaves the caves and enters a daylight area with happy trees, the music will change to a jolly little ditty — suitable for a cute baby dinosaur collecting magic stars. To keep the presentation slick, any interactive music changes will avoid any obvious changes in tempo.
STEVE: Most of the levels I've designed have had two main sections (and I don't mean the happy/sad bits). For example. In Pipeland the majority of the level has a cyan sky and colourful pipes, but some of the level is set in a 'brick castle' section. For the Spotty level I'm thinking of adding a 'big bush' area that gets darker as you venture deeper into the forest. (As for Cherryland, I have lots of new ideas to include, so this level may not have a dark section).
I reckon these areas in the middle of each level will add variety and not just in terms of the way they look. They'll require less 'charging up slopes' and more joystick dexterity as you have to leap around platforms — maybe a type of Skyland with lots of clouds to jump through...? Hmm, now that's a thought!
JOHN: I took a break from the game for a couple of days this week to write a few utilities for Steve. These include character checkers and character/block checkers. A character checker lets Steve load in a near-finished character set, then checks for any character that has the same definition as another (repeats basically). If any are found, Steve can take out the duplicates and put in some new graphics. The character/block checker checks through all the blocks Steve has designed. With about 150 blocks, each containing 16 characters, he could accidentally miss some characters out. Using the checker he can make sure that he's used every character. Both utilities are aimed at saving memory.
I've decided that the interactive music will only appear in the Happy version of each level, as we'll be running short on memory very soon. The Sad version only needs to be sad anyway, so I've adjusted my code to take this into account. The stars will only appear it you're in Happy mode as well. This means that my monster routines have been put on the back burner for a while...
STEVE: While creating the Spotty level's trees, using the priority function (which makes Mayhem go behind certain colours), I stumbled across a weird-looking effect that I reckon I could use on some other levels. When I made Mayhem walk behind a particular chequered green and cyan character — cyan being the background colour and green being the character colour — it looked like he was wading about in some sludgy water.
If we put this effect in the game, we could slow down the player movement to give the effect of resistance. I might even design a whole new level around this neat little effect, although there may be a problem with playability; if you spend most of the level running around in this goo, it may seem a bit frustrating compared to the speed you charge around at on other levels. We really need to experiment with the level design to get the balance right.
More Mayhem next month...
New Boyz on the Block
You might have noticed that we keep referring to the fact that we use 'blocks' to create each level (and if you didn't, then take it from us, we do). These comprise 16 characters arranged in a 4x4 grid. This system lets us build our maps from block numbers instead of character numbers. With each screen of 40x24 characters, a standard map would take up about a 1,000 bytes of memory (almost 1K). However, using blocks we can store a screen in roughly 60 bytes. With the average level being about 25 screens long, it's obvious that the use of blocks can save a considerable amount of memory.
If you have any idea what should go in this box, please let me know! :)