Hummingbird 1.4 – UI development for consoles with full user control
A new version of Hummingbird is here! As we announced in a previous blog post, Hummingbird officially supports Xbox One, PlayStation 4, PC, Mac, iOS, and Android. With Hummingbird 1.4, we bring new major features, performance and stability improvements. We are focusing our efforts on giving programmers full control over Hummingbird’s functionalities.
Update: Read about the latest release – check Hummingbird 1.9!
User control over task scheduling
With the new release, we give developers full user control over task scheduling. This feature is especially important in the UI development for consoles, where CPU cores are carefully assigned to do different work. We know that developers want to make sure a task happens at the best moment during a frame, so we made the integration of Hummingbird much easier in carefully tuned engines. With the freedom to control every aspect of scheduling, engine developers can get maximum performance from both Hummingbird and their engine.
We included integrated localization support, which allows UI developers to tag the field that will be localized with a custom attribute. The engine can load the correct language at a run time and Hummingbird will take care of displaying the proper text. We understand how important it is to change the selected language while the game is running, so we added that as well. Thanks to the layout system in the SDK, the text will look great in all languages, no matter the difference in the text length.
Improved input API
We also give UI developers full user control over the input in Hummingbird. Every input event identifies the element it interacts with as “target”. After the target has received the event, it “bubbles” up in the UI DOM so that other elements in the page can execute logic bound to that event. The UI developer has complete control over these phases through the API. This feature makes it easy to code important aspects of the game UI. For example, deciding when an input event has to be used by the UI or the game.
UI designers will usually designate UI elements to be “transparent” to input. The “BODY” element in the UI, for instance, is usually the root of the element hierarchy and shouldn’t consume input. The logic is dynamic and can easily be changed for different screens. For example, in a “Main menu” screen, the UI has to consume all events. However, in a HUD UI, only non-transparent UI elements will get events, and the others will go to the game.
The next release of Hummingbird will bring significant improvements to the data-binding and Unreal Engine 4 support! Stay tuned.
Follow Stoyan on Twitter: @stoyannk