Smol for indie game developers

Compress PNG for Games: Store Art, Uploads and Trailers

You need to compress PNG for games without wrecking the art: Steam capsules, screenshots, itch.io page images, a trailer and devlog clips. Smol resizes and compresses all of them on your Mac in one drop, with nothing uploaded. Engine texture formats are a separate step.
  • Scale store art to Steam’s capsule and screenshot sizes
  • Compress PNG screenshots in one batch, nothing uploaded
  • Shrink trailers and devlog clips to H.264 or H.265 MP4
  • Know which jobs belong to your engine, not to Smol

$29 once per Mac · No subscription · Files never leave your Mac

Smol’s main window in dark and light appearance with an image, a PDF and a video queued and a Compress 3 Files button
By the Smol team9 min read

To compress PNG for games, resize each image to the pixels its destination asks for, then compress with a quality setting and check the result. Steam publishes exact capsule sizes, itch.io caps HTML5 zips at 500 MB extracted, and a trailer needs its own video settings. The table maps each job to a Smol setting.

What a game developer sends, the limit it hits, and the Smol setting
What you are sendingThe limit you hitThe Smol setting
Steam capsules and screenshots (PNG or JPG)Exact pixel sizes, such as 920 × 430 for the header capsule; screenshots at least 1920 × 1080Compress, same format, maximum dimension set to the long edge, fit mode
itch.io page art and HTML5 build images500 MB extracted per HTML5 zip, 200 MB for any one file, 1,000 filesCompress PNG at quality 75, or output WebP for web builds
Trailer and devlog clipsUpload caps and bandwidth; the file is far larger than any imageCompress video, MP4, H.265 or H.264, check the output size
Source PNGs in a repositoryRepo and clone size, build cache sizeCompress a copy; keep the master elsewhere
Texture formats inside the engine (BC7, ASTC)Chosen by the engine at import, not by an image appNot Smol. Set it in the engine’s import settings

What are the Steam store image requirements?

Steam wants five required capsule and screenshot sizes, all published in pixels. Smol scales an image to fit inside a pixel size and compresses it. Fit mode keeps the aspect ratio, so start from art made at the right ratio. Smol does not design the art or check Steam’s content rules, so read the page before you submit.

Steam store and library asset sizes with the source for each
AssetPixelsNotesSource
Header capsule920 × 430RequiredSteamworks
Small capsule462 × 174Required. Two smaller sizes are generatedSteamworks
Main capsule1232 × 706RequiredSteamworks
Vertical capsule748 × 896RequiredSteamworks
Screenshots1920 × 1080 minimum, 16:9At least 5 requiredSteamworks
Library hero3840 × 1240No text; keep key content in the central 860 × 380 areaLibrary assets
Library logo1280 wide and/or 720 tallPNG with a transparent backgroundLibrary assets

Steamworks’ store and library asset pages state no file-size limit, so there is no byte target to chase. That changes the job: compress for your own repository, upload time and storage, and keep the pixels exact. Screenshots are the files most worth shrinking, since a 1920 × 1080 PNG of a busy scene can be large and you need at least five.

How do I compress PNG for games without ruining the art?

Compress a copy, set a quality number, then look at the result at 100% zoom. Smol has no lossless mode for images: it always re-encodes, so test one file of each art style before running a folder.

On 24 small film photos saved as PNG, Smol at default settings made the files 69.2% smaller, and compressing the same PNGs to AVIF at quality 65 saved 92.1%. Those images are 768 × 512 photographs, not sprites, so treat the figures as a ceiling for photographic art and not a promise for yours. The method is on the benchmark page.

Which art compresses safely, and which does not?

  • Painted backgrounds, key art and photographic screenshots take quality 75 well. Start there and zoom into gradients and skies.
  • Hand-placed pixel art is the risk. Smol cannot promise pixel-identical output, so run one sprite sheet, zoom in, and keep the master if edges shift. For pixel-identical results, use a lossless tool such as the one in our ImageOptim comparison.
  • UI icons with transparency: check one output on a dark and a light background before batching.
  • Images that were already optimized: Smol keeps the original when compressing would make the file larger.

Which Smol settings fit which game asset, and how do I batch them?

Set the maximum dimension to the long edge of the target and keep fit mode. Smol sets quality and pixel size, not output bytes, so check the largest output after each run.

Smol settings by game asset
AssetFormatQuality or presetMaximum dimension
Steam screenshot, 1920 × 1080Same as original (PNG) or JPG75 to start; a starting point, not a measured threshold1920
Steam header capsule, 920 × 430PNG75 to start920
Main capsule, 1232 × 706PNG75 to start1232
Vertical capsule, 748 × 896PNG75 to start896
Library hero, 3840 × 1240PNG80 to start; check the art3840
itch.io HTML5 build imagesWebP or PNG75; test in the running buildMatch what the game draws
Press kit screenshotsJPG802560
Trailer, 1080pMP4, H.265 or H.264Quality label “High”, then check sizeKeep, or reduce the resolution

Resize can only shrink what you give it. Starting from a 4K screenshot is better than upscaling a small one, and Smol’s upscaler (2×, 3× or 4×) is there for old art you no longer have a larger master of. For many files, compress images for web covers the same batch settings.

Work on a copy of the art folder, drop the whole folder in, and read the per-file sizes afterward. Smol writes a _compressed copy by default and leaves the original alone.

  1. Copy the folder you want to shrink

    Keep the masters in your art repo or cloud storage. Never compress the only copy.

  2. Drag the folder into Smol

    PNGs, JPGs, a trailer and a PDF press sheet can go in the same batch.

  3. Set format, quality and maximum dimension

    Use the settings table above. Set the maximum dimension per asset type; one run produces one size.

  4. Run it and check the largest output

    Open the biggest file and one with fine detail at 100%. If both look right, the batch is fine.

  5. Upload the copies

    Point Steamworks or your itch.io page at the compressed files, and keep the originals for rebuilds.

Smol’s completion screen after a batch: 128 files complete, 2.4 GB before, 310 MB after, 87% saved, 2 minutes 41 seconds elapsed
The completion screen after a batch: size before and after, share saved and time taken.

What is the itch.io upload limit?

For HTML5 games itch.io states 500 MB total extracted, 200 MB for any one file, and no more than 1,000 files, with paths up to 240 characters. For downloadable builds its FAQ says only that individual file size is limited, and prints no figure.

itch.io limits that the creator docs state
LimitFigureSource
Files in an HTML5 zip, after extraction1,000HTML5 docs
Total extracted size500 MBHTML5 docs
Any single extracted file200 MBHTML5 docs
Longest file path240 charactersHTML5 docs
Files per page10Creator FAQ

Image weight matters most in a browser build, because players download it before they play. Try WebP output for textures a web build loads, and test the running game, not only the file. For a wider look at the web side, see image optimization for web developers.

How do I shrink a game trailer file size?

Export your trailer once at high quality, then compress a copy to MP4 with H.265 or H.264 and check the size. Smol sets quality (CRF) and resolution, not output bytes, so you may need a second run at a lower quality label.

  • H.265 is Smol’s default codec, and H.264 is the alternative. The trade-offs are in H.265 vs H.264.
  • A 4K capture rarely needs to stay 4K for a store page or a social post. See compressing 4K video.
  • For devlog GIFs (more in README media), convert them to MP4 with GIF to MP4.
  • Audio can be removed for silent loops, which also cuts size.

Steamworks’ asset pages cover images, not trailers, so check the video upload screen for the current rule. Video workflows in more depth: how to compress a video on Mac. For streamers and clip makers, see gameplay clips.

Can I reduce game build size by compressing textures?

Partly. Build size is set by the texture format your engine writes at import, and an image app does not control that. Smol shrinks the source PNGs and the loose files around the build; the engine handles BC7, ASTC and the rest.

Unity’s platform texture guide lists DXT1 for RGB and BC7 or DXT5 for RGBA on desktop, ASTC for iOS, and on Android ASTC for modern GPUs with ETC2 for older ones. Those are GPU formats, chosen in the engine’s import settings, and Smol does not write them.

Where it does help: smaller source PNGs mean faster imports, a lighter repository and smaller zips of loose assets. Read compressing images before you commit them before you do, because compressed art is committed history. A Finder Quick Action makes it a right-click.

What do game developers use today, and how does Smol compare?

Free and built-in tools come first: your engine, a browser tool and the command line. Smol earns its $29 when you want one app for images, trailers and press PDFs without uploading anything.

Ways to compress game art compared
OptionGood atLimit
Engine import settings (Unity, Godot, Unreal)GPU texture formats such as BC7 and ASTCDoes not touch store art or trailers
Preview export on a MacQuick single-image resizeManual, one file at a time
sips commandFast scripted resizesNo batch UI; see the sips guide
Free web compressorsOne-off PNGsFiles are uploaded to a server
SmolImages, video and PDFs in one batch, localNot an engine tool; no lossless mode

The scripted option is covered in the sips command, and a side-by-side of tools is in every method compared.

When Smol is the wrong tool

Smol is a Mac app for files you already have. Five cases where something else is the answer:

  • You need GPU-compressed textures (BC7, ASTC, ETC2). Those come from your engine’s import step.
  • Your CI builds on Linux. Smol is not a build-time tool; use an image library in the pipeline, or the Smol API.
  • You need pixel-identical output for pixel art. Smol has no lossless mode.
  • You need SVG, texture atlases packed or sprite sheets generated. Smol does not write SVG or build atlases.
  • You are on Windows or Linux. Smol is macOS only.

Frequently asked questions

How do I compress PNG for games without losing quality?

Compress a copy, set quality around 75, and inspect the result at 100% zoom. Smol always re-encodes images, so it cannot promise pixel-identical output. Painted art and screenshots usually hold up; hand-placed pixel art needs a test file first, and a lossless tool if edges move.

What are the Steam store image requirements?

Steamworks lists a 920 × 430 header capsule, 462 × 174 small capsule, 1232 × 706 main capsule, 748 × 896 vertical capsule, and screenshots of at least 1920 × 1080 at 16:9, with at least five. Steamworks states no file-size limit on those pages. Check Steamworks for the current rules before you submit.

What is the itch.io upload limit?

For HTML5 games itch.io states a 500 MB total extracted size, 200 MB for any single file and 1,000 files per zip. For downloads its FAQ says individual file size is limited without printing a number, so check your upload screen for the figure that applies to you.

How do I reduce game trailer file size?

Check the upload screen for the current trailer limit, since the Steamworks asset pages cover images only. To shrink one, compress a copy to MP4 with H.265 or H.264, keep or lower the resolution, and check the output size. Smol sets quality, not bytes, so a second pass may be needed.

Can I reduce game build size by compressing textures with Smol?

Only the source files. Build size depends on the GPU texture format your engine writes, such as BC7 or ASTC, and Smol does not create those. It does shrink source PNGs, store art and loose files, which helps repository size, import time and downloads.

Does Smol upload my game art anywhere?

No. Smol runs on your Mac, has no account and no server, and nothing is uploaded, which matters for unannounced art and builds under NDA. It writes a compressed copy beside the original by default.

Keep reading

Smol for other teams