Optimization: Special symbol

After optimizing the Symbol A. We had another symbol that was a lovely hit for our performance. Let’s call it “Special symbol“. Here I discuss how we changed it to an optimized version, then added some glam to it.

The Special symbol was made to be used only for in-game cinematics for another game. But in our game, it was being used as a live symbol that could be cloned multiple times in one play-through. To give you an idea of the complexity of this symbol. Whenever I would select the gameobject in Unity, Unity would lag for a few seconds. It was so intense that sometimes my mouse would stop responding for a couple of seconds after I clicked this symbol.

Our Special Symbol: Yes every one of these GameObjects had bones and meshes. There’s 2 pages full of gameobjects like this if I scrolled down further.

Those Wedges you see in the image of the symbol. They had multiple layers too.

So, I figured something that would chug at just a click in the Unity editor, probably was slowing down the game too 🙂

I requested a pre-rendered version of the symbol. We would also need pre-rendered animations too. Either Movies or Sprite sequences. We went with Sprite sequences because I wanted to to see each frame of the animation uncompressed. So, as the maintain the same quality when the symbol was 3D. Here’s what the difference looked like.

From rigged model animation to sprite animation sequence

With Unity not chugging at selecting the gameobject anymore, I’d say the optimization gains were inevitable. But there arose another problem, a very typical one of this scenario.


Dealing with the loss in Quality…

There was of-course a downside to all this savings. The symbol was now 2D in a 3D Game with a 3D monitor. Since, I refused to settle with a not so cool looking optimized symbol. I decided to jazz it up. First thing was to make the symbol look 3D again. For this a added a fake base to back in the form of a cheap cylinder. This was used whenever the Symbol flipped around the screen, so it wouldn’t look like a 2D plane.

Special Symbol with a fake cylinder base

Luckily our animations of the symbol were straight at the camera. I would turn off this fake base 3D piece whenever the symbol would do its animations.


The other thing I wanted back in our optimized symbol, was the 3D depthness seen on the 3D monitor.

This was now gone since our symbol was not 3D anymore. To get this effect back, I broke apart the symbol and layered pieces of the symbol with a difference in the Z positions. This way the 3D monitor was able to pick up the depthness. Just like what I did in our Dashboard Wedges. 

Dashboard wedges and Special Symbol wedges are separated out in z position to simulate depth on the 3D monitor

With that and some particle magic, our Special symbol was back to looking like a champ!