Designing 3D Asteroids for Volume
The first project I undertook at Looking Glass was 3D Asteroids, an arcade classic now transposed into the volumetric future. As it turns out, there’s a reason classic Asteroids works the way it does, and I think there’s something to be learned from the process of reimagining the gameplay in true 3D.
The Design Challenges
So there were plenty of standard game design challenges — balancing the original presentation and gameplay with what I thought would make it more fun and playable in 3D. We’re very accustomed to using 2 input axes at a time in traditional games of all kinds, up-down and left-right can usually get the job done. Analog joystick input just gives you precise control over a balance of the cardinal directions, and the most you usually need to do with it is move with one stick and look around with the other.
However, joysticks fall short when you need to both move and look in 3 dimensions! I discovered this in the process of making the first version of 3D Asteroids, a simple expansion of the rectangular playing board into a cubic one, representing a static chunk of space in the Volume, where your ship and the asteroids loop around from one side to the other. While I was able to contrive an input scheme to play in this mode, it’s simply too awkward for our brains and the learning curve was egregious.
So, rather than flying around a static area, I made the Hypercube move with your ship, following you around space in a kind of over-the-shoulder 3rd person view. Asteroids coming at you from all sides makes it both unpredictable and at times confusing, there’s a lot more empty space for asteroids to occupy.
This made rotating around the space very cool and dimensional, and at some point I started experimenting with the difference between an orthographic and a perspective view in Volume. An orthographic (parallel lines projected from a 3D object onto a plane like your 2D screen) projection of this new Asteroids looks flat, it rotates uniformly, and a faraway asteroid is as big as a nearby one.
Yet — we’re dealing with meat-space 3D here, and even a parallel, ortho projection will have a tinge of perspective when looked at in Volume, since parallax and physical distance lets us distinguish one slice from another and even otherwise parallel lines can appear slightly askew.
An orthographic view works well enough if the scale makes sense, but we’re modeling vast space here and an asteroid on the other side of the playable area should look small and distant, like it would to our human eyes. Essentially we just enhance the effect of natural perspective by introducing the perspective camera; so a section of space shaped like a truncated pyramid is captured rather than a cube.
There’s a longer, more in-depth blog post to be had about this idea, but what does perspective mean in volumetric space? We see the world with full stereoscopic perspective, so it’s odd that we still call orthographic content in a volumetric display “orthographic”. This all underlies the bigger picture: an ongoing internal dialectic we’re having at Looking Glass and in the volumetric world at large: What’s the best way to see and use 3D content?
Feel free to check out the source code for 3D Asteroids here!