# 🏪 TINY SHOP A cozy 3D shop-management game in the browser — Stardew-cozy vibes with a light RPG heart. Start with one tiny shop, 100 gold and three shelves. Buy stock, serve quirky customers, expand to eight shop levels, hire staff, negotiate with suppliers, survive festivals, weather and the occasional wizard who turns your bread into gold. Built with **Three.js + Vite**, zero external assets — every texture, mesh, sound and song is generated procedurally at runtime. ## Run it ```bash npm install npm run dev # dev server (see vite.config / terminal for port) npm run build # production bundle in dist/ npm run preview # serve the built bundle ``` ## How to play | | | |---|---| | **Left-drag** | orbit camera | | **Right-drag** | pan | | **Wheel** | zoom | | **Click** | select furniture / walk there | | **WASD** | move your character | 1. **Buy stock** — Suppliers panel → order bread, potions, swords… 2. **Stock shelves** — Inventory panel → shelve goods, set prices. 3. **Open the door** — Stand near your counter to serve, or hire a cashier. 4. **Close up** — Animated daily report shows profit, stars and charts. 5. **Expand** — Bigger shop, more shelves, staff, automation… glory. ### The townsfolk remember Customers are archetypes with budgets, tastes and grudges: the old man who buys medicine every Tuesday, the knight who refuses elf-made goods, the thief who strikes when nobody's watching. Story NPCs have hearts you can win through negotiations, fair prices and good service. ### Everything else - Day/night cycle, seasons, weather, festivals (day 7!) - 18 random events with choices — dragons want candy, cats sleep on shelves - Staff with traits, loyalty, raises and quitting moods - Supplier relationships + negotiation mini-game - Quests, milestones and global achievements across saves - 3 save slots + autosave; four difficulty modes (a rival arrives eventually) - Dollhouse cutaway walls, bloom, procedural music that follows your fortune ## Tests ```bash node scripts/simtest.mjs # headless simulation-layer suite (fast, no browser) node scripts/check.mjs # browser render + pixel statistics node scripts/e2e.mjs # full-day flow against dev server node scripts/verify.mjs # consolidated UI/sim verification vs built bundle ``` ## Layout ``` src/ data/ products, customers, suppliers, events, furniture, quests sim/ state, economy, customer AI, pathfinding, staff, events, day cycle gfx/ engine, world, shop, characters, products, furniture, FX ui/ HUD, panels, daily report, menus audio/ procedural music + SFX scripts/ headless test harnesses ```