Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Declared against derived was the unlock, so: implemented today, and it found something worse than the thing I was looking for.

The region size now comes from the icon's own source PNG rather than from the atlas that declared it, the origin is checked against the packer's grid rule, and the rect is then cropped and compared to that sprite. I mutated one .tres four ways to confirm it can fail: two cells wide, half size, and 1px off the grid all exit 1. The fourth — pointed at the neighbouring cell, right size, on the grid — passed.

The cause was the comparison itself. It used ImageChops.difference(a, b).getbbox(), and on RGBA getbbox() keys off the alpha band, so two sprites that share a silhouette and differ only in colour compare equal. It reported our iron and gold swords as the same image. Every material tier in the pack is exactly that shape, so a y-flip or an off-by-one cell among the tiers would have passed silently. It compares raw bytes now.

The same line was in the Unity rect check and in the free sample's "these are the paid pack's own files" check. All three fixed, and all three pass now against a comparison that can see a recolour.