Presentation on theme: "Elite – GDC 2011 GDC 2011 POSTMORTEMS David Braben."— Presentation transcript:
Elite – GDC 2011 GDC 2011 POSTMORTEMS David Braben
So who Am I? – David Braben I’m an ‘old timer’I’m an ‘old timer’ –Writing games commercially for 29 years, starting with “Elite”, written with Ian Bell in the early 1980s. I’m Chairman of Frontier DevelopmentsI’m Chairman of Frontier Developments –We are 210 people, based in Cambridge, UK –Supporting a wide range of platforms and genres –Mature in-house tool chain
Elite – GDC 2011 Winding back time… 1. (1982) 8 bit: Apple ® II, Pet, BBC Micro, Spectrum, NES, C64, etc 2. (1988) 16 bit: Atari ® ST, Amiga, Megadrive, SNES, PC 3. (1994) 32 bit: PlayStation ®, Saturn ™, N64, PC 4. (2000) PlayStation ® 2, Xbox ®, Gamecube ™, PSP ™, PC 5. (2006) Xbox ® 360, PlayStation ® 3, PC *Floating point performance up by ~20,000,000 times **Moore’s ‘Law’ in games sector ~doubling faster than every year ***kflop per kbyte increased >1200 times since 1982 Perhaps the only field in which such a rapid rate of change has been sustained for so long – only other software fields come close
Elite – GDC 2011 1980 - Acorn Acorn made simple machines (eg Acorn Atom)Acorn made simple machines (eg Acorn Atom) –Easy to program, & (relatively) cheap -£120 for a kit –Everything needed for programming included Successor ‘BBC Micro’ endorsed by the BBCSuccessor ‘BBC Micro’ endorsed by the BBC –Created a generation of programmers –Encouraged easy experimentation in BASIC: 10 PRINT “ Hello ” 20 GOTO 10 Programming was ‘cool’Programming was ‘cool’ –Mainstream press concentrated on the money to be made –Magazines even had type-in listings!
Elite – GDC 2011 Coin-Drop Games were all about the ‘Coin Drop’Games were all about the ‘Coin Drop’ –‘Arcade’ meant just that – most games were in arcades Space Invader, Defender, Galaxian, Pac Man, Missile Command Space Invader, Defender, Galaxian, Pac Man, Missile Command Gameplay fell into a rigid structure:Gameplay fell into a rigid structure: –Play time was typically no more than 10 minutes –Three lives, with an extra one at 10,000 score –Steep difficulty curve After a few minutes it became very hard to continue After a few minutes it became very hard to continue Games on home machines copied them shamelessly!Games on home machines copied them shamelessly! –Despite the lack of the coin-drop requirement
Elite – GDC 2011 Motivation By 1982 games were ‘stuck in a rut’By 1982 games were ‘stuck in a rut’ –Seems remarkable given how young the industry was! –Ian and I wanted to make a game that broke out of this ‘rut’ –We wanted to write a game for ourselves, not an imagined ‘arcade’ player I had an over-clocked and highly modified Acorn AtomI had an over-clocked and highly modified Acorn Atom –And already had 3D space ships flying around on it –But no BBC Micro (I couldn’t afford one) We had an unshakable belief that:We had an unshakable belief that: –22k was a lot of memory –A silver bullet can be found for just about any problem if you look hard enough So we set about writing a game…So we set about writing a game…
Elite – GDC 2011 The Genesis of “Elite” Spaceships flying around and shooting felt dullSpaceships flying around and shooting felt dull –Wanted a reason to really care about it –Wanted it to feel more like going on an adventure ScoreScore –This was one of our pet hates –We wanted to be able to spend ‘score’ on upgrades, not just get extra lives at 10,000 –Margaret Thatcher was in power, and money seemed to be the obvious choice! –Trading was added, as a way of justifying going on a journey –Piracy, bounty, profit, rags-to-riches flowed naturally from that
Elite – GDC 2011 “The Elite” The RatingThe Rating –We wanted to reward and track progression –The player needed to feel special, part of a secret organisation –Becoming one of “The Elite” felt like a great goal Short filenames and no spaces killed the “The”Short filenames and no spaces killed the “The” –So we referred to it as “Elite” and it stuck –And so “Elite” was born We were very very luckyWe were very very lucky –We were at the right place, right time with the right game
Elite – GDC 2011 The World Wanted to cram in as much as we could…Wanted to cram in as much as we could… –BBC Micro had 32K of RAM including screen, ~22K left for the game –Wanted a huge world to explore, but memory was a BIG problem –Wouldn’t it be great if we could store an entire galaxy in six bytes! Silver bullet #1: Fibonacci number sequencesSilver bullet #1: Fibonacci number sequences –12 34 46 80 126 206 332 538 870 1408 2278 3686 5964 9650 –Positions, names, governments, economies came for ‘free’ –This ‘trickery’ gave us galaxies to explore and made Elite feel huge –Beauty parade: threw away 100s of galaxies!
Elite – GDC 2011 Maths Running on a 2Mhz 6502 BBC Micro (fast for the time)Running on a 2Mhz 6502 BBC Micro (fast for the time) –No multiply or divide (have to implement ‘long’ division and multiplication) –A single 8 bit ‘accumulator’ and two 8 bit index registers –Tasks like matrix multiplication were very slow indeed –C64 was worse - a 1Mhz 6510 (half the speed of the BBC) but with more RAM Needed some innovative tricksNeeded some innovative tricks –Logarithms gave a 10x speed boost on multiply and divide with two 256 byte tables –Matrix operations using addition only for fixed known rotation rates –‘Lazy evaluation’
Elite – GDC 2011 Space Ships Needed as high a frame rate as possibleNeeded as high a frame rate as possible –Problem was to get recognisable shapes needed 20+ lines –BUT complex shapes look a mess without hidden line removal –AND couldn’t afford the time to rotate and project all the vertices –Fast hidden line removal solved both these Limited shapes to convex hullsLimited shapes to convex hulls –With convex hulls lines are never partially occluded Using symmetry gave further efficienciesUsing symmetry gave further efficiencies –Sharing matrix partial products gave a further 40% speed increase
Elite – GDC 2011 Rendering Lines had to be drawn then undrawnLines had to be drawn then undrawn –Clearing the screen was way too slow –Could not ‘double buffer’ the screen for obvious memory reasons –Lines drawn by inverting the pixels so same routines used for both Special screen mode to improve performanceSpecial screen mode to improve performance –Reduced horizontal resolution to 256 pixels –Sped up calculation by ~20% Algorithm used depends on angle and lengthAlgorithm used depends on angle and length
Elite – GDC 2011 Text All text tokenised (letter pairs for planet names)All text tokenised (letter pairs for planet names) LAVE REIDQUAT ZAONCE LAVE REIDQUAT ZAONCE –Then compressed using a recursive tokenising system Descriptive paragraphs added for humour:Descriptive paragraphs added for humour: (Only when docked as this overlay sat in the same memory space as the renderer)
Elite – GDC 2011 Paranoia We had a running playable game in autumn 1983We had a running playable game in autumn 1983 –I went to a talk by Acorn in which a 3D demo was shown –It was spooling from a disc drive, but calculated offline –It was a rotating house, at a lower frame rate than what we already had running We became paranoidWe became paranoid –We thought if anyone saw it they would realise real time 3D graphics were possible –We were terrified we’d get ripped off
Elite – GDC 2011 Publishing So we took our precious creation to find a publisherSo we took our precious creation to find a publisher –It was already close to being finished and fully playable Oh dear…Oh dear… –We were told ‘we had a great tech demo’ but no good as a game –Needed three lives and a play time of 10 minutes –And the user would not save their position on their own cassette But then we found AcornsoftBut then we found Acornsoft –They were techies like us and adored it –We split an advance of £2,000 and I bought a BBC Micro! –We also retained the film rights (!) and rights to other platforms
Elite – GDC 2011 Every Publisher’s Nightmare And then, two weeks before it was to go to duplication…And then, two weeks before it was to go to duplication… …we changed it completely! We were mad! …we changed it completely! We were mad! The game had been finished and tested for a monthThe game had been finished and tested for a month (Acornsoft rightly believed a September release was better than a summer one) I was tinkering with a new radar systemI was tinkering with a new radar system –I didn’t like the dual radar system that was then in-game –I wanted something better for a sequel I discussed it with Ian, then with AcornI discussed it with Ian, then with Acorn –We then spent all night grabbing new screenshots for the manual!
Elite – GDC 2011 Release Box design error by a couple of mmBox design error by a couple of mm –Game cassette (or disc), quick reference chart, poster, manual, story, key strip – didn’t fold as tightly as expected –It overflowed! Hired Thorpe Park for press launchHired Thorpe Park for press launch –Amazing event; another world ITN newsITN news –Embarrasingly gawky teenagers pretending to be ‘cool’! Auction for other versionsAuction for other versions –Commodore 64, Spectrum, Amstrad, Apple ][ etc
Elite – GDC 2011 Afterwards Elite went on to sell a million copiesElite went on to sell a million copies –And pirated a lot more! –Converted on to 17 platforms Ian and I went our separate waysIan and I went our separate ways –I went on to write the sequels and found Frontier
Elite – GDC 2011 Thank you for Listening Questions & Answers Answers