Mega lo Mania 2 Part 2
The idea behind this series is simple. We're going to show you exactly what goes into the development of a major new game from the programmer's point of view — from initial game design through the entire programming process right up to playtesting and its eventual release. Hopefully it'll give you quite an insight into the whole games-creation process, and perhaps even explain the problems that make some games come out as they do.
We had the idea, then — our next job was simply finding a suitable game to write about. Eventually we settled on Mega lo Mania II for a number of reasons. For a start, it's an original project which is being developed with the Amiga specifically in mind — it's not simply a coin-op conversion (which would give us precious little to write about), nor is it a game that's been developed for the PC and then cut down for the Amiga. The fact that it's a sequel helps too — the developers are unlikely to be worried about the series revealing too much about their new baby, seeing as everyone knows roughly what it'll be about already — as, indeed, does its not-yet-picked-up-by-any-software-house-status (we can't be accused of favouritism, you see). Finally, of course, there's the fact that Sensible are a jolly bunch of chaps and were keen to get involved. But enough of this. Heeeeeere's David...
Welcome to Part Two of our ongoing Diary of a Game feature. Every month we're going to report on the continuing development of Sensible Software's big Christmas 1992 release, Mega lo Mania II, as told to us by the programmer himself, David 'Ubik' Korn...
Mega lo Mania II — What happened in January
David 'Ubik' Korn, programmer of Mega lo Mania II, gulps down two pints of orange juice, snaffles half a packet of Resolve and — Christmas hangover more or less under control — settles down to tell us how he started the year with Mega lo Mania II...
Monday 6 January — Friday 10 January
Welcome to another month's adventures in the wacky world of games programming. I spent the early part of this week recovering from my rather groovy Christmas holidays — did anyone else go to the New Year's rave at the Chalk Farm Roadhouse? — but the hangover had cleared up nicely by mid-week and it was back to work.
My first task of the new year is to modify the code for the game's 3D graphics so that it can display a zoomed out view. In principle it's fairly simple — enlarge the terrain map from 16x22 to 32x44 and half the size of the triangles. In practice it takes a few days, as I have to go through all my code finding the parts that relate to the size and scale of the map and making them work for both views. An important programming hint here: always use variables to store important details like map size so that if you change your mind later, you only need to change the value stored in the variable, not the whole thing.
Monday 13 January — Friday 17 January
Quite a quiet week, this. To begin with, I spend a while adapting the editor to the new zoom in/out display, rewriting a few chunks of it to do things more simply, efficiently or just properly. At the moment, in zoom out mode, it keeps a table of all the triangles which is 64K long; this is a luxury I won't be able to allow myself in the finished version, but it makes the editor a lot simpler to write. I also write some code to add a new mode to the editor that allows you to choose the various fill colours (land, sea, mountains, snow) and paint them onto the landscape.
So far, so useful. Friday, however, is spent with the AMIGA POWER team, taking those silly photographs you see scattered around these pages. The closest I get to working is pretending to program while posing for the pictures! Hey ho.
Monday 20 January — Friday 24 January
Although this game is going to be Mega lo Mania II, and as such should bear more than just a passing resemblance to the original, at the same time it must have enough of a new emphasis and sufficient new ideas to justify its existence. In short, it must be the same as the original, only different.
To this end I've been spending a lot of time thinking about the original, and trying to work out exactly what I should add, remove or change. The new appearance for the landscape is a start, but at the moment it's only cosmetic. As mentioned last month, I want the landscape to be more interactive than it was in the original and a much more important part of the game, with continents drifting, mountains growing and so on. Another thing which I didn't like very much about the original was the way all the different sectors under your control were essentially independent of each other. For example, if you designed a weapon in one sector, all your other sectors still have to invent it independently — you can't move a weapon around between them, and similarly, elements that you mine in one sector can't be moved to others either.
I can't quite see the point of this myself, and am determined to change it. Indeed, I've pretty much decided that I want Mega lo Mania II to be much more a game of empire building than the first one was. I've been thinking about the way civilisations develop, and it seems to me that transport and communications play a vital role in linking small settlements into larger and more vital societies.
I'm playing around with ways to do this in my mind, then one night I wake up in the early hours with a stroke of inspiration — roads! Building these between your towers would let you transport armies, blueprints, elements and so on from sector to sector with ease. Instantly you've got a much more dynamic game.
Just think: areas which are rich in elements can specialise in mining, others in producing items in factories. Sectors around the edge of the empire would have a concentration of armies to defend your borders (since a road network makes travel easier for invading armies as well) — society becomes much more organised and efficient. At early tech levels, transport will take simpler forms — walking on foot at the lowest tech level, progressing through horse and cart, canals, roads and railways as you move through the game. The possibilities are endless. Satisfied with this development I scribble a few quick notes and sink back to sleep.
Monday 27 January — Friday 31 January
This week I've been working on the actual game itself! As we've decided to keep a menu system similar to that of the original Mega lo Mania, that seems like a good place to start. First I'll need a routine to clear areas of the screen (tap, tap tap...) and another to plot icons (tap, tap, tap... they're very quick to write, thanks to the magic of the blitter). Next, a few simple routines to manage menus, redrawing them when they change, taking action when you click on one of the icons. I can transfer the menus from the original Mega lo Mania code (thanks CJ) and use DPaint to convert the original icon graphics to my new palate. All this will change as I go along, but it's easier to take something that already exists and gradually mould it into the shape of the new game as work progresses than start from scratch to no purpose. I don't fancy typing loads of data for hundreds of icons into the code, so I spend the last few days of the week writing an icon grabber.
"A what?", you ask. Well, an icon grabber is not a dangerous beast that preys on harmless little icons, oh no, but a neat utility program. When I run it I can enter the name of a DPaint file, which it loads and displays on the screen. It then lets me outline around the icons one after the other with the mouse, and, when I've finished it, arranges all the graphics, along with data about the sizes and position of the icons, into a convenient format for the game code, before sending it up to the PC on my development system.
Programming a game is a lot easier if you have a few utilities to hand — though, that said, it's easy to spend too much time refining your utilities and making them nice to use and not enough actually working. Tune in next month to see if I can tear myself away..!
Next month: more of the same, including lots of interesting stuff about menus (or so he promises us). Bet you can hardly wait, eh?
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