Files
deepseek 0e7c07533e TINY SHOP — cozy 3D shop-management game (Three.js vertical slice)
- 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)
2026-08-23 06:58:24 +00:00

74 lines
2.6 KiB
Markdown

# 🏪 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
```