Thank you for your interest in contributing to the Russian Roulette game project! This document provides guidelines and information for contributors.
This project is designed for the SLOP 5.0 event at GDG DA-IICT, focusing on:
- Collaborative game development learning
- Godot Engine skill building
- GDScript programming practice
- Open source contribution experience
- Godot Engine 4.3+ installed
- Basic understanding of GDScript
- Git and GitHub account
- Code editor (VSCode, Cursor AI recommended)
- Fork the repository to your GitHub account
- Clone your fork locally:
git clone https://github.com/ossdaiict/SLoP5.0-Game-Development cd Russian-Roulette - Open the project in Godot Engine
- Create a new branch for your feature:
git checkout -b feature/your-feature-name
- 🟢 beginner: Perfect for first-time contributors (1-3 hours)
- 🟡 intermediate: Requires some Godot experience (3-6 hours)
- 🔴 advanced: Complex features requiring deep knowledge (6+ hours)
- 🎮 gameplay: Core game mechanics
- 🎨 ui: User interface and visual design
- 🔊 audio: Sound effects and music
- 🤖 ai: Artificial intelligence and dealer logic
- 🧪 testing: Bug fixes and quality assurance
- 📚 documentation: README, comments, tutorials
- Use snake_case for variables and functions
- Use PascalCase for class names
- Add meaningful comments for complex logic
- Keep functions focused and under 50 lines when possible
- Use signals for decoupled communication between systems
- Place scripts in appropriate subdirectories
- Name files clearly indicating their purpose
- Keep scenes organized by functionality
- Use consistent naming conventions
Before submitting a PR:
- Test your feature thoroughly in Godot's run mode
- Ensure no script errors in the console
- Verify UI elements display correctly
- Test edge cases and error conditions
- Check compatibility with existing features
Use clear, descriptive commit messages:
Add dealer AI decision-making logic
- Implement probability calculations for shell decisions
- Add item usage strategy based on game state
- Include difficulty scaling for AI behavior
- Read the issue description carefully
- Comment to claim the issue before starting work
- Ask questions if requirements are unclear
- Follow the provided code templates and method signatures
- Test thoroughly before submitting
Each script includes template methods with:
- Method signatures
- Parameter documentation
- Expected return types
- Implementation guidelines in comments
- Feature works in Godot run mode
- No console errors or warnings
- Code follows project style guidelines
- Comments added for complex logic
- Tested with different scenarios
## What does this PR do?
Brief description of the feature/fix
## Issue Reference
Closes #[issue-number]
## Changes Made
- List of specific changes
- New files added
- Modified existing functionality
## Testing Done
- Describe how you tested the feature
- Include screenshots if UI changes
- Note any edge cases tested
## Additional Notes
Any additional context or considerations- Submit pull request with clear description
- Automated checks will run (if configured)
- Maintainers will review code and functionality
- Address any feedback or requested changes
- Once approved, changes will be merged
- Use dark, gritty theme with neon accents
- Maintain consistent color palette
- Keep file sizes optimized for performance
- Use PNG for UI elements, JPG for backgrounds
- Keep volume levels consistent
- Use OGG format for compatibility
- Include both subtle and intense variations
- Ensure audio loops seamlessly if applicable
- Readable at different screen sizes
- Fits the game's dark/neon aesthetic
- Licensed for open source use
When reporting bugs:
- Use the bug report template
- Include steps to reproduce
- Describe expected vs actual behavior
- Include Godot version and OS
- Add screenshots/videos if helpful
For new features:
- Check existing issues first
- Describe the feature clearly
- Explain the benefit to gameplay
- Consider implementation complexity
- Discuss with maintainers before large changes
- Be respectful and inclusive
- Help other contributors learn
- Share knowledge and resources
- Provide constructive feedback
- Celebrate contributions of all sizes
- Comment on issues for feature-specific questions
- Join our Discord server for real-time discussion
- Create GitHub discussions for general questions
- Check existing documentation first
Contributors will be recognized in:
- README contributors section
- In-game credits screen
- SLOP 5.0 event presentations
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to Russian Roulette! Happy coding! 🎮