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.