Skip to content
My First job
A few years after I started work, in the early '80s we still had to book time on and share 6 terminals between about 40 staff. We had monochrome green-screen monitors on the shared terminals. Most of our time was spent at our desk waiting for the print-outs to be delivered. We would scribble notes and corrections on the latest code listing ready to type them in next time we got a 15 minute terminal session. Seems astonishing now. We had just got a (gasp) colour monitor on one system so you could type in red to tell people off! I believe it just had 8 colours available: white, cyan, yellow, magenta, blue, green, red and black - the old standards. Basically each of the 3 colour guns: red, green and blue could be ON or OFF, giving 8 combos. Gary
I met up with a school friend who had been to Cambridge University and was then working for the same company. He was working on a radar display system where they were writing the software and designing the hardware. They had done some experiments to decide how many colours to support on the display. He told me that they did some colour fades on the screen, and once they got to 22 bits of colour, you couldn't distinguish the changes. By that, we're looking at maybe 7 bits of red and green, and 8 of blue. That seems to tally with common thinking that the human eye can distinguish up to 10 million colours. Colour Blind
Now, I have red/green colour-blindness. I have less red receptors so if I see a brown or green I can't easily tell which it is, I can't see the red content so well if there's some green too. I expect my red sensitivity is down by a few bits. makes traffic lights fun at night, when you can't see the position of the lights within the framework. They used to handily write "STOP" across the red light. More recently they made the green colour a lot lighter so it's easy to tell. Since about 1 in 4 males have some form of colour-blindness, it's important not to use confusing colours in graphics. My colour-blindness actually helps when I'm making colour choices because I'm not going to pick a combination that I can't make sense of, and that other people would find confusing.Steve N
I must just tell you the tale of when I was re-soldering my Dragon 32 analogue joystick. It had about 16 wires in it, not the more common 6. All the wires were different colours, and I picked out all the easy ones and happily connected them up. I was left with a little cluster of orange, red, brown and green wires. Being unsure I called over my friend Steve (not Turner) and asked him to confirm my choices before I soldered them up. After that I connected the joystick, but it didn't work properly. I got someone else to check the wiring, and he says: "Idiot, you've soldered the brown wire to the green!" Possible, but I did get Steve to check it. Again: "Idiot, he's colour-blind too, more so than you are!" Turns out Steve sees almost in black and white. Wish he'd have mentioned it earlier!Dragon 32
Back to the plot. In the days of the Dragon 32, we had 4 choices of graphics modes. At that time the colours were hard-coded into the graphics chip, and the colour choices were pretty much that each of the red, green and blue colour guns were either ON or OFF. So in multi-colour mode we could have the two awesome palettes of: red, green, blue and yellow OR magenta, cyan, black and white. The pixels were also wider, so best to pick from the two hi-res modes (320x200 - not so hi-res these days), of black and green OR black and white. I had already bought Donkey Kong for the Dragon 32, and they had kindly implemented both multi-colour mode and hi-res modes on the one tape. That quickly made me aware that multi-colour mode was pretty horrific. For my 3 Spectrum conversions of 3D Space Wars, Seiddab Attack and Lunattack I chose black and white mode. Each pixel had a choice of 2 colours from a palette of 2!Demo Game
I did write a Lunar Lander demo in Dragon BASIC: the language supported software sprites so I let it draw a background of red mountains against a blue sky and you could press the button while it was drawing jaggedy rocks to smooth out a landing area. Then when it finished you tried to land your green and yellow lander. Wonder if that's still sitting on a cassette somewhere?ZX Spectrum
The Spectrum doubled up by allowing bright and normal versions of the 8 colours, except black. "How much more black can it be?" "None, none more black." Additionally each 8x8 pixel block could select background and foreground colours, but both had to be bright or normal. This improves text output no end, but is somewhat limited for games. So now, whilst each pixel is ON or OFF, it could be one of 8 2-bit colours, so we have a choice of 2 colours per character from a palette of 15 Things are looking up.Commodore 64
When I moved to the Commodore 64, I started with a conversion of a bitmapped game, so I kept the C64 in bitmap mode. Like the Spectrum, the screen supported colour attributes for each 8x8 block, but the background colour was fixed across the screen, raster split interrupts notwithstanding. Fortunately we had an all-black background for Lunattack, and the hi-res mode was the same resolution, we used a single foreground colour for all of the screen, except the panel and screen border. The C64 colour choices showed a bit more imagination in their palette of 16. The 3 greys especially, I would use later. Gribbly
As soon as I could I switched to character mode, and multi-colour mode for Gribbly's Day Out. This involved widening the pixels of the graphics and sharing two additional colours from the palette of 16 so that in any one 8x8 square I could choose 4 different colours per fat pixel. You don't really want to be scrolling the colour attribute map so again they were all set the same. The colour attribute map was fixed in location so you couldn't prepare anything in advance, and you would need to alter the colours quickly in such a way that the display raster wouldn't overtake you, or you'd get colours flickering - best avoided for now.Paradroid
By Paradroid I was fed up with the size of multi-coloured pixels, I wanted to get back to 320 x 200 resolution and finer detail. I quickly realised that I still needed to get more colours on the screen and had no choice but to set the colour attribute map according to the graphics and update that as well. My screen rebuild had to set up the screen characters and the attributes, all without being passed by the raster display. The plan for that is to run as close behind the raster as possible. You get a frame and a half to do it that way, and you need a fair chunk of that, which is why, with all the other game mechanisms going on, that we set it to run at 17 frames per second, It was only later when I did the Competition Edition that we realised that there was still spare waiting time that we could remove and get it running at 25 frames per second. I was as surprised as the next person... still am!Atari ST and Commodore Amiga
Skip forward to the Atari ST and everyone's got to use bitmap mode because that's all there is. Now we have a choice of 16 colours per pixel and we can define our own palette with 3 bits of red, green and blue, giving 512 colours. That was not quite as many as the Amiga, which could give you 32 colours per pixel from a palette with 4 bits of red, green and blue, giving 4096 colours. The 5 bit-plane mode for 32-colours didn't get used in the early days because it compromised the CPU and took an extra 25% of time to plot into, time we didn't have. Later the Atari STE caught up some of the way by allowing 4096 colours, but... due to lack of expansion foresight, the bits weren't in the right order so we had to do some bit manipulation before sending the colours to the graphics chip to put the lowest bit at the front.Arcades
Meantime, in the arcades the hardware was still a couple of steps ahead. They had two playfields and sprites, with independent palettes of 16 colours probably from a choice of 4096. Just being able to select different palettes at will gives you the meanies that can flash orange when damaged, white when hit. We didn't tend to see individual sprites fade in or out, so they didn't get semi transparency yet. They did also have X and Y flip bits on the character sets and sprites, which cuts down on the number of graphics frames. Little did we know they were about to implement scaling and rotation.AGA Chipset
Things were just getting interesting with the Amiga A1200 and the AGA chipset. Suddenly we had 256 colours in one playfield, or 2 playfields of 16 colours, all from a palette of 10 million and we can do some really nice stuff. Then the consoles arrived and we all got squashed. PC
Step forward some years and someone had the bright idea of using their PC to display photographs. In that "Wouldn't it be nice if..." moment they realised that 4 bits of red, green or blue won't quite do it. I have seen some photos using the Amiga's hold-and-modify mode and whilst they're OK, it's not quite there. Before you know it, we have 8 bits of red, green and blue, no palette restrictions at all and the CPU can't possibly manage all this on its own. Actually we had a foray into 16-bit colours with 5 red, 5 green and 6 blue, or some such, but already we needed... hardware acceleration!GPUs
Step forward some more years with progression in floating point co-processing and GPUs and the processing power has caught up with the pixels. My 970GTX card has about 1500 cuda cores, which I am given to believe means that it can process 1500 pixels at a time, and you can write Pixel Shaders that run your little programs per pixel to do lighting and other magical transformations. You could also use them to do your graphics in a palette of 256 and let it convert to 24-bit with lighting. They can also do 256 levels of transparency or additive lighting. I've even played a whole scrolling top-down race game coded in a Shader. Who does that?HDTVs and Digital Cameras
Our HD colour TVs and Digital SLRs typically support these same 24-bit colours, which, as we recall from the beginning, is about all we can distinguish with the Human eye, we thought. Nevertheless the mighty electronics companies are now producing HDR Ultra HD TVs which use 30 bit colours. That's possibly because the 10 million colours we can distinguish are not necessarily placed linearly across the 8-bit colour-cube. Too late to just scale 8-bit data non-linearly into 10 with a lookup table in the TV, boys? Darker colours need a bit more definition, whereas the brighter colours just melt into each other. For now, our home computers will settle for 24 bits, and if it does go up; the humble programmer will be none the wiser, nor will the graphics artist. It doesn't strike me as practical to sit down and draw graphics with 10 million colours to choose from for every pixel. We have to render simpler designs with the computer and let it do the lighting. Imagine the same setup with coloured pencils: how big is your pencil case going to be with 10 million pencils in it? How long will it take you to find the one you want/like? The End
This switch from drawing to rendering sounded the death-knell for our beloved retro arcade games. Having chosen to render, and got the power to do so in real time, all of our games began trying to look photo-realistic rather than artistic. Suddenly painters have to become sculptors and programmers have to be mathematicians. That would appear to be why, despite the easier languages available in which to program (thanks Sheldon!), and the better tools for programming and debugging, writing games is slower and harder than ever.
0 nhận xét:
Đăng nhận xét