# Online game stores (Steam, GOG, Epic...)

As explained in the introductory chapter, you can export your game in the `.solarus` format, which players can launch using the *Solarus Launcher*. This is the method we recommend for distributing your game across the **widest range of platforms**.

However, online game stores like Steam or GOG do not accept files with the `.solarus` extension; instead, you must provide a package containing all the components needed to launch the game without the *Solarus Launcher*.

The downside of this method is that it limits the platform on which you distribute the game (e.g., Windows), as you will be providing a package containing an executable and libraries compiled specifically for that platform.

If you still wish to proceed this way, follow the instructions below.

## Exporting your assets in .solarus format

First, create a directory on your computer to hold all the files that will make up the package you intend to submit to the online store.

From the *Solarus Editor*, export your game's data and assets in `.solarus` format to the directory you just created. To do this, go to the **File** menu and select **Build package**. You can click **Browse** to locate the destination directory. Ensure the file is named `data.solarus`; change the name in the field if necessary. If you make a mistake, you can always rename the `.solarus` file later using your operating system's file manager. Click **Build**.

The procedure is very similar to distributing your game directly in `.solarus` format. The difference lies in the steps that follow.

## Copying the executable and libraries

This chapter covers only the *Windows* scenario; we will update this tutorial later to include other platforms such as *Linux* or *macOS*.

### For Windows

You need to copy the `solarus-run.exe` executable located in the directory where you installed *Solarus Editor*. Copy this file to your destination directory, placing it alongside the `data.solarus` file you built earlier. Then, rename `solarus-run.exe` to match your game's name—keeping the `.exe` extension, of course (for example, `my-awesome-game.exe`). This is the executable players will launch to play your game.

Follow the same procedure and copy the following 36 files located next to `solarus-run.exe` into the destination directory you created:

- bzip2.dll
- gamecontrollerdb.txt
- libbrotlicommon.dll
- libbrotlidec.dll
- libbz2-1.dll
- libfreetype-6.dll
- libgcc_s_seh-1.dll
- libglib-2.0-0.dll
- libgraphite2.dll
- libharfbuzz-0.dll
- libiconv-2.dll
- libintl-8.dll
- libjpeg-8.dll
- liblzma-5.dll
- libmodplug-1.dll
- libogg.dll
- libopenal-1.dll
- libpcre2-16-0.dll
- libphysfs.dll
- libpng16-16.dll
- libsharpyuv.dll
- libsolarus.dll
- libssp-0.dll
- libstdc++-6.dll
- libtiff-6.dll
- libvorbis-0.dll
- libvorbisfile-3.dll
- libwebp.dll
- libwebpdemux.dll
- libwinpthread-1.dll
- libzstd.dll
- lua51.dll
- SDL2.dll
- SDL2_image.dll
- SDL2_ttf.dll
- zlib1.dll

You do not need to copy any other files; you have just created a package ready for distribution on an online store. All that remains is to create an archive such as a `.zip` file containing all these files to publish your game.

However, we recommend testing the game by launching it from this directory or even having friends or family test it on their own computers to ensure everything works correctly.

## Modifying the executable's icon and metadata

Creators may wish to change the icon of the executable that launches their game; to do so, you must use an external tool such as [rcedit](https://github.com/electron/rcedit). Such tools also allow you to modify metadata stored within the executable, such as the author or the game version.

## Signing and notarizing the game

The executable resulting from this process which you will submit to the online store will be **neither signed nor notarized**. This means your players might encounter **warning** from Windows when launching your game. This does not prevent the game from running, as the player can choose to launch it anyway.

Some online stores do not strictly require your game to be notarized for publication; you simply take the risk of the warning appearing for your players. Additionally, antivirus software or Windows Defender on your players' computers might completely block the game from launching or even delete it from the system.

Therefore, if you use this publication method, we recommend partnering with a publisher who can handle the signing and notarization process.

If you encounter any issues, please feel free to ask for help with this procedure on our [Discord server](https://discord.com/invite/yYHjJHt).
