Diary of a Game
Mega lo Mania 2 Part 1
Yes, you're right, it's been done before, this diary of a game thing — back in the heyday of Crash and Zzap!, in fact, with 8-bit games like Andrew Braybrook's Paradroid — but that doesn't stop it being a bloody interesting thing to do...
Interesting if you manage to get a programmer who can string a few words together in a vaguely cohesive way. that is. We've hunted high and low for one and eventually came up with Sensible's Ubik, aka David Korn. More on him in a minute.
First though, the plan. For every month of the next year we're going to report to you on the current state of play with one of next Christmas' big name original products, Sensible Software's Mega lo Mania II. Sometimes there'll be lots to talk about, sometimes perhaps not a great deal, but hopefully through the series we'll be able to give you some idea of a) what it's actually like to be the programmer developing a big game and b) what sort of creative decisions go into the whole thing. Finally, in nine or ten issues time, we'll actually review the game — let's just hope it doesn't turn out to be a bit crap, eh?
Why Mega lo Mania II?
Well, for a start, it's a big, important game — the first Mega lo Mania was a sizeable commercial and (especially, as it turned out) critical hit, and the new game will be one of the big Christmas releases this year from a major software house, though in this case it's hard to actually say who (see True Stories this issue for a full update on the current Mirrorsoft situation).
Secondly, its an original product of fairly broad-based appeal — were not getting into any sort of off-putting specialist territory here, but neither are we settling for a brainless arcade blast. With luck this will be one of the key games of next year, one that'll really have an influence on other games, and one that'll introduce at least one or two new ideas.
Thirdly there's Sensible's way of working, which doesn't plan out too much in advance, but lets the game develop fairly naturally, new ideas coming in all the time. There'll be no rigid sticking to a pre-Set gameplan here, and over the corning months you'll probably see a very different project developing to the early model you see here.
There is a fourthly too. Programmers working on products as involved as this one are understandably reluctant to reveal too much, too early — what if all their good ideas are stolen and put into practice by somebody else first, say? That's the other factor that makes Mega to Mania II such a good choice — everyone's seen the first game and knows the general idea, so Sensible need have no fears about revealing anything more than they're prepared to. On that note, then, let's go straight over to Sensible bossman Jon Hare...
Jon, first off, how long have you known you're going to be doing a Mega lo Mania II?
Jon: It was something we were thinking about while writing the first game, to be honest. Of course, we didn't actually know that we'd be doing one — if the first one had been a complete flop we probably wouldn't — but we and our then publishers Mirrorsoft were confident enough in it working that we had the plans laid out before the first game hit the shelves.
At this stage, how do you think it'll be different to the first game?
Jon: Visually, the big change we're aiming at is to redesign the way the landscapes are, which we need to do because Of the way we're changing the game design. The landscape needs to be much more animated for a start, and we'll be reducing the scale somewhat too, so we can fit bigger sectors in. We have to be careful we don't reduce it too much though, or a lot of the detail will be lost.
Beyond that, the changes we're going to be making are a lot more vague at the moment. In some ways we're going to start recreating the first game, but rewriting and compressing our routines to give more space for all the new stuff we expect to add later on — there'll almost certainly be an option allowing you to link two Amigas, for instance, for a two player game. Some people like to plan everything out before they start on a project, but our way has always been to do-it-as-it-comes-along really.
Who's going to be working on it?
Jon: The programmer's a guy called David Korn — he used to be called Ubik, which was his pen name on the C64, when he did Firebird things like Arcade Classics and Ubik's Music. He also worked on our International 3D Tennis game for Palace. He's been doing a degree in Natural Science or something until just recently, but now he's started working full time for us again — he's an old friend of ours, basically.
In a few month's time a graphic artist will get involved, and we'll get someone in to do the music, but at the moment it's just him. He started work on or around the 27th November, at a guess. Of the three of us who are really the core of Sensible — myself, Chris Yates and Chris Chapman — it'll be Chris Yates who gets most involved with the day-to-day development of the game. He'll operate as project manager if you like — in so much as any of us ever operate as project managers around here...
And what about the Mirrorsoft situation?
Jon: Well, the game's slated for release at the end of the year, so there's plenty of time for pretty much anything to happen. Originally we were to have had a lot of products going through Mirrorsoft this year — not only Mega lo Mania II, but our football game and Cannon Fodder (see True Stories) too — but that's all changed now of course. The games are all back in our possession — as is the first Mega lo Mania incidently, that's no longer a Mirrorsoft game — and they're going to stay that way. Our feeling is that there's plenty of time to explore a few avenues and choose the best deal we can get, basically.
Okay. Let's move over to Dave Korn, then. What are your feelings about the game? What have you done so far?
David: At the moment I'm working on the visual display of the landscapes. It's looking a lot more 3D — like Virus or Zarch — than the first game ever did, with the landscape built up out of lots of little triangles. There's a sort of stipple shading effect on it at the moment too, but there's a lot of discussion at the moment as to how we should change that.
The big difference with the landscape is that far more of it will be completely out of your control — we'll be taking the passage of time more seriously, so mountain ranges will build up or decay, the geological properties of land will change as you play and so on.
How much do you know about the first game?
David: Well, I'm not overly familiar with it — put it like that — but I have had it explained to me and know what all the ideas behind it are. It's a fairly straightforward game really, and of course, its early days with this version yet. We've got no graphic artist yet for instance — Jon currently says it'll be 'Mr X' so I think he's hedging his bets! But less of this — you're going to spoil the whole point of the diary if you get me to answer all these questions now!
Mega lo Mania II — putting it into practice
Meet David Korn — aka Ubik — ex-C64 programmer, ex-International 3D Tennis programmer, ex-student, and currently programmer of Sensible's Mega lo Mania II.
Get used to this face — he's going to be taking us through the development of the new Mega lo Mania every month for, well as long as it takes, basically...
Monday 25 November — Friday 29th November
I arrive at the Sensible Software office around noon on the first day and am soon hard at work — playing Mega lo Mania! After a couple of hours familiarising myself with the game to which I must produce a sequel, I'm bought lunch (and a pint) by the boys here, then it's back to the office to discuss the basic ideas for the new game. And that's it for the first day really — after that it's back home, with strict instructions not to return until Wednesday. It's a hard job, programming games.
I follow instructions on Tuesday, staying in bed until the afternoon and don't go anywhere near work. Sensible appear to be paying me to do absolutely nothing at this point, but in fact there's a reason for it all — we're awaiting the arrival of my development system.
"A-ha! But what's a development system?' I hear you ask. Well, it's like this. Back in the bad old days (1985 or so) programming machine code was a far tougher job than it is now. You'd sit there, with your C64 or Spectrum or whatever, typing instructions into an assembler program for hours, and then tell your machine to run the program to test it out. More often than not it would crash horribly, leaving you no choice but to turn off the computer, losing all the work you'd done since you'd last saved the program — and this was onto tape, remember, so saving wasn't the easy job it is now!
Nowadays. though. it's all much better. You type your program into an IBM PC, and when you want to test it, the code gets squirted through a cable into your Amiga. If the Amiga crashes — or catches fire or anything else it might happen to do — your game is still safe and sound within the PC. So, no PC, no game writing, and I can't do anything much until mine arrives.
So far, so cushy then. Unfortunately Wednesday arrives and with it my clunky Amstrad PC. I'm ready to begin work, but where do I begin? Well, one of the first aspects of any game that gets worked on is the visual display, it's a good place to start because you can see just by watching the screen if your code is working or not.
I'm quite taken with the idea of using a 3D-ish sort of landscape for Mega lo Mania II, a bit like the one in the Zarch/Virus game, mainly because it'll look really nice if we manage to get features like continental drift, mountain ranges growing, islands sinking into the sea and so on into the game. The idea is that this evolution of the landscape will force the player into more empire building and relocating than in the original game. In the earlier levels of the first Mega lo Mania you can win by just settling in a good sector and sending your army around to attack all the other sectors in turn. No longer! In this one there's the danger that your home base is going to sink into the sea, so you'll simply have to move! So, in the end, the first thing I do is sit down and write a routine to draw triangles. Triffic!
It's easy, this game writing lark, I tell you. A little bit of tapping and typing and my program is happily drawing triangles all over the screen. All seems to be going smoothy, so I add a bit of perspective maths, a table representing the height of the ground at each point on my soon-to-be landscape, and a simple routine to join all the points together using triangles. Try a test run and — zap! — I've created a little world, all of my own.
Of course, it's not as large as the real one (only 16x22), and it's a bit ragged at the edges, and there're a few holes where the triangles don't quite join up, but it's mine, I made it myself, and it only took me two days (God took three times as long with his one). I end the week tidying up the program, smoothing out the rough edges and so on. I also take apart the code from the previous game I did for Sensible, International 3D Tennis. There're bound to be a few useful bits'n'pieces in it — interrupt routines, random number generator, keyboard and joystick reading routines. It's all a bit cannibalistic, taking pieces from the dead body of your last game to form the skeleton of your new one, but just think of it as recycling and it all seems okay.
Monday 2nd December — Friday 6 December
There are still a few holes in my world, where the triangles don't join up, and it's getting a little bit embarrassing, so I do what any programmer would do in the circumstances — I write a test routine. It shows three points on the screen joined by lines. I can move all three of them round the screen, and at the touch of a button my triangle routine is called to join them up with a filled triangle. The triangle should exactly cover up the outlines, and as it's a different colour I can see straight away when some pixels are left out. However, this sheds no light on the mystery, so I do the other thing any programmer would do in the circumstances — I forget about it for a while and go onto something else.
Up until now all my triangles have been solid filled blocks of colour. A few simple modifications here and there and the routine can now fill them up with any pattern of my choice. I draw a few patterns in DPaint, save them as files, mix them into my code and hey presto! A lovely speckled patterned landscape!
It looks great until Jon Hare takes a look and tells me he doesn't like it. Peasant! Still, he's the boss, so I get him to draw some patterns he does like for me. He provides me with a set of plain but functional stipple patterns. Using them makes it look much more like a real 3D game, but without nearly so much effort. Because of the simplified nature of the landscape, all the triangles having their corners at regular intervals, and simplified perspective, my program doesn't need to do nearly so much maths as a real 3D game. I christen the technique '3D Fudgey-o-vision'.
Monday 9th December — Friday 13th December
It's time to write a landscape editor. I have in mind a bit of code to display the landscape in wire-frame 3D, allowing you to click on points with the mouse and drag them up and down. In between doing this I also spend some time assigning colours and shades to all the triangles — it's a bit like painting-by-numbers.
A couple of days hard work sees the landscape editor done, and very nice it looks too — all wireframe 3D with red lines. I waste the rest of the day playing with it — pulling mountains out of the ground, lowering islands into the sea, then colouring it in at the touch of a button. It's terrific fun, and slightly reminiscent of Populous. Perhaps when they were first writing it, the guys at Bullfrog found they were having so much fun with their editor they turned it into the whole game!
Thursday and Friday are spent fixing the bugs in the triangle routine by the most horrible method known to mankind — hand simulation. This consists of writing all your variables down on paper, and then going through the program instruction by instruction, doing exactly what the computer would do. It takes hours, but at last I find out why the triangle routine is leaving little holes in the landscape. Having found the bug, it only takes ten minutes to fix and then — perfection! I go home feeling very pleased with myself.
Monday 16th — Friday 20th December
Oh dear. The painting-by-numbers approach to the landscape isn't working as well as I'd like it to. Jon suggests that I should do proper shading to simulate a light sourse (the sun) shining from any direction. This involves doing some proper 3D maths, which is what I'd been trying to avoid all along, but why not? At the end of the first day working on it there's a bug which is causing my light-source routine to go around adding up numbers which are, quite honestly, completely ridiculous. I print out a listing of the routine to read on the way home, and while it's printing, the paper jams and messes up a couple of lines. As soon as I look at the listing on my way home I find the bug — it was exactly where the printer messed up. Maybe I should leave the printer to do the program — it seems to be smarter than me!
I fix the problem, then write a little routine to change the angle of the light source to give the appearance of the sun rising and setting. It works, and the whole thing looks very nice indeed. That's it for now though. I'm going to break for Christmas — see you next month.
Building a world, Mega lo Mania II style
Mega lo Mania II — this is as far as they've got, basically. It's a solid 3D landscape with a blue sea effect that moves diagonally across the screen. Here's how far David Korn got with the game before Christmas — a 3D landscape editor that builds up from this simple grid (1) into a basic landscape, complete with simulated light source and Jon Hare's 'plain but functional stipple patterns' (5). The stages in between are fairly self explanatory, but the code behind it isn't — and that's why we're not going to get into that side of things at all!
See you next month, when David goes through what — if anything! — he managed to get done in the hangover month of January.
You may enjoy these articles...
If you look inside many Amiga games, secret messages have been hidden by the programmers. Richard Aplin was the king of hiding messages in the startup-sequence file, and his Line of Fire and Final Fight startup-sequences have become legendary! The Sensible Software team were also prolific at hiding messages in their games.
A collection of technical interviews with Amiga programmers that worked on commercial software in the glory days of the Amiga (late 1980s to early 1990s!)
The Ultimate Amiga Graphics, Level and Map Ripper!
A random assortment of rants relating to the Amiga!
An explanation of how many famous Amiga games utilised sprites in weird and interesting ways