James Randall Musings on software development, business and technology.
Elite

You can play the latest work in progress of the game online here and the source code is on GitHub.

Elite is absolutely one of my formative experiences - videogame or otherwise. It launched in 1984 on the BBC Micro at a time when most games were either clones of arcade games or following the same basic structure of scores, levels and lives presented using 2D graphics.

Then there was Elite. A fully 3D game set in an open world with no real goal other than the vague aim of improving your combat rating to that of Elite. You could trade, collect bounty on pirates, trade, upgrade your ship and generally explore the 8 galaxies. All this on an 8-bit micro with about 20k left after the video memory. Crazy. Insane. Quite literally game changing.

Elite running on BeebEm

8 year old me played this game obsessively. I was at the perfect age for my imagination to fill in the blanks as I traded and blasted my way across the galaxy. I have no idea how many hours I sunk into this game but it was a lot. An awful low. I ater played it on the PC (Elite Plus - a rather excellent version by Chris Sawyer of Transport and Rollercoaster Tycoon fame) and on the Acorn Archimedes that was in the office of my first professional programming job. ArcElite is often regarded as the definitive version but I confess I have a real soft spot for the BBC Master 128 and PC versions. You can play the original game via emulation online here.

It spawned a bunch of “sort-of” sequels. I say sort-of because the early sequels (the Frontier games) overly focused on realism and Elite: Dangerous is a massively different kettle of fish. There is also the fantastic OOLite - an open source recreation / reimagining of the game that I highly recommend.

The idea of writing some sort of homage to the game has tickled me for a long time but for some reason it always struck me as “too complex and too big”. Which given it fits into an 8-bit micro is, in some ways, kind of absurd. A couple (I think) of years back I came across Mark Moxon’s mind blowingly comprehensive and entertaining breakdown of the original games source code and systems and I was struck by how so much was done with so little. Yes their is quite a bit going on but taken on its own each sub-system of the game is (unsurprisingly, again: 8-bit) simple.

Then late last year I watched this excellent YouTube video on the game and that was the final push I needed. I started off just experimenting to see if I could render the ships and the answer to that was a fairly resounding yes:

Simple ship rendering

From their I started to build out basic systems like movement. I’ve tried, where it doesn’t make for a world of pain, to stick to the way the original game works.

Movement and the sun

And on from there to additional systems leading me to where the homage is today:

Approaching a space station

As I write this the game is still a work in progress but a good number of key systems are up and running:

  • Rendering (pretty much complete)
  • Procedural generation of the galaxies
  • Dashboard
  • Short range system chart
  • Hyperspace
  • Trading
  • System details
  • Player details
  • Jumping / warping (the original game does a “jump” to help you get to planets faster, I’ve replaced it with a warp effect)
  • Docking computer (needs a bit of work when engaged on longer distances)
  • “Retro” style effects like CRT and green screen monitors (I used to play it on a tiny green screen monitor)

I’m literally about to start on combat which is the last major system to implement.

Check back soon for updates.