Stuff I Make:
I Explore:
Music:
Me:
Other Junk:
|
While talking with one of my friends who also enjoy’s playing Pinball machines, I brought up how odd it is that Nintendo’s Mario had not one, but two physical pinball machines during the golden 8-bit and 16-bit era of video games: a smaller yellow machine, and a full sized blue machine. Meanwhile SEGA’s Sonic never got one. What makes this weirder, is that SEGA actually developed and manufactured pinball machines. They already had the engineering and distribution channels to make pinball games and ship them to arcades – but they never made a physical Sonic machine. The idea of Sonic crossed with Pinball is not new – in fact, it goes back to the original game. Pinball is more-or-less present throughout all the Genesis flagship titles. Sonic 1’s “Spring Yard Zone” had pinball-like pop-bumpers. Sonic 2’s “Casino Night Zone” brought back the bumpers but also built on the Pinball idea with actual flippers through-out the level. Sonic 3 only retained the bumpers in “Carnival Night Zone” as far as I know, but Sonic CD’s “Collision Chaos Zone” had both the Bumpers and Flippers. Sonic has definitely enjoyed Pinball pedigree since his first game. Even stranger, SEGA made a Sonic Pinball spinoff (no pun intended (okay it was intended )) called “Sonic Spinball.” This Sega Genesis title was produced when Sonic was in his prime – it was a virtual pinball machine where Sonic stars as … the ball. The machine could never be built in the real world – it was definitely designed and built around it being virtual. But it WAS a fun Sonic pinball game I enjoyed as a kid. Later, SEGA made Sonic Pinball Party for the GameBoy Advance, and in Sonic Generations SEGA included a Sonic Pinball minigame. I can’t keep going over the multitude of Sonic x Pinball crossovers, but suffice it to say: the idea of Pinball and Sonic go back to day zero. While thinking about how Mario got two physical Pinball machines and Sonic never got any, I started imagining how I might design a physical Sonic pinball machine. Slowly the idea started taking over my thoughts. Initially I just meant to make realistic Blender Render of what a 90’s era Sonic Pinball may have looked like. When I told my friend I was designing a Sonic Pinball, he asked what engine I was working in. Welp… I wasn’t planning on making this a real game – but just for fun I decided to Google “Unity Pinball Asset”, since I’m familiar with Unity. I found the “Pinball Creator” Asset for only $50. At this point, I decided that making a playable game might actually be possible. My goal shifted from designing a photo-realistic Blender render to making the best looking Unity game I could. I wanted to push Unity’s PBR (Physics Based Rendering) shaders as hard as I could using my custom Blender Pinball model and knowledge of real time graphics. I didn’t want to write everything from scratch, so to make my game work I had to hack the Pinball Creator asset to do what I want – and also, to show what graphics I want. The code wasn’t pretty but I found ways to make my Sonic Pinball machine a reality without having to write too much of my own code. When modeling my Sonic machine, I modeled using real world measurements: meters and centimeters. Blender can be set to use both US Imperial units such as feet and inches, as well as metric units. Though American, I try to work in metric when I can – it’s particularly useful when moving between Blender, Unity, and various other 3D software. I found some diagrams and schematics of real Pinball parts and modeled my machine around those. While not entirely surprising, it was pretty awe-inspiring when I realize the author of the Pinball Creator also modeled around the same dimensions. For the most part, I was able to drop my custom modles directly on top of his and they fit perfect! I could use his same physics and colliders but just show my models instead. It was uncanny how well my Blender Pinball machine overlayed his template machine – and I modeled the Sonic machine long before I ever decided to bring it into Unity. But because two strangers – me and the asset author – both modeled around a standard spec, I was able to drop my model and graphics on top of his code and modeling and have it fit like a glove. After I got the machine working, I just wrote a main controller script to “hijack” his controller and add my custom logic for the Sonic machine (i.e. ring logic, robotnik logic, etc.). Overall I spent a lot more time on the rendering and graphics side of things than the engineering, and it definitely would not have been possible to make this a playable game without the Unity Pinball Creator asset. I do feel like I should mention some things about his code however. There were many places where I read his code and thought “WTF? That’s NOT how you do that!” While the author was very good about commenting (I LOVE dev’s who comment well 😉 ) his comment’s seemed to be English-Second-Language. While they were sometimes useful, other times they were as useful as no comment at all. The asset is also sold as “No code required” so it’s definitely targeting a niche demographic of developers who don’t want to write code but also do want to design pinball games. I can’t imagine the overlap is that profitable. But at the end of the day – this project simply would not exist without this asset creators work. Sure, I can critique his code, but to be honest most of my code critiques remind me of my younger self. Even if I think his code is not up to my current personal standards, at the end of the day, his code worked really well for my needs – even if not perfect. If you’re looking to write a Pinball game in Unity I think the Pinball Creator Asset is worth an investigation. It might not be written the best, but does work. So in the end, I made a working 90’s Era Sonic the Hedgehog Pinball machine, by modeling in blender and piggy backing on the aforementioned Unity asset. I’m really happy – it works pretty much as I expected, and to my delight I actually really enjoyed playing the game while debugging it. I have a lot of self-criticism on how I could make the Pinball play better, but for my first table design I’m content. I’ve already recorded an hour and a half of video footage on the “Making Of” this project – I will be releasing it over the coming weeks and go into more detail about the design decisions and room for improvement. But for now, I’m more than ready to close the “Sonic Pinball” chapter of my life – I have lots more ideas that need my attention. Check out the official site, and download a build here:
December 17, 2018 at 1:28 pm | Code Projects |