Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
Want to receive the latest contracting news and advice straight to your inbox? Sign up to the ContractorUK newsletter here. Every sign up will also be entered into a draw to WIN £100 Amazon vouchers!
I'm seriously impressed, Nick. Not just at the discrete maths I know must have been involved in that key-placement algorithm (though Graph Traversal is a tricky subject), but at the fact you actually programmed games for the second-favourite machine of my youth (my absolute favourite being my old Speccy ).
I've still got my old Amiga up in my loft in mint condition, along with a whole load of equally well-preserved "Crash!" magazines for the Speccy.
Back in the Eighties I was doing the Amiga conversion of Night Hunter:
One of the things that had to happen at the start of each level was that those five keys you see at the bottom right had to be distributed in a randomly-chosen subset of possible locations around the level. Of course, you couldn't put a key inside the room it opened, as then you couldn't get to it; and you couldn't have the key for room A in room B and for room B in room A, as then you couldn't get either, and so on. So, when distributing the keys around the level, the code had to check the graph of doors and previously-allocated keys to ensure that didn't happen; and that called for a nice recursive bit of code that could backtrack and try again until all the constraints were satisfied.
Now, the original game was written for the Atari ST, which like the Amiga had a 68000 processor, so you might think I could just use the original code; after all, nothing about that algorithm would change. As it happened, the creator of the original thought he'd been extremely clever and was frightened of giving away his secrets, and had thus refused to provide all of his source code to me (despite Ubisoft's attempts to persuade him). However I did have the bit which did the level initialisation, so I worked out which bit of code I needed to look at, printed it out, and sat down to work through it and make sure I understood it and could do the minor changes to make it work with my data structures.
Reading 68000 assembly language isn't particularly hard, but one problem was that the original creator was French. So all variables and labels were written in French; but more than that, they were in greatly-abbreviated French, and involved bits of French programmer slang. Think in terms of a label like "initialise-key-buffer" being translated into French, with slang words for "key" and "buffer", and then most of the vowels removed, along with other arbitrarily-selected letters: something like "inkbf", but in French.
Then there was the fact that, frankly, the chap's opinion of his own abilities was perhaps a little unjustified, judging by that code. It was spaghetti of a level I'd seldom seen before, and I was experienced at reading 6502 Commodore 64 code written by 15-year-olds. It ran to about twelve printed sides of A4; it recursed in multiple places; but better still, different places recursed back to multiple recursion-entry-points. It would decide something unintelligible was the case, and leap back six pages, where some other condition would be tested, whereupon it might jump forward a page or two, or go back a bit further, and I spent an entire day poring over it and drawing lines backwards and forwards and identifying bits of code that seemed to form some kind of functional unit, but no, this bit up here branches right into the middle of that, and…
And it was half past seven in the evening, and I'd had enough. I threw the printout in the bin, and picked up my notebook, and went to the pub and got a pint of Burton. Then I sat in a quiet corner and set to work. An hour later, halfway through my second pint, I'd got about a dozen pages of notes, and about thirty lines of code written, comprising two functions. I typed it in the next morning, and it worked straight off the bat.
I never again looked at any of the source code for Night Hunter ST in completing Night Hunter Amiga
what I want to know
is why the games were so much better with 128 k to work with, than they are now
(\__/)
(>'.'<)
("")("") Born to Drink. Forced to Work
what I want to know
is why the games were so much better with 128 k to work with, than they are now
I think people worked harder to make the gameplay good because the technology itself was so limited.
Nowadays you can, to a certain degree, get away with fancy graphics, or make a game seem more than it is with loads of levels and big promotional budgets. There's also the fact that the industry is more like Hollywood in scale these days, so there's a tendency to make everything palatable to the mainstream.
I'm seriously impressed, Nick. Not just at the discrete maths I know must have been involved in that key-placement algorithm (though Graph Traversal is a tricky subject), but at the fact you actually programmed games for the second-favourite machine of my youth (my absolute favourite being my old Speccy ).
I've still got my old Amiga up in my loft in mint condition, along with a whole load of equally well-preserved "Crash!" magazines for the Speccy.
The company I worked with did quite a few Speccy conversions, but I'd been a BBC guy. I started at the company doing PC games (think Amstrad PC1512). Then I moved on to the ST, then the Amiga.
when I am working away, i try to solve problems in the pub. on a beermat.
but never writing functions.
ideas yes. actual code - no
that proves the supremacy of two pints of burtons over six pints of fozzies
I'd worked everything out and put my notebook away, but my mind was still buzzing away thinking it through. In the end I pulled the notebook back out and wrote the code because it was the only way to stop myself thinking about it and relax
The company I worked with did quite a few Speccy conversions, but I'd been a BBC guy. I started at the company doing PC games (think Amstrad PC1512). Then I moved on to the ST, then the Amiga.
That was the stuff that got me into programming. I'm sure that the type of computer games that were cutting edge back then would all seem very low tech to kids today, just as looking back at '60s technology seemed forever ago to me at the time, but games like those were exactly what I was trying to make when I was buggering about with Sinclair Basic and machine code on my Speccy. Of course, I never produced anything like the sort of commercial-grade games that were my inspiration, but I learned a lot along the way, and even managed to get one Speccy game working well enough to give it away to other geeks. Fun times.
Right, it's well past this nostagic geek's bedtime. Goodnight one and all.
Comment