Mechanic #247 - Cylinder World|
|Posted: Jun 22, 2016|
Create a world using only objects which are mirrored around their y-axis.
I admit that I'm really lazy. So lazy, in fact, that I never learned 3D programming. I'm rather old school, back when programmers did all the work themselves. There wasn't stuff like GameMaker or Unity. You wanted 3D, you did all the math yourself - and you couldn't even use floating point.
Okay, that's an Old Man Yells at Cloud moment, but my point is, 3D wasn't always something that you could take for granted. And because of this, developers frequently had to fake it until they made it.
Fig 247.1 - Nebulus/Tower Toppler/Castelian.
Nebulus has a dozen different names from the dozen different ports it received, but they all involved a little frog guy going up a castle on platforms. Unfortunately, I can't find an animated gif of it right now, but the castle would rotate around its center axis, and the little platforms would sort of appear and disappear behind the castle as it did. Without having an ounce of 3D programming in it (the platforms didn't even change size with perspective), they created essentially a 3D game.
Fig 247.2 - Rise of the Triad.
But what happens when you actually have a 3D game? Rise of the Triad was based on the Wolfenstein 3D engine. It had height, but it didn't have floors. In an effort to create bridges and platforms, they used little circular platforms that you could walk on. Why are they circular? Because RoTT used billboard sprites which with rotate with the POV, and circular platforms don't look strange when you do that. (They did use multiple sprites for height, since being under a platform would look different than being on top of it).
Fig 247.3 - Ballz.
On the Super NES, the game Ballz simulated 3D graphics by using spherical sprites. Similar to the platforms in RoTT, you could rotate the camera however you wanted (even up and down in this case), and the spheres could stay still without ruining the illusion. A game called Ecstatica did something similar, but used ovals which could be scaled and rotated.
Fig 247.4 - Yoshi's Island.
Finally, my last proof of concept is the title screen to Yoshi's Island. Got a nice animated GIF of this one. Isn't that fancy? This one manages to create the illusion of 3D without scaling or even necessarily complex 3D math, and does so with full pixel art! The thing to notice, however, is that all the objects on the island are cylindrical in nature. There's spheres, cones, domes, and cylinders - as well as more complex objects which are made of multiple spheres, cones, domes, and cylinders, like the castle.
My point with all this is that as long as the objects you are drawing are fully mirrored around the axis you rotate, you can rotate them around all you want without breaking the illusion. If you want to rotate in more than one direction, they need to be spheres, but if you only rotate around one axis, cylinders will work. Using an isometric perspective, which doesn't foreshorten depth, you can create a fully 3D game using pixel art.
Fig 247.5 - Two sprites, full rotation available.
Why would you do something like this? Why don't you just use Unity and 3D? Because it's there. There are still mountains to be climbed. And having a mountain all to yourself lets you stick out. No other game out there is made entirely from cylindrical objects.
Click for Prototype Note.