Specimen Report
· JavaScript
turkey-hunter-js
phiat/turkey-hunter-js
built with Opus 4.5 in < 2 hours
- Stars
- ★ 0
- Forks
- ⑂ 0
- Language
- JavaScript
- Size
- 1,356 kB
- Last Push
- 3mo ago
- Forged
- 5mo ago
# The Turkey's Curse: A Polygonal Nightmare

A dark, atmospheric first-person shooter built with Three.js. Hunt turkeys through a maze-like forest, survive waves of enemies, and unlock permanent upgrades through a skill tree system.
## Features
- **Atmospheric FPS Gameplay**: Navigate a procedurally generated maze forest with dynamic lighting
- **Wave-Based Combat**: Survive increasingly difficult waves of aggressive turkeys
- **Dual Currency System**:
- Feathers: Per-run currency dropped by turkeys, spent at the between-wave shop
- Golden Feathers: Permanent currency earned through performance, spent on skill upgrades
- **Branching Skill Trees**: Four skill trees with branching paths:
- Marksman: Damage & Precision
- Stalker: Mobility & Stealth
- Survivalist: Defense & Recovery
- Gunsmith: Weapons & Utility
- **Wave Shop**: Spend feathers between waves on temporary buffs
- **Destructible Environment**: Trees can be destroyed with shotgun blasts
- **Debug Tools**: Built-in lighting debug panel for development
## Controls
| Key | Action |
|-----|--------|
| WASD | Move |
| Mouse | Look |
| Left Click | Shoot |
| R | Reload |
| Shift | Sprint |
| F | Toggle flashlight |
| B | Open shop |
| Tab | Open skill tree |
| ` (Backtick) | Toggle debug panel |
## Skill Trees
Each tree has 5 skills in a branching structure (Tier 1 → Tier 2A/2B → Tier 3A/3B):
- **Marksman**: Steady Aim → Stopping Power / Rapid Fire → Dead-Eye / Bullet Storm
- **Stalker**: Light Step → Quick Dodge / Ghost Walk → Predator / Shadow Hunter
- **Survivalist**: Thick Skin → Regeneration / Iron Will → Last Stand / Unstoppable
- **Gunsmith**: Quick Loader → Extended Mag / Scavenger → Incendiary / Explosive
## Getting Started
### Prerequisites
- Node.js 18+
- npm
### Installation
```bash
# Install dependencies
npm install
# Start development server
npm run dev
```
Open http://localhost:3000 in your browser.
### Build for Production
```bash
npm run build
npm run preview
```
## Tech Stack
- **Three.js** - 3D rendering
- **Vite** - Build tool and dev server
- **Vanilla JS** - No framework dependencies
## Project Structure
```
src/
├── main.js # Entry point
├── game/
│ ├── Game.js # Main game coordinator
│ └── Player.js # FPS player controller
├── world/
│ ├── Lighting.js # Dynamic lighting system
│ └── MazeGenerator.js # Procedural maze generation
├── combat/
│ └── Shotgun.js # Weapon system
├── enemies/
│ ├── Turkey.js # Turkey enemy AI
│ └── TurkeyManager.js # Enemy spawning/management
├── ui/
│ ├── HUD.js # In-game HUD
│ ├── SkillTreeUI.js # Skill tree interface
│ └── WaveShop.js # Between-wave shop
└── progression/
├── Currency.js # Feather currency system
└── SkillTree.js # Skill tree data/logic
```
## License
MIT