Publishing Your Godot Project to itch.io

In this tutorial, you’ll learn all about creating web exports with Godot and how to make your project available to the public via itch.io. Along the way, you’ll discover best practices and useful tips to make your project stand out. By Eric Van de Kerckhove.

Leave a rating/review
Download materials
Save for later
Share
You are currently viewing page 2 of 3 of this article. Click here to view the first page.

Uploading Files

Now it’s time to upload the zip file you created earlier. To do so, click the big Upload files button in the Uploads section and select the zip file.

Uploads button

This will start the upload process, as you can see from the progress bar that appears.

Upload process

Once the upload is complete, you can choose what platform this file targets. For most platforms, this makes the zip downloadable on the project page. However, for web builds, you want to check the This file will be played in the browser checkbox. This lets itch.io know to host the contents of the zip in the browser.

This file will be played in the browser

After checking the checkbox, the other platform options will disappear.

alt text

Changing the Embed Options

Scroll a bit further down until you can see the Embed options section. In this section you can choose how the project will be displayed, including the dimensions of the viewport.
It’s important to set this to the same dimensions as the viewport size you defined in Godot’s project settings. If there’s a mismatch, the player might see black borders, a part of the game they shouldn’t be able to see or a part might be cut off.

To check the size of the viewport, open your project in Godot and navigate to Project ▸ Project Settings in the top bar.

Project settings

From there, open the Display ▸ Window section to see the Window settings on the right.

Display

The top setting here is Size, which contains your project’s dimensions. In case of the sample project, it’s 960×540.

Viewport size

Copy these values over to the Viewport dimensions on itch.io.

Viewport dimensions

Last, but not least, check the SharedArrayBuffer support checkbox at the bottom. This is needed for Godot 4.X web exports to work, more on that below.

SharedArrayBuffer support

The project is now ready for a test run! Click the Save & view page button at the bottom of the page to save your project and open it in your browser.

Save and view

Testing the Game

Once the page loads, you’ll see a message saying “Loading game for the first time…”. This means itch.io is unpacking the zip file and preparing its contents to be served.

Loading first time

Once the game is ready, click the Run game button to give it a spin.

Run game button

Check if the game runs as expected. Depending on your browser, the game will start embedded in the page or open in a new window.

This is a good time to talk about Godot’s web exports and browser compatibility! Exports built with Godot 4.2 and lower require a browser feature called SharedArrayBuffer, this is a requirement to get Godot 4’s multi-threading to work on the web. Unfortunately, it imposes high limitations on the server that hosts the games, which is out of the control of the developer when using websites like itch.io. When using SharedArrayBuffer, the game is isolated from other servers, so monetizing it via ads or in-app purchases aren’t possible.

The good news is that this should be fixed in Godot 4.3, which might have already been released by the time you read this. Godot 4.3 introduces a single-threaded option for web builds, which doesn’t require SharedArrayBuffer.

Once you’re done testing, it’s time to get the project ready for publishing.

Finalizing the itch.io Project

At this point, you could publish your project, but you probably won’t attract a lot of visitors with the bare minimum. Itch.io has excellent content creator guidelines that you should follow. The guide starts off with two important statements:

If you follow these guidelines, you’re likely to have more players, buyers, and people talking about your work
If you fail to adhere to these guidelines, a site admin may choose to remove your page from itch.io’s discovery index

In other words, follow the guidelines to get your project seen!

Editing the Theme

You can customize the colors, images and fonts of your project page to make it more appealing. Check out some of these project pages to get a sense of what’s possible:

To edit the theme, click the Edit theme button at the top of the page.

Edit theme

This will slide open the theme editor on the left.

Theme editor

I recommend playing around with the theme editor to get an idea of what’s possible.

Here are the theme settings I ended up using for the sample project:

Theme settings

You can find all images related to the sample project in the sample-project-images folder, including the embed background used above.
With the settings above applied, the project page should look like this:

Theme applied

Of course, you can customize the theme any way you like! For a full overview of the theme editor, check out itch.io’s Designing your page guide.

Now that you’ve customized your project page, the next step is to fill out the details about your project.

Adding Project Details

If you want your project to be found and viewed, it’s crucial to add a nice cover image, some screenshots and metadata. This will allow users to use itch.io’s search engine to find your project based on its genre and tags.

Click the Edit game link at the top of the project page to return the project editor.

Edit game link

The first order of business is to add a cover image. This will be the first thing people will see when browsing through projects on itch.io.

Cover examples

To add your own, create an image with a size of 630×500 pixels and click the Upload Cover Image button at the top right to upload it. The cover can also be a GIF if you want, so users can hover over it to see the animation. You can find an example of a static cover in the sample-project-images folder named cover.png.

Upload cover image

Aerixa cover

Next are the screenshots, having some of these are crucial to let potential players know what the gameplay looks like. Like with the cover, you can use GIF images to animate them. To add screenshots, click the Add screenshots button below the cover image. You can find screenshots of the sample project in the sample-project-images folder.

Add screenshots

As a cherry on top, you can create a gameplay video on YouTube and add the link to it above the Screenshots section. I decided not to do this for the sample project, but for bigger projects it’s something you should consider.
Now scroll down to the Details section to fill in the missing metadata.

Details

First of all, add a description for your project. You can use the buttons at the top to format your text.
Include a summary of the game and its main features along with anything else you want players to know. This can include images, videos, links and installation instructions. If you have no idea where to start, take a look at some of the most popular games on itch.io and see what their pages look like.

For the sample project, I went with a short description of the game and its controls.

Summary

Below the description you can select the genre of your game. In this case, I chose Shooter. The search engine on itch.io allows users to search by genre, so try to aim for the genre that best fits your game.

Genre

For the final piece of metadata, choose some tags for your project. These are descriptors of what the game is about, both in art style and gameplay. You can choose from existing tags when you start typing, or create your own. Like with the genre, users can filter by tag to search exactly what they’re looking for. I choose 2d, pixel-art and singleplayer.

Tags

As the final step, it’s finally time to publish your project for the world to see!
Scroll to the bottom of the page and select Public in the Visibility & access section. Now prepare the champagne and click the Save button to publish your project. This will make your project available to everyone on itch.io and will add it to the Most Recent list.

Publish project