An open API service indexing awesome lists of open source software.

https://github.com/plnech/incr

La incr factory
https://github.com/plnech/incr

Last synced: 12 months ago
JSON representation

La incr factory

Awesome Lists containing this project

README

          

# incr 🏭

La incr factory

A collection of interconnected incremental games built with Next.js and deployed on GitHub Pages.

[![Example Gallery](https://github.com/user-attachments/assets/553ed5c6-f7e4-44dd-b09b-8809ef16fa84)](https://plnech.github.io/incr/)

## Current Games

### ☕ Slow Roast
Build a specialty coffee empire in Amsterdam! Start with a small café and grow into a coffee culture influencer. Features:
- **Resource Management**: Coffee beans, money, reputation, knowledge, and more
- **Customer Education**: Teach different neighborhood segments about specialty coffee
- **James Hoffman Wisdom**: Learn from the coffee master
- **Progressive UI**: Even the upgrades menu needs to be unlocked!
- **Nook Coffee Supplies**: Navigate business relationships with a certain raccoon
- **Neighborhood Dynamics**: Watch as your success changes the area around you

## External Games

### 🔊 StrudleIdle
Livecoding as an idle game 🎛️🎮
- **Play Game**: [StrudleIdle](https://plnech.github.io/StrudelIdle/)
- **GitHub**: [https://github.com/PLNech/StrudleIdle](https://github.com/PLNech/StrudleIdle)

### 💻 Le Dernier Code
En 2025, plus tu codes, moins tu codes.
- **Play Game**: [Le Dernier Code](https://dernier-code.vercel.app/)
- **GitHub**: [https://github.com/plnech/DernierCode](https://github.com/plnech/DernierCode)

### 🌐 Propagation Inc.
Manage a network of information and watch it spread. Make strategic decisions to control the narrative and achieve global influence.
- **Play Game**: [Propagation Inc.](https://propagation.vercel.app/)
- **GitHub**: [https://github.com/PLNech/Propagation](https://github.com/PLNech/Propagation)

## Setup Instructions for GitHub Pages

### 1. Create GitHub Repository
1. Create a new repository named `incr` (or whatever you prefer)
2. Enable GitHub Pages in repository settings
3. Set source to "GitHub Actions"

### 2. File Structure
Create these files in your repository:

```
incr/
├── package.json
├── next.config.js
├── tsconfig.json
├── tailwind.config.js
├── .github/
│ └── workflows/
│ └── deploy.yml
├── app/
│ ├── layout.tsx
│ ├── page.tsx
│ ├── globals.css
│ └── slow-roast/
│ └── page.tsx
└── lib/
└── gameStateManager.ts
```

### 3. Installation & Development

**Using GitHub.dev (Browser-only):**
1. Go to your repository
2. Press `.` to open GitHub.dev
3. Copy all the artifact files into the correct locations
4. Commit and push changes
5. GitHub Actions will automatically build and deploy

**Local Development:**
```bash
npm install
npm run dev
```

**Build for Production:**
```bash
npm run build
npm run export
```

### 4. GitHub Pages Configuration
1. In your repository, go to Settings → Pages
2. Set Source to "GitHub Actions"
3. The workflow will automatically deploy on every push to `main`

### 5. Access Your Games
Once deployed, your games will be available at:
- `https://yourusername.github.io/incr/` - Game selection hub
- `https://yourusername.github.io/incr/slow-roast/` - Coffee shop game

## Game Framework Features

### Cross-Game State Management
- **Shared Storage**: Games can access each other's progress
- **Global Achievements**: Unlock bonuses across all games
- **Progressive Unlocks**: Complete one game to unlock the next
- **Persistent Identity**: Your name and progress carry forward

### Local Storage System
- **No External Dependencies**: Everything runs in the browser
- **Auto-save**: Games save progress automatically
- **Export/Import**: Backup and restore your progress
- **Cross-Game Integration**: Games can reference each other's data

## Adding New Games

To add a new game to the framework:

1. Create a new directory in `app/your-game-name/`
2. Add the game info to the `GAMES` array in `app/page.tsx`
3. Use the `GameStateManager` for persistence:
```typescript
import { GameStateManager } from '../../lib/gameStateManager';

const gsm = GameStateManager.getInstance();
gsm.saveGameState('your-game-id', gameData);
const savedData = gsm.loadGameState('your-game-id');
```

## Architecture

- **Next.js 14**: React framework with App Router
- **TypeScript**: Type safety throughout
- **Tailwind CSS**: Utility-first styling
- **Local Storage**: Client-side persistence
- **GitHub Actions**: Automated deployment
- **Static Export**: Optimized for GitHub Pages

## Development Notes

- **No Server Required**: Everything runs client-side
- **Mobile Friendly**: Responsive design for all screen sizes
- **Offline Capable**: Games work without internet after initial load
- **Performance**: Optimized builds with static generation

## Contributing

Each game should follow these principles:
- **Start Simple**: Begin with minimal mechanics, add complexity gradually
- **Progressive Disclosure**: UI elements unlock as player progresses
- **Cross-Game Awareness**: Check for achievements/progress in other games
- **Thematic Coherence**: Games should feel connected to the broader world

---

## Game Design Philosophy

The Incremental Games Factory focuses on:
1. **Meaningful Progression**: Every action should feel purposeful
2. **Interconnected Systems**: Games reference and unlock each other
3. **Social Commentary**: Games can explore themes through mechanics
4. **Automation Balance**: Manual play that gradually becomes hands-off
5. **Discovery**: Let players uncover mechanics organically

Happy building! ☕🏭