← BACK TO MISSION LOG

TRANSMISSION 05 · DEVLOG

Thirteen Badges, Zero Clicking

7 MIN
A
THRUSTgenerate icons
HULLupload images
Level select screen showing mission grades and star progress
GAME CENTER
BATTERYsync metadata
GRAVITYexpo-game-center

Game Center achievements are usually a click marathon in App Store Connect. I treated them like code instead, mostly because I knew I’d forget which checkbox I’d missed the second time around.

One list, three scripts

Achievement IDs, names, descriptions, and point values live in scripts next to the game. That same list drives icon generation, metadata sync, and image upload.

A Python script paints 1024×1024 patches in the neon HUD palette — HH, FE, I, II, III, and the rest. A Node script signs App Store Connect JWT requests and creates or updates the achievements (npm run asc:achievements). Another attaches the PNGs (npm run asc:achievement-images). Dry-run is the default. --apply makes it real.

On the phone

expo-game-center handles auth and unlocks. Triggers fire from actual moments: first rescue, full lander, S grades, crashes, hangar upgrades, act clears. The patches you earn in-game are the same circles on this site’s mission log.

Expo’s library kept the client side small enough that achievements shipped in the same week as adaptive quality. Not a follow-up quarter. Scripts remember. Portals don’t.

GET THE APPMISSION LOG