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)
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# 🏪 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
|
||||
```
|
||||
Reference in New Issue
Block a user