Barcode Battler— every object can become a creature.
Scan a real barcode and get a deterministic creature identity, then layer generated pixel art, collection progression, auto-battles and territory play on top. The physical world becomes an infinite set of stable game seeds.
- SwiftUI
- AVFoundation
- CryptoKit SHA-256
- GameKit
- CloudKit
- MapKit
- OpenAI image generation
- FastAPI / Firebase bridge
How it evolved
Reconstructed from the May 2026 implementation sequence and current design docs.
The first architecture pass replaced fallback hashing with CryptoKit SHA-256 and added cross-platform parity fixtures. A barcode should always map to the same underlying stats independent of device or backend.
GameKit turn-based matches, recurring leaderboards and the friend graph replaced bespoke Firestore responsibilities. That shifts commodity multiplayer lifecycle to the platform and keeps game-specific logic in the app.
Team building, front/back positioning, synergies and speed controls put player agency before battle while preserving fast mobile sessions during resolution.
Image prompts were rewritten around a 16-bit SNES/Genesis JRPG style, with observable poses, palettes and pixel-energy details. A consistent collection matters more than individually impressive generations.
Daily quests and scan streaks introduced a retention loop that uses the physical scan mechanic rather than bolting on generic daily rewards.
Points of interest, links, zones, hotspots and faction control turn location into a second map of ownership — a broader experiment than the original collection loop.
Game / UI rationale
System boundaries
Image evidence
The repository contains generated-art and game-design infrastructure but I did not find a clean, attributable in-app screenshot artifact suitable for this public portfolio pass. The case therefore documents the actual visual system — deterministic identity plus a versioned pixel-art prompt pack — rather than using an unrelated mock.