hockey-manager/README.md
Pierre Wessman 0eb0574fbd init
2025-09-16 10:30:13 +02:00

152 lines
5.5 KiB
Markdown

# Hockey Manager - 2D Match Engine
A JavaScript-based 2D hockey match engine for web browsers featuring realistic physics, AI players, and complete hockey rules implementation.
## Features
### Core Game Engine
- **60 FPS game loop** with requestAnimationFrame
- **Physics system** with collision detection and realistic puck/player movement
- **Game state management** with time tracking, scoring, and statistics
- **Event-driven architecture** for game events and interactions
### Gameplay Features
- **12 players** (6 per team) with distinct roles (C, LW, RW, LD, RD, G)
- **Realistic hockey rules**: offsides, icing, penalties, power plays
- **Player AI behaviors**: puck handling, passing, shooting, checking, formations
- **Complete hockey rink** with proper dimensions, goals, creases, and faceoff dots
- **Live statistics** tracking shots, saves, hits, penalties, ice time
### Visual Features
- **2D Canvas rendering** with smooth animations
- **Hockey rink visualization** with proper lines, zones, and markings
- **Player sprites** with team colors and role indicators
- **Puck physics** with trail effects and realistic bouncing
- **Camera system** with zoom and follow capabilities
- **Particle effects** for goals, saves, and collisions
### Controls & UI
- **Real-time scoreboard** with period and clock display
- **Game statistics panel** showing shots, saves, and penalties
- **Interactive controls** for play/pause, speed adjustment, and reset
- **Keyboard shortcuts** for quick game control
- **Responsive design** that adapts to screen size
## Project Structure
```
hockey-manager/
├── index.html # Main HTML entry point
├── css/
│ └── styles.css # Game styling and UI
├── src/
│ ├── engine/
│ │ ├── game-engine.js # Main game engine
│ │ ├── game-state.js # Game state management
│ │ └── main.js # Application initialization
│ ├── entities/
│ │ ├── player.js # Player entity with AI
│ │ └── puck.js # Puck physics and behavior
│ ├── systems/
│ │ ├── renderer.js # 2D rendering system
│ │ ├── physics-system.js # Physics calculations
│ │ ├── ai-system.js # AI formation and strategy
│ │ └── rules-system.js # Hockey rules enforcement
│ └── utils/
│ ├── vector.js # 2D vector mathematics
│ └── physics.js # Physics utility functions
```
## Getting Started
1. **Open the game**: Simply open `index.html` in a modern web browser
2. **Start playing**: The game will automatically initialize and start
3. **Use controls**:
- **Space**: Pause/Resume
- **D**: Toggle debug mode
- **R**: Reset game
- **Mouse wheel**: Zoom in/out
- **F11**: Toggle fullscreen
## Controls Reference
### Keyboard Controls
- `SPACE` - Pause/Resume game
- `D` - Toggle debug information display
- `R` - Reset game to initial state
- `F11` - Toggle fullscreen mode
### Mouse Controls
- `Mouse Wheel` - Zoom camera in/out
- `Click buttons` - Use UI controls for game management
### UI Controls
- **Play/Pause** - Start/stop game simulation
- **Speed Control** - Adjust game speed (0.5x, 1x, 2x, 4x)
- **Reset Game** - Return to initial game state
## Game Mechanics
### Player AI
Each player has sophisticated AI that includes:
- **Role-based behavior** (forwards vs defensemen vs goalie)
- **Formation positioning** based on game situation
- **Puck awareness** and decision making
- **Teammate cooperation** for passing and positioning
- **Opponent pressure** and defensive reactions
### Physics System
- **Realistic puck physics** with momentum and friction
- **Player collision detection** and response
- **Board bouncing** with energy conservation
- **Goalie save mechanics** based on skill attributes
### Hockey Rules
- **Offside detection** when players cross lines ahead of puck
- **Icing calls** for long shots across multiple zones
- **Penalty system** for infractions like checking and interference
- **Power play situations** with player advantages
- **Faceoff mechanics** at center ice and zone dots
## Technical Details
### Performance
- Optimized 60 FPS rendering
- Efficient collision detection
- Smooth camera interpolation
- Responsive UI updates
### Browser Compatibility
- Modern browsers with HTML5 Canvas support
- Chrome, Firefox, Safari, Edge
- Mobile browsers (with touch controls)
### Customization
The engine is highly modular and can be extended with:
- Custom player attributes and skills
- Different team formations and strategies
- Additional hockey rules and penalties
- Enhanced visual effects and animations
- Sound effects and music integration
## Development
The codebase is organized into clean, modular components:
- **Entity-Component system** for game objects
- **Event-driven communication** between systems
- **Separation of concerns** (rendering, physics, AI, rules)
- **Utility libraries** for common operations
## Future Enhancements
Potential improvements include:
- **Sound system** with hockey arena audio
- **Advanced AI** with machine learning behaviors
- **Multiplayer support** for online matches
- **Tournament mode** with brackets and playoffs
- **Player statistics** tracking across multiple games
- **Save/load functionality** for game states
---
*This 2D hockey match engine provides a complete foundation for hockey management games, featuring realistic gameplay mechanics and professional-quality code architecture.*