All entries for Tuesday 21 November 2006
November 21, 2006
Summary: I made this game.
So I teamed up with Sam, who does Computer Science and knows lots about making games. Expecially compared to me – I have made one game of extremely low complexity, and I can’t even get it to play properly from a webpage.
You can find a large number of games made by him on his website, but some may not work without installing VB libraries. The Tank Attack one should work, though, and is impressive.
The theme of the competition was chosen to be “nuclear”. We decided to make a 2D shooter where you control a terrorist trying to blow up a power station with a variety of exciting weaponry. The aim of the game would be to blow up all the cooling tanks, and then get out of there before the whole building exploded. After a certain point, large amounts of police would turn up, and they’d be better armed than regular guards, making your job much more difficult if you spent too long.
We had decided to work in Java because I run Linux and anything else would be difficult for me. Sam has never done any graphical stuff with Java at all, so I started with the programming while he made images. The LotH game, while graphically unimpressive, provided a good starting point, and it didn’t take long to start drawing images to the screen.
The game required that the images be able to rotate, however, which was substantially more work. It took large amounts of experimentation with the rotate() method before I worked out that this is what you want to do:
1) Get the canvas image you’ll be drawing onto
2) Find the position you want to draw the image at.
3) Rotate the whole canvas around that point.
4) Draw image.
5) Rotate canvas back.
After that, things got simpler again. I basically spent all my time coding, and Sam spent all his time doing pixel art and working on level design.
There was a power cut during Saturday evening which sent the entire room into complete darkness except for the light generated by laptop screens. I should really have gone home and gotten a few hours sleep, but instead I slowly built up a headache from laptop screen glare and generally wasn’t able to do anything for an hour (when the power was restored). A couple of hours later, the headache got to the point where I wasn’t capable of doing anything anyway, so I went home and slept for about 6 hours.
Then there was nothing but the last 12 hours of frantic coding. I desperately tried to add all the features necessary to make it vaguely game-like, most of which took longer than they should have. In the last hour, I tried to support multiple levels, but when we got to the 15 minute mark and it was still giving weird errors, Sam suggested I give up and add a start screen and some kind of death code instead. It was a massively ugly hack, but I got it working.
I spent some of today working out why applets don’t like me when I put them on the web, and found a couple of reasons. I resisted the urge to rewrite the code to make it work there, and instead found workarounds so that the code could be the actual 48 hour version.
I have lots of ideas of improvements I can make, so it will be updated. Probably at the expense of the two courseworks I have due in not long from now.
I also made the LotH game work, but it’s very flickery, so I need to make at least a small change to that.
Summary: I made this game.
Please tell me if it doesn’t work.