What is SHARECART1000?

That depends on who you are. It means different things for someone playing sharecart games versus someone making sharecart games.

▒ For Players

SHARECART is basically a way for games to talk to one another. All SHARECART games share a save file, so by playing one game, you're rewriting your save file for another SHARECART game. This might be used to let you access parts of the map that are otherwise inaccessible, or change your inventory, or even the game's rules. Who knows? You just have to pull all your SHARECART games in one folder (typically called SHARECART1000) and then see what happens.

You'll want to have at least one place to keep all of your SHARECART games, and the folder structure will look something like this:

SHARECART1000/
  dat/
    o_o.ini       <-- This is the shared save file. Super important!
  fjords/
    fjords.app    <-- The file that will run the game, whether an app or
    fjords.exe        exe, should live right inside the game folder
    ...           <-- There are a bunch of other game files here
  postfuturevagabond/
    postfuturevagabond.app
    postfuturevagabond.exe

To get you started, you can just download this SHARECART STARTER KIT zip file. It'll create the SHARECART1000 and dat folders, as well as the o_o.ini file. Then you should download a bunch of SHARECART games. Remember, folders named after the game go into the SHARECART1000 folder.

Now go play.

▒ For Developers

First, take a look at the canonical SHARECART guide.

That image is good enough for most use cases, but I think there are a few things that get glossed over.

Cross-platform: It'd be cool if you made your game Mac compatible. If you do, remember that a .app file isn't actually a file, but just another directory that contains an executable somewhere deeper. Make sure you're looking for the dat/ directory in the right place.

Solo Distribution: Your game may be the first SHARECART game someone downloads. You should include the dat/ directory in the .zip you distribute. You should probably also include the root SHARECART1000 directory in there too, just for clarity, and to make it easier to figure out where to move future SHARECART games.

Clean Garbage: It's probably best that you approach the o_o.ini file defensively. For example, if you find a number where a boolean value should be, maybe convert it and save it into something more correct? It'd suck for one game that does something wrong to destroy the save file for all other games.

I made a small Lua library for interfacing with the SHARECART save in a clean way. Check it out, and if you make one for another language, contact me and I'll list it here too.