- Procedural 3D world: dollhouse shop, town, day/night, weather, seasons - Customer AI with personalities (story NPCs, thieves, weekly regulars) - Economy: suppliers, negotiation, pricing psychology, daily accounting - Staff with traits/loyalty, 8 expansion levels, furniture & decoration - Events with choices, quests, achievements, 4 difficulties, rival shop - Animated daily report, analytics, save/load (3 slots + autosave) - Procedural music & SFX (WebAudio), zero external assets - Test harnesses: simtest (node), verify/check/e2e (headless browser)
2.6 KiB
2.6 KiB
🏪 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
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 |
- Buy stock — Suppliers panel → order bread, potions, swords…
- Stock shelves — Inventory panel → shelve goods, set prices.
- Open the door — Stand near your counter to serve, or hire a cashier.
- Close up — Animated daily report shows profit, stars and charts.
- 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
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