Menu

Vector Balls

Projects / Lab

Vector Balls

d8rnode

Overview

Sometimes it's necessary as a developer to give yourself a challenge and see what you can come up with. For this challenge I decided to find out how far I could get in a few hours with a framework that was completely new to me. I knew that MonoGame was a clone of the discontinued .NET Microsoft XNA framework and so I was sure that 2D sprites would be possible. So what about re-creating some old demo type effects from the 16-bit (Amiga/Atari ST) days?

Explanation

The demo project uses 2D rendering to create a pseudo 3D effect (sometimes known as 2.5D). To do this it creates a model of the ball positions in 3D space and then transforms these into 2D space for the final rendering pass. To ensure the balls are drawn in the correct order, the render list is sorted by distance of each object from the camera. To simulate the lack of depth a basic scaling algorithm uses this distance to make closer objects larger and further away objects smaller.

Results

Before 3D graphics hardware became common place in computer systems it was interesting to see what developers managed to come up with to bridge the gap between the available 2D graphics rendering and still being able to produce something that could be described as "3D".

This shows what incredibly rapid development tools we now have available to allow a simple idea like this to be brought to life!

Media

Credits

'Hyperbased' (aka 'musiklinjen' aka 'A Final Hyperbase') by Firefox & Tip/Phenomena (Jimmy Fredriksson & Robert Österbergh). From Enigma demo (1991) by Phenomena. YouTube