Skip Navigation

Goal and Explanation

I am a huge fan of the Halo franchise, and one of the effects I couldn't help but notice was how Bungie approached the HUD in their later entries.

In first person, your HUD was curved inwards. In third person, the HUD would dynamically flatten out to its true 2D appearance.

For some odd reason, I was really interested in this effect, and I always wondered how Bungie implemented this system. I decided to recreate this effect myself in Unity and C#.

Problems and Growing Pains

My early iteration of Curved UI Utility was slow. Pretty slow. This was because I was rendering the HUD twice on two separate canvases; once as a flat image, then another passed through a shader which did the curving.

I later scrapped this iteration and started anew. Because Curved UI Utility was going to operate on each UI element every frame, I wanted this to be fast. Not only that, I also wanted the package to be easy for game developers to implement.

Lessons Learned

Curved UI Utility isn't nearly as big of a project compared to ChroMapper or Hive, but it did give me a newfound respect for real-time code optimization, and how fast systems need to be to create high performance games.

Curved UI Utility also taught me the difference between parameters passed by-value and by-ref, and how I could take advantage of those to achieve fast code.

Let's collaborate.

Feel free to reach out to ask questions, connect, or if you want to work with me.