Is there a way to estimate performance w/o having the device?

Hi,

I'm working on a game with some rigid body collision simulation:

ezgif-5-17a6a6db1f

I'm using C++, but it still might be too heavy on CPU, which is hard to evaluate running in the simulator.

I wonder if there is a way to artificially limit simulator's performance to match playdate's performance.

Or perhaps someone with playdate can try running the binary? (gdrive: pdex.zip - Google Drive)

Thanks!

1 Like

How fast does it run on Simulator with refresh rate (0) unlocked frame rate? Ideally it should run at 99 to stand any sort of chance of good performance on device. But this is just a quick guide.

The zip you have attached does not seem to be a full .pdx. In order for a game to run on the device it needs to be compiled for the device and also include pdxinfo and other things. See Inside Playdate.

Thanks for your comments.

The zip you have attached does not seem to be a full .pdx.

Yeah, I mistakenly assumed that only the .bin file is needed, I've updated the link(pdex.zip - Google Drive) with a full archive of the output folder, it's compiled for device (though I'm not sure if it will work as I had to stub some of the C++ runtime functions)

How fast does it run on Simulator with refresh rate (0) unlocked frame rate?

For whatever reason it seems to be locked to 50fps even when pd->display->setRefreshRate(0); is set, though I'm not doing anything in my code to lock the refresh rate.

1 Like

If you are drawing the whole screen at once that will be the limit. Going higher will require partial refresh and drawing only the things that have changed.

I'll try to test soon, but if anybody can beat me to it feel free!

1 Like

Ah, that makes sense. I do redraw the whole frame - not sure if I can really avoid that, but can probably think about it more.

I'll try to test soon, but if anybody can beat me to it feel free!

Thanks a lot!

This crashes on device, it won't even load.

Shows up as The Game of Life (as in the pdxinfo file)

Thanks a lot Matt!

I guess I'll wait until I get the device to keep working, I think it's due to using C++ and then implementing some runtime functions (i.e. [CPP] Guide: C++ on Playdate).

Cheers!