Open-source project
game-icons/icons avatar
game-icons/icons

game-icons/icons: SVG Assets and Batch Conversion Scripts

All SVG icons available on https://game-icons.net

1,364 stars161 forksShellNOASSERTION

At a glance

What is it?
game-icons/icons is a repository of SVG game icons, with shell scripts for recoloring collections and creating optimized PNG files. It suits game developers and tabletop projects that need editable vector assets, but its documentation does not describe package installation, asset selection, or release packaging.
Who is it for?
Adopt this repository when editable SVG artwork and a simple recoloring workflow are enough. Do not treat it as a packaged icon library or complete production asset pipeline without checking the individual files, script dependencies, output quality, and license.txt first.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Activity is slowing. The repository last received commits 6 months ago.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The Asset Problem game-icons/icons Addresses

game-icons/icons collects SVG icons for games, tabletop projects, and related visual work. The README says the repository contains all SVG icons available on game-icons.net. It also says the repository is used to track requests received through Twitter or email, giving the collection a secondary purpose as a public record of suggested additions.

The repository is aimed at people who need source artwork rather than an application with a runtime API. Its topics include boardgame, dungeons-and-dragons, gamedev, icons, svg, and svg-icons. This points to game and tabletop developers, but the files can also be inspected by designers or front-end developers working with vector assets. The README does not limit the artwork to one particular game system.

Based on the repository layout, icons are divided among numerous contributor-named directories. Directories such as delapouite and john-colburn are accompanied by categories for badges and quoting. This preserves contributor context, but it does not amount to a documented semantic catalog. The README does not explain how to find an icon by concept, query it from code, or install the collection through npm or another package manager. Consumers still need to browse the repository or game-icons.net, then decide which files belong in their project.

The central distinction is that game-icons/icons is an asset collection with utility scripts. It is not documented as an icon font, component library, design editor, or asset delivery service. That makes it suitable when direct access to SVG source files is the main requirement, but less suitable when a team needs stable package versions, semantic identifiers, or a managed export API.

SVG Storage and the Batch Asset Flow

The repository is primarily a collection of SVG source files. According to the README, the provided icons use a white foreground on a black background by default. `colorize-svgs.sh` changes that combination through two optional arguments: a hexadecimal foreground and a hexadecimal or `transparent` background.

The documented conversion flow has two stages. First, `colorize-svgs.sh` writes recolored SVG files to the gitignored `_out` directory. Second, `rasterize-svgs.sh` walks through `_out` and creates an optimized PNG for every SVG it encounters. SVG remains the intermediate representation, which gives the workflow a clear role in projects that need both vector originals and raster derivatives.

These stages also imply an ordering requirement. Running only `rasterize-svgs.sh` does not prepare the default source set, because its documented input is the `_out` directory produced by the colorizer. The scripts sit at the repository root, so the README's examples assume the commands are executed from a checkout where those files are available. The README does not document operating-system prerequisites, utility dependencies, or supported shell versions.

The scripts are batch utilities rather than a documented library interface. There are no documented options for selecting a subset, changing the output directory, setting PNG dimensions, or choosing compression settings. The README states that rasterization has no parallel execution yet and may take a while. The repository also includes `check-svgs.sh`, but the README does not explain what it validates or when it should run. Its filename suggests an SVG-checking role, but that alone is not enough to define its acceptance criteria.

Recolor Assets with colorize-svgs.sh

The first documented operation creates a recolored copy of the collection in `_out`. This command requests a red foreground and green background:

sh
./colorize-svgs.sh '#f00' '#0f0'

The README states that generated SVG files are created in the gitignored `_out` directory. This separation leaves the tracked source files untouched and gives a game project a local directory containing derived assets. A second invocation creates blue artwork with a transparent background:

sh
./colorize-svgs.sh '#0011da' 'transparent'

Both color arguments are optional. Invoking the script without them is also the first stage of the README's PNG workflow. In that case, the documented purpose is to copy the default white-on-black SVG files into `_out` before rasterization. The README calls the color arguments hexadecimal and explicitly permits `transparent` for the background.

The script interface is small, but that simplicity creates constraints. The README documents no file argument, theme file, target directory, or contributor filter. It also does not explain whether abbreviated hexadecimal values are normalized beyond the documented `#f00` example. A project should inspect generated files before bundling them, particularly if exact colors, alpha behavior, or stable filenames matter.

Because `_out` is gitignored, generated files remain outside the canonical collection. That is sensible for local builds, but the README does not describe a release process for distributing the recolored output. The script is best understood as a batch preparation tool rather than a configurable asset compiler.

Generate Optimized PNGs from _out

PNG generation follows SVG colorization. The README's documented sequence first creates the default SVG files and then converts every SVG in `_out`:

sh
# first copy the default SVG file to "_out" directory
./colorize-svgs.sh

# then generate one PNG file for each SVG file
./rasterize-svgs.sh

The important constraint is breadth. According to the README, `rasterize-svgs.sh` traverses the whole `_out` directory and generates one optimized PNG for each SVG it finds. It documents neither a file argument nor a filter. This is therefore a full-directory conversion workflow, not a documented command for exporting a single selected icon.

The README also says that execution may take a while depending on machine power and that there are no parallel executions yet. That statement identifies a practical limitation for repeated theme generation or large static-site builds. It does not provide runtime measurements, so the duration cannot be predicted beyond the documentation's warning.

Several output details remain unspecified. The README does not state the PNG pixel dimensions, output naming rule, optimization utility, color profile, or treatment of transparency in raster files. It also does not describe whether existing PNG files are replaced. A project that needs icons at fixed sizes for a canvas, texture atlas, or mobile interface must inspect the script or generated outputs before relying on them.

For a static site that wants every icon in several color themes, the two-stage pipeline has a coherent purpose. For a game that needs ten selected assets, converting the entire collection may add avoidable work. In that case, direct selection of source SVGs may be more appropriate, although the README does not prescribe a selective workflow.

Distribution, Validation, and Custom License Terms

The repository has no GitHub releases, and the README gives no package installation command. It points readers to the repository and https://game-icons.net for access to the icons. This favors cloning or downloading source artwork rather than installing a versioned dependency through a package manager. The absence of releases also means there is no documented release artifact or formal upgrade channel.

Contributions are accepted. The README directs potential contributors to `CONTRIBUTING.md` for help, making that file the source for contribution requirements. It also says people can submit icon suggestions and that requests received through Twitter or email are tracked in the repository's issue tracker. The root listing includes `.gitignore`, the scripts, contributor directories, `README.md`, `CONTRIBUTING.md`, and `license.txt`.

The directory layout gives artwork a contributor-oriented structure, but the README does not define a stable naming convention or programmatic mapping between directories and icons. A build should therefore treat file selection as explicit repository work. The documentation also does not explain what `check-svgs.sh` verifies, so contributors should consult `CONTRIBUTING.md` rather than infer a submission rule from the filename.

Licensing requires particular care. The README says `CC-BY`, but GitHub classifies the repository license as a custom license that cannot be categorized. The actual `license.txt` terms are not reproduced in the README. This article therefore cannot state the exact attribution wording, modification conditions, or treatment of a particular distribution. Anyone using the icons in a game, website, or merchandise should read `license.txt` directly before release.

Maintenance Signals and a More Selective Alternative

The repository is not archived. Its last push was on 2026-04-23. That is a recent activity signal, but it does not establish that every contributor directory or utility receives regular attention. The README documents no versioning policy, compatibility matrix, release automation, or change log, and the repository has no GitHub releases.

A real alternative is a project-owned asset pipeline. Instead of converting the entire game-icons/icons collection, a team could copy only the SVGs needed for its game, define its allowed colors in its own build configuration, and generate the exact raster sizes required by the target platform. This differs from the repository's documented approach in scope and control. The provided scripts use a fixed `_out` workflow and whole-directory processing, while a local pipeline can track a small selected asset set.

That alternative reduces unrelated conversion work and makes dimensions, filenames, and deployment formats explicit. It also puts more responsibility on the adopting team because game-icons/icons does not document a semantic export API or release package. The repository is appropriate when direct access to SVG source files matters more than packaging convenience. It is the wrong tool when a team requires fixed PNG dimensions, selective batch flags, parallel conversion, named exports, or formal versioned releases.

The recent push supports trying the collection, but it does not replace direct checks. The first checks should be the script's unstated dependencies and output behavior, followed by `license.txt`. Those are concrete gaps that a responsible adoption decision must resolve.

Editorial conclusion

Adopt this repository when editable SVG artwork and a simple recoloring workflow are enough. Do not treat it as a packaged icon library or complete production asset pipeline without checking the individual files, script dependencies, output quality, and license.txt first. The last push was on 2026-04-23, so maintenance-sensitive projects must judge whether that level of activity meets their needs.

Frequently asked questions

How do I install and use the icons from game-icons/icons?

The README does not document an installation command. Browse the repository or https://game-icons.net to obtain SVGs, then use the shell scripts to recolor files into `_out` and create PNG outputs.

How can game-icons/icons SVGs be changed to another color?

Run `./colorize-svgs.sh` with an optional hexadecimal foreground and background. The background may be `transparent`, and generated SVG files are placed in the gitignored `_out` directory.

Can game-icons/icons create PNG versions of the SVG icons?

Yes. After placing SVGs in `_out`, run `./rasterize-svgs.sh` to create an optimized PNG for each SVG. The README does not document dimensions, selective conversion, or parallel execution.

Official sources

  1. game-icons/icons on GitHub
  2. Issues
  3. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/game-icons-icons.svg)](https://hysenlabs.com/projects/game-icons-icons)

Was this useful?