How do I get a generic device performance number?

0 favourites
  • 7 posts
From the Asset Store
Template for a generic save / load system, fully documented in comments and video
  • I want to make changes based on a devices 'general' ability (CPU and GPU).

    Is there some number I can grab that I can use as a general marker in the sand? I can only find the GPU and CPU current utilization which can of course move all over the place.

    eg

    if (device_ability>0.5)

    {

    do_fancy_effects=true;

    }

    else

    {

    do_fancy_effects=false;

    }

    ..or should I just base everything on device memory perhaps? ..but that seems a bit broad.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • You can try running a benchmark where you add sprites/particles/collisions until utilization hits x%.

    Just a guess anyway, never tried it.

    You might look into searching for js libraries that you can include and run by script that could give you more information on the end users device.

  • There's no good way to do this. You can try running a short benchmark, but that may be affected by any other activity on the system. (E.g. if another app in the background did some work, it could drag down the performance numbers lower than they'd really be.)

    Besides, there's tons of possible performance metrics. For example some systems may have high compute performance but low memory bandwidth, but others may have low compute performance but high memory bandwidth. If you run a performance test which is ultimately bottlenecked on memory bandwidth, but then your game actually does a lot of compute work, your performance benchmark result is not actually the right result. Software and hardware systems are incredibly complex with dozens of metrics and there's a huge array of configurations out there, so it's not really possible to come up with a single number.

  • I understand the complexities but some kind of score system would be nice to be able to access which is based on various parameters (CPU, GPU etc.) As seen here...

    antutu.com/en/ranking/rank1.htm

    A number like that would then give me an baseline to make setting changes at startup. Currently I think I only have the device memory that I can fetch.

  • I would guess they run a whole suite of benchmarks under lab conditions. You can't easily do that in a game and the results may still not be appropriate or meaningful for the reasons I already mentioned.

    I think the only thing you can rely on is the FPS. That's the gold standard for how fast the game is actually running. You could have adaptive heuristics like if the FPS is under 50 for 5 seconds, lower the graphics quality a bit. That then adapts based on how fast the system really is running the game under current conditions, but involves a delay. You could also rely on the CPU/GPU utilization measures to determine how much headroom you have to increase the workload if things are running smoothly.

  • Is there any way to return the type of GPU or type of CPU?

  • In general browsers don't provide hardware details for privacy reasons.

    Besides there are thousands of different hardware setups out there - you'd have to maintain an entire database of hardware and its capabilities, and continually update it over time. That's probably more work than making the actual game.

    I really think this is the wrong direction, I don't think anyone takes this approach because of all these problems.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)