Thank you for your interest in contributing to this authentic recreation of the 1983-1986 CBS game show!
- Rust 1.70 or later
- Linux:
libasound2-dev(ALSA development libraries) - macOS: No additional dependencies
- Windows: No additional dependencies
# Clone the repository
git clone https://github.com/doublegate/PressYourLuck.git
cd PressYourLuck
# Build in debug mode
cargo build
# Build optimized release
cargo build --release
# Run the game
cargo run --release- Follow standard Rust conventions (
cargo fmt) - Ensure zero clippy warnings (
cargo clippy -- -D warnings) - All code must compile without warnings
This project prioritizes faithfulness to the original 1983-1986 CBS television show. When contributing:
- Research the original show - Watch episodes, study the Big Board layout, listen to sound effects
- Match the era - Prize values, graphics style, and music should reflect mid-1980s television
- Preserve game mechanics - The original rules (passing spins, 4 Whammies, etc.) must be maintained
- Additional trivia questions (1980s pop culture, general knowledge)
- More Whammy animation variations
- Sound effect refinements
- Cross-platform testing (Windows, macOS, WASM)
- Accessibility features
- Configuration options
- Save/load game state
- Network multiplayer
- Original show episode analysis
- Authentic prize catalog from 1983-1986
- Original musical cues and stingers
This project generates all assets procedurally:
- Audio: 44.1kHz 16-bit PCM synthesis with ADSR envelopes
- Graphics: Vector-style rendering via macroquad
- No external assets: Everything is code-generated
When adding features, maintain this philosophy. External asset files should be avoided.
- Fork the repository and create a feature branch
- Make your changes following the code style guidelines
- Test thoroughly - ensure
cargo buildandcargo clippypass cleanly - Write a clear PR description explaining what and why
- Reference any issues being addressed
Follow conventional commits:
feat: add new Whammy animation for "bowling strike"
fix: correct LED score display digit alignment
docs: update README with macOS build instructions
refactor: extract audio synthesis into separate module
When reporting bugs, please include:
- Operating system and version
- Rust version (
rustc --version) - Steps to reproduce
- Expected vs actual behavior
- Console output or error messages
- Be respectful and constructive
- Focus on the code, not the person
- Welcome newcomers and help them contribute
- Keep discussions on-topic
By contributing, you agree that your contributions will be licensed under the MIT License.
Open a GitHub issue for questions about contributing. We're happy to help!