top of page

ADVANCED PROFILER

for YadaEngine

YadaEngine is a 3D custom game engine built by a team of 7 junior computer science students from DigiPen Institute of Technology Singapore. It was built to create the game Fruit Punch, a cooperative fighter/platformer pitting the Fruits against the Vegetables. To ensure smooth development, a robust debugging and profiling tool was needed.

My role: Debugging/Profiling

Before starting on the implementation of the debugging and performance profiling tools, the main factors I considered were:

​

  1. Intrusiveness - how the tools interfere with the development process

  2. Data representation - how data extracted is interpreted

  3. Flexibility - extensiveness of configuration & control of the tools

General Performance Profiler

The performance profiler was designed to provide quick feedback to the users of the YadaEngine editor. Inspired by commercial software profiling tools, the  profiler shows key information with real-time plotted graphs.

​

These graphs/charts have distinct color coding and markings for better readability, plus expansive customization options to allow for user-specific configurations.

​

Any information missed by the user can be captured and logged into a log file for posterity.

Profiler_ss5.png

Insights

Inspired by Unreal Engine Insights, YadaEngine Insights was designed to be an in-depth frame-by-frame capture tool.

​

The biggest challenge was to display an overwhelming amount of information in a meaningful manner. After multiple feedback loops from team mates and iterations, YadaEngine Insights was delivered to a satisfactory standard to the team.

​

It features Quality of Life functionalities such as filtering, color coding, and other customization options.

DESIGN PROCESS

User Research

User research was done within the team prior to the development of the profiler tool.

​

The user research consisted of collecting information on the various user roles, needs, and expectations - in this case the users were the team of YadaEngine developers. The research also included task analysis to understand the required items (e.g. data) to complete specific tasks.

​

A User Story Map was used to record user activities, tasks, and individual stories. With a clear visual of user workflow at each design iteration, it was made easier to identity key problem area and fine tune the user experience.

Prototyping

The information gathered and analysed from user research was then put into a visualized low fidelity interface prototype, also known as a wireframe.

​

The wireframe served to provide a good general idea of how the final implementation of the profiler will look like. Only after the prototype design was approved and understood by the rest of the team, did the implementation phase start.

Iterative Testing & Refinement

Due to project time constraints, the first functional implementation of the profiler was put straight to use in development.

​

This meant future iterations of the profiler was built on actual in-development use cases and feedback. As the users (game developers) got more experienced with the game editor, the perspective feedback on the profiler matured, allowing the iterative refinement process to mature with it.

YadaProfiler - User Story Map.png
YadaInsights Wireframe.png
Profiler1.png
Profiler_ss2_edited.jpg
bottom of page