March 13, 2021
(above image from Alien – 1979)
According to the elders of the internet, there was a period of time when games mostly consisted of vector lines drawn by electron beams to cathode ray tubes (in something called XY mode, instead of scan-lines).
This was a completely normal thing until the early 80s, when advances in graphics replaced XY plotted beam vectors. So when was this “golden age” of flickering lines and was it any good? (and more importantly, can we recreate it?!)
Golden Age of Flickering Lines (Vector graphics): late 60’s ~ 1985
So, quite a while ago eh? Were they any good?
Vector Graphics are resolution independent, they are drawn with set of co-ordinates, instead of pixel data. This means the games that used them inhibit some kind of “retro future”, especially the ones that used 3D maths to make the XY plotting more interesting. As seen in classic movies like 2001 Space Odyssey, Tron, Alien and other movies released around the late 70s, early 80s.
Some notable 8-bit 3D games using Vector Graphics are Star Wars Arcade, Starglider, Elite, Tempest, X, Red Barron & Battle Zone. Not many!
As cool as the 8-bit 3D look was, the vast majority of Vector Graphics games were 2D. They could be found in arcades and on a home console called the Vectrex (that used a special Cathode Ray Tube that drew in XY mode instead of scan lines).
Starglider, Elite, X and others on home consoles were not designed for Vector displays, rather they rasterised vectors to pixels (which is what we’ll be doing here)
Most games had a less than perfect frame rate – anything more than a few shapes would produce serious lag.
But we’re living in the future now, so lets make 8-bit Vector Graphics that don’t lag!
Step 1: realise there is no easy solution and you’ll be plotting a lot of vectors by hand with maths!
We’ll be using the arcane runes that most game engines run on, “GL”! GL simply stands for “Get a Life”, more information can be found here: Unity Docs on GL line drawing. Please note, theres no real examples on how to do anything but the very basics there.
A very good resource is this github repository, again theres no real instructions, but through trial and error it is possible to make your own scripts using this as a base.
And in true Blue Peter 80s style, heres one we made earlier!
For this to run in Unity, it’s necessary to understand a bit about plotting vectors with maths, but lots of modern Unity tricks are available, so compared to the old days, it’s a bit easier to do things like dot product positioning and hidden-line removal.
Long live the short lived vector line glory days!
(many thanks to DC for the ZX Spectrum suggestions)