This article is more than 1 year old
In the '80s, spaceflight sim Elite was nothing short of magic. The annotated source code shows how it was done
Load new commander (Y/N)?
Just a fortnight under 40 years ago, the BBC Micro was released. Although it was never primarily a games machine – it was too expensive, for a start – nonetheless one of its defining programs was a video game: Elite.
Its source was released a few years ago, but your correspondent just discovered a lavishly described and documented online edition if you want to see exactly how it was done. The annotations were written by Mark Moxon, a web dev and journalist who among many other things was once editor of Acorn User magazine.
Elite was famous for several things, including its very considerable difficulty and amazing – for 1984 – wireframe 3D graphics with hidden-line removal. This was displayed on a screen which combined high-resolution and multi-colour graphics in a way the BBC's hardware couldn't natively do: the game changed screen modes from Mode 4 (medium-resolution monochrome) to Mode 5 (low-resolution four-colour) two-thirds of the way though generating each screen. At 50Hz, on a 2MHz 6502.
Some of the remarkable features were not so obvious, though. For instance, the game contained eight galaxies with 256 planets. A database of 2,048 star systems would have filled the computer's tiny 22kB of memory. (22kB? Yes: modes 4 and 5 both take up 10kB of the Beeb's standard puny 32kB of RAM.) This would have been far more obvious with the programmers' original 248, or 281,474,976,710,656, planets.
- Sir Clive Sinclair inspired me and 'whole load of others' at Arm, says CEO Simon Segars
- Chiptune to brighten your afternoon: Winning 8-bit throwback music revealed
- Elite name on Brit scene sponsors retro video games preservation project at the Centre for Computing History
- Rebel Galaxy Outlaw: Well, lookie here! For once a space game that doesn't promise the universe
- UK's National Museum of Computing asks tunesmiths to recreate bleeps, bloops, and parps of retro game music
The answer was that the game generated the list of galaxies and planets on the fly, using a modified Fibonacci sequence, allowing for more places to explore than would fit into the program. A similar method was used to generate the 4,000 unique locations in Mike Singleton's Lords of Midnight, released the same year.
The difference being that unlike Singleton's ZX Spectrum game, you can read about what Elite did on the Elite Wiki and then study the source code to see how developers Ian Bell and David Braben achieved it.
Moxon's site, which has been updated throughout 2021 and 2020, covers the original cassette and floppy-disc versions, as well as those for the Electron, BBC Master, 6502 Second Processor, unreleased versions and even the third-party enhancement Elite-A. ®