UI-framework
I took ownership of creating a bespoke UI framework tailored specifically for our proprietary game engine. Recognizing the trade-offs between using existing frameworks and building custom solutions, the team decided that the learning opportunity and the potential for deep engine integration justified a custom approach. My responsibilities included:
Designing and Engineering: Architecting the system from the ground up, focusing on usability for developers, performance, and integration with other engine systems (like scripting and rendering).
Developing core features:
Automatic resolution-dependent layout calculations.
Rendering UI elements using Vulkan.
Handling input (including controller navigation).
Text rendering (including special layout calculations for text).
Hierarchical pivot point system.
Tween system.
Basic suit of Elements:
Button element.
Text element.
Canvas element.
Image element.
Later on other team members used my framework to add in other elements as needed like sliders and checkboxes.
Ensuring Robustness & Ease of Use:
Writing stable, maintainable code and providing clear usage patterns.
Integration with our scripting.
Positive feedback from teammates who utilized the system validated its effectiveness and ease of integration into their workflows.
Adhering to performance budgets: we had a budget of 2ms for updating and drawing the UI, ensuring that different menus and use cases adhered to this budget were a primary factor while architecting and implementing the framework and rendering integration.