HaberDashers
HaberDashers is a console-style arcade (kart) racer for the PC in which players control miniature humanoid inhabitants of an everyday home, racing past outsized household items and through rooms as they compete against human and AI opponents with both driving skills and item pick-ups.
Role
UI/Tools Programmer
Game Engine
Unreal Engine 4.23
Platform
PC (Windows)
Development Time
4 Months, 2020
Team Size
54 People (17 Programmers)
HaberDashers Trailer
Screenshots
Roles and Responsibilities
As a UI programmer on the team my core responsibilities included collaborating with artists and designers on UI & UX design to feel natural and intuitive to the player. Developing a tool for displaying Character, Wheel and Kart meshes on their respective selection screens. Developing the Tutorials Menu and reflecting UI-Gameplay interactions like Kart selection, Character selection, Track selection done via the UI to reflect in game. Updating UI assets such as checkboxes, sliders, buttons and fonts based on the style guide provided by the Art Lead.
My other responsibilities as a tools programmer involved developing a tool scalable across the number the players for level designers for Camera Flythrough at the start of the level.
​
General Responsibilities as a developer were finding cause of Performance drops and improving it by reducing number of overlapping dynamic lights. Tracking tasks using Monday.com and bugs using JIRA (AGILE).
​
Flythrough Camera Tool
-
The Flythrough Camera tool uses a Render Target which is dynamically created for any level the tool blueprint is placed on
-
The tool was designed to handle any number of players and could be easily used with any number levels
-
The level designers would create a level sequence and input it as an editable parameter into the fly through camera blueprint
Bathroom Level Flythrough
Flythrough Camera Event Graph
How It Works?
A Level Sequence uses a fly through camera which outputs to a render target view which in turn is then used by a material to render the output on the entire screen. This helped the tool to be modular for any number of players and the use of sequencers and render targets allowed it to be used for any level.
Menu System and UI
Worked with 2 other programmers, 2 artists and 2 designers to provide the following functionalities: -​
-
Single player and multiplayer Character and Kart Selection and passing data to the game mode.
-
Rendering Skeletal Meshes on the widgets using same logic as the camera panning tool
-
Options menu interactions
-
Tutorials menu design and interactions
-
Empowering designers with data tables to easily create new tutorials
-
Track Selection Menu interactions
-
Applying UI Assets and Fonts as per the style guide
HaberDashers - Main Menu UI
HaberDashers - Kart Select Menu Design (Click to Enlarge)
HaberDashers - Tutorial Menu Data Table (Click to Enlarge)
HaberDashers - Kart Selection Menu Event Graph
As the development progressed I realized how much harder it is to make changes to a multiplayer UI, good initial architecture for the UI design and UI-Gameplay interactions allow faster iterations. Also the thought that UI cannot be resource heavy was a mistake and had to be optimized to fix frame rate issues on the Menu screens also.
Post Mortem
What Went Well ?
-
In-person work during the first-half of the semester helped ease the transition into online mode when the Covid-19 pandemic came.
-
Did a good job supporting each other across discipline lines.
-
Cross-departmental communication improved substantially over the course of the project.
-
Once-a-day check-ins had a good pace to them.
What Went Wrong ?
-
Should keep in mind the software being used while providing information.
-
Be mindful of how many people are needed to complete a task/request and how long it would take them.
-
Centralized documentation got lost behind all the listed updates.
-
More technical details on specific assets were needed.
-
Information flow down was incomplete and some parties weren’t informed of relevant changes until they were already implemented.
-
Some tasks were underestimated in planning.
What I Learned ?
-
"Being remote has its advantages and Disadvantages"; One of the by-products of the Covid-19 Pandemic is that I got the experience of a virtual development environment.
-
Clear, Centralized documentation that is easily and quickly accessible.
-
Always be prepared for Scrum on daily basis + know what you’ll be working on before you come to Scrum.
-
Have time set aside to showcase gameplay footage so that team can see the game while in online environment.
-
Have a clear understanding of who’s working on what and who needs to be informed and consulted about issues.