Develop continues its profiles of emerging and leading technology
[To read all of Develop's Key Release technology profiles, go here]
WHAT IS IT: A programmer-driven profiling system with an emphasis on visualisation
COMPANY: RAD Game Tools
PRICE: Via email (firstname.lastname@example.org)
RAD Game Tools’ new toolkit Telemetry is a programmer-driven system for profiling and visualising real-time application performance.
While most profiling systems today use a sample-based mechanism, Telemetry, which is at the time of writing available for PC with console versions imminent, relies on the programmer to direct its measurements with mark-ups, giving it a significant advantage over many parallel solutions.
“This gives the programmer very focused information about what's taking a long time, where, and even why based on surrounding context,” explains Telemetry’s chief developer Brian Hook. “And it also means we can take many more readings-per-second than a sampling profiler.”
Telemetry, insists Hook, also promises to outperform other profiling systems by showing information ‘over time’: “This is a crucial advantage over seeing an aggregate summary of events for an entire duration. Practically speaking this means you can find spikes in performance, not just areas that ‘on average’ took a long time but which may actually be fast frame-to-frame.”
Another string to RAD’s profiling bow is its ability to display all gathered data on the same timeline, allowing users to reconcile vastly different types of data. Such a function enables developers to see, for example, dumped out custom game data, along with thread locking data, OS context switches, memory allocation and function times, all along the same timeline.
In fact, visualisation is pitched as one of Telemetry’s key strengths.
According to Hook, gaining a clear visualisation of data is paramount to understanding what a given game is really doing: “Having code unfold into visual representations of execution really helps programmers identify problem areas in terms of performance, thread interactions, and memory usage.
“Many customers find significant problems within their first hour of using Telemetry; often problems they were unaware of or had an intuitive feel about but no real evidence to help track it down.”
Furthermore, Telemetry uses a client/server architecture, so information can stream to a single repository for analysis by others.
Developing the tech hasn’t been without challenges, of course, but those hurdles are the very things that have defined the development of Telemetry into what it is today, according to Hook.
“The biggest challenge has been scalability,” he admits. “One customer will want tens of thousands of profile zones, another is dumping GBs of logging messages, while another will send millions of samples of user data. So the largest challenge has just been making all this data gather and visualise quickly, when there isn't one ‘right’ way to use it.”
Having met that challenge and moved the PC-focused product out of beta, the next step for the RAD team working on Telemetry is to take final versions of the toolkit to console: “As with any multiplatform programming task, each platform presents its own unique challenges,” confirms Hook. “Obviously there will be differences and caveats with how we support each
“For example, lower powered platforms may not have the networking bandwidth or CPU horsepower to generate as much data as a PC version.”
Despite the mammoth task of embracing the console developer community, RAD aims to be source and binary compatible across platforms as much as possible so that users can just recompile and go.
With the Xbox 360 version set for release imminently at the time of writing, and the PS3 build due for Spring this year, In the coming months Telemetry may become a very familiar piece of equipment in developer’s toolboxes.