Today our developer Conrad of Pillowfight Games goes into the process behind Heaven Will Be Mine’s c
Today our developer Conrad of Pillowfight Games goes into the process behind Heaven Will Be Mine’s character-specific UI:Building Three UIs for One GameHeaven Will be Mine features three characters who represent three different factions: Saturn representing Celestial Mechanics, Pluto representing Cradles Graces, and Luna-Terra representing Memorial Foundation. One of the challenges we discovered early on was presenting the mood of both the character and their faction through the UI of the game.A very early concept for unified UI.Early comps had the UI looking the same for all characters, which we identified as underwhelming: each character had a unique personality, and we quickly realized we needed to more reinforce the character’s personality as you played through the cockpit sections.Per-character UI, with extra flair per character. Much better!Once we came to this realization, our UI designer Christopher Simon put together some beautiful comps, but this left me, our humble engineer, at a bit of an impasse: how do I reuse what is generally the same layout, with different colors and extra styling?I decided to create a series of scripts that could conditionally control the display of objects on screen depending on which character was selected. These came down to three different kinds of scripts: PerCharacterColor, PerCharacterImage, and OnlyEnabledForCharacter. PerCharacterColor will change the color of an item depending on the character, or optionally disable it entirely if the object isn’t meant to be displayed for that character. PerCharacterImage works similarly, but taking a reference to a Sprite instead of a Color. If I just wanted to turn something on or off depending on if a character was selected, OnlyEnabledForCharacter was able to do the simple comparison.An example of the PerCharacterColor script. If a checkbox is unchecked, the object will simply not be displayed for that character.Once I had these selection behaviours in place, I was able to put together a small tool to quickly allow me to signal to an entire menu that it was time to pretend you were in, say, Saturn’s colors.An example of the control that allows me to quickly reassign UI presentation of an entire submenu.Once I was able to efficiently do this reassignment, the UI came together extremely quickly. We’re currently in the process of adding animation to the UI to make it more dynamic, and I’m excited to show you all the results of our work! -- source link
#development