A fast-paced 2D potion brewing game built with JavaScript and HTML5 Canvas.
Players must prepare magical potions under pressure by gathering ingredients, processing them correctly, brewing recipes, bottling potions, and delivering orders before time runs out. As the game progresses, the heat level rises, increasing difficulty and accelerating gameplay intensity.
In Over Brewed, players manage a chaotic potion brewing station inspired by classic cooking games.
The gameplay loop includes:
- Collecting ingredients and potion bases
- Processing ingredients through cutting and crushing stations
- Brewing ingredients inside cauldrons
- Bottling finished potions
- Delivering correct orders before timers expire
- Managing rising difficulty through the heat system
Incorrect brews, overbrewed potions, and failed deliveries cost the player valuable lives.
| Key | Action |
|---|---|
| W A S D | Move |
| E | Pick Up / Place |
| F | Use Station |
| R | Open Recipe Menu |
| ESC | Pause |
npm installnpm startnpm run build- Ingredient processing system
- Brewing and overbrewing mechanics
- Potion recipe system using bitmask combinations
- Dynamic order generation
- Delivery validation system
- Lives and game over system
- Heat progression system
- Adaptive gameplay difficulty and music
- Dynamic soundtrack system
- Heat-based music transitions
- Context-sensitive sound effects
- Event-driven systems using a custom event bus
- State-based game flow management
- Separated gameplay logic and rendering systems
- Responsive canvas scaling
The project uses a lightweight custom event system to decouple gameplay systems from audio and UI systems.
Example:
emit("new_order");Listeners can react independently:
on("new_order", () => {
playSound("newOrder");
});This architecture keeps gameplay logic modular and scalable.
- Tutorial level
- Visual effects and particles
- Leaderboard
- Upgrades and Specialization
- Artemis Mohammadinia
- Sepehr Seddighi
MIT License