Create(Design) a Real-Time Game Graphic Analyzer

What Is Graphic Analyzer

The term graphic analyzer has already been used. Most of those are graphic performance analyzer which mainly analyzes graphic performance.

The graphic analyzer I want to represent here is fully on the visual side. It’s a tool that analyzes how well players gonna perceive the game graphics in a technical and scientific way.

Graphic analyzer will work like this.

Recording one screen and displaying insight information on another screen in real-time, also generate custom reports if needed.

Why Need Graphic Analyzer

If I’m not wrong, game graphics can be divided into two parts, the subjective part and the objective part.

The subjective part is the creative problems. Things like, what story is the game trying to tell, and what clothes character is wearing. The choice of those is purely subjective, there is no correct or wrong for this type of content.

The objective part is more like, does the details is being clamped due to overexposure? or whether the brightness of each elements is consistent throughout the entire gameplay.

Even experienced artists would toggle grayscale mode to examine the brightness of the artwork. It would be nice to have a tool that shows insightful information about the graphic in real-time.

Similarly, rendering pipeline reverse engineering can do graphic analysis too, but there is a difference between these two.

Reverse engineering reveals the technical pathway to achieve the rendering result. This didn’t answer the question of why some games look good or bad.

The graphic analyzer is trying to analyze the gap between art design and rendering implementation.

Traditional quality assurance is more focused on performance and gameplay bugs. Maybe in the future, graphic analysis can be included in quality assurance’s workflow.

Function Required for Graphic Analyzer

  1. Screen recording
  2. Display information in another window in real time
  3. Image filter and analyzing mode
    1. Luminance mode
    2. Hue mode
    3. Saturation mode
    4. Contrast mode
    5. Color pick mode
    6. Motion mode
  4. Worst performance needs to reach 1 FPS
  5. Flexible UI interaction

Picking Up The Framework

To meet the design requirements, a graphic analyzer needs to have two key functions.

  1. Record and analyze in real-time
  2. Custom image filter and analyzing display option

There are some software with similar functions: Davinci Resolve, OBS

DaVinci Resolve

Davinci Resolve is good at the image process, but still, its function may not meet my expectations.

And, since it’s not a recording software, it doesn’t support real time image record/refresh. This would be a big time sink if user have to prerecord videos for analysis.

OBS

OBS may be the best software for screen recording. However, its default effect filter is limited. Luckily, OBS support custom filter using Lua.

https://obsproject.com/wiki/Scripting-Tutorial-Halftone-Filter