Sideloading overwrites the BundleID

I noticed that the BundleID is overwritten when side loading a game through the playdate website, and found this message explaining the reason behind it: Sideload appears to use app name to identify unique applications - #2 by dwineman

This change is usually fine (although the current implementation seems to be creating more clashes than it is supposed to solve, so that's an issue as well), but also affects the location of /Data/{bundleID} which I want to direct the player towards for importing/exporting user content. It's not technically impossible now, but instructing "navigate to /Data/user.*********.game" feels rather iffy.

  1. Sideloading currently updates the bundleID in a way that makes clashes/overwrites more likely.
  2. This behaviour (and specifically the effect on the data location, not sure if the bundleId is relevant for devs otherwise) is not documented.
  3. Is there a way to prevent this from happening so that players can be instructed a bit more accurately (for the usecase of e.g. importing/exporting level data)?

I agree this should be documented.

Regarding your points:

On my itch page for Audition I phrase it as:

  1. locate Data/*.audition folder

This covers both the user.1234.audition and com.gingerbeardman.audition folder names if you've structured your bundleID in the recommended reverse DNS notation.

Unless I'm misunderstand things, the only possibility of a clash would be if one user installs two apps with the same final part of the bundleID.

Have you seen such as clash with apps that have the correct reverse DNS bundleID? Real examples would be helpful to get this looked at.

1 Like

That number seems to currently be just your own playdate account ID, so effectively just the last label of the bundleID is used as identifier.

1 Like

Oh! Thanks for the clarification. I've removed my nonsense.

The new help section of Playdate website says

Duplicate games?

If you sideload multiple versions of the same game, only the latest version will be available on your device. However, if you sideloaded through the Playdate website before February 2023, later versions of the game will appear as a new game. This is due to a change we made to how the games’ unique identifiers are handled, which will improve sideloading.

I've not yet had a chance to test this.

I noticed this change indeed, seems like the full bundleID is now included which would reduce the chance of a clash significantly.

Still, the “user.12345” prefix is added which does not add any entropy (since it’s static for each user) and looks a bit messy IMHO. Again, for most games this does not matter, but when directing the user to the Data folder it makes things unnecessarily, even if only slightly, more diffficult.

Would be great to hear the reasoning behind this, because as far as I can see, the intended effect is impossible to achieve without requiring devs to register and “sign” a bundleID through some centralised way (or, alternatively, treat every update as a new game, which is obviously not great).

1 Like

I've mentioned this in the past

(it's the way Classic Macintosh and Palm OS did things)