Before I continue talking about my main project, I’d like to share this game I made in early 2019. It was my final project for a Unity course I took for my job, using free assets from the Asset Store. I was making a regular 2D platformer at first, but then I found out about Render Textures and thought they were super cool, so I
went nuts with them tried something unique with them to make my project stand out more, because it looked kinda lame before.
I was already using layered groups to achieve a traditional parallax effect, but then I thought: “What if I could make these layers cylindrical?” So I created this cool script called CylindricalWorldSpawner that takes a list of layers, creates a custom camera for each layer that outputs a transparent Render Texture, and then applies that render texture to a cylinder whose circumference and height match the original layer’s width and height, respectively. It’s basically like rolling bread.
The result is this very unique 3D look where everything moves around cylinders and looks like it’s made of very thin paper.
“Wow, that game looks so cool! I wish I could play it!”, I hear you say. Then have no fear, the download link is here! https://agentottsel.itch.io/cylindrical-parallax (I made the description funny, so please read it)
I had a lot of fun making this game! Not only the programming parts, but also the level design, which I decided to make really difficult, experimenting with different types of moving platforms and inconvenient enemy placement.
I would like to come back to this project in the future to add music, sounds, better jumping (based on how long you hold Space), and achieve the same graphical effect with a more optimized shader-based solution. I wasn’t really going for optimization when I created it, I just wanted to test the boundaries of what I could do with render textures, and was very happy with what I got.
As someone who was already familiar with Unreal and C#, learning Unity was not too difficult. I really like the fact that it uses C#, which is an easy-to-learn, but very robust and elegant programming language. I wish it had more tools for editing geometry and level design, though. I had to use Blender just so I could have a cylinder mesh without the top and bottom circles. Nevertheless, I think it’s a huge privilege as a game developer to live in a time where we have so many amazing tools available and easy to get. If you compare how approachable the game industry is now compared to 20 or even 10 years ago, the difference is insane.
Special thanks to my artist friend also named Renan (a.k.a. @UPresence), for teaching me how to do UV mapping in Blender, to my employers at Tapps for offering me this course, to Danilo for teaching it, and to my boss Jerry for letting me share this game online.
If you play the game, let me know in the comments how far you were able to get! 🙂