Contributing to R-Type
Welcome! This guide explains the different ways you can contribute to the R-Type project and helps you find the right resources for your contribution type.
Ways to Contribute
1. ๐ Improve Documentation
Help us keep our documentation clear, accurate, and comprehensive. No coding required!
What you can do:
- Fix typos or unclear explanations
- Add missing documentation sections
- Improve code examples and tutorials
- Update outdated information
- Translate documentation (future)
Where to start:
- Read the Documentation Guide to understand our documentation standards
- Check the Writing Guide for style and formatting rules
- Look for issues labeled
documentationon GitHub
Tools needed:
- Git (for version control)
- Text editor or Markdown editor
- GitHub account
2. ๐ Report Bugs
Found something broken? Help us fix it by reporting bugs clearly and completely.
What makes a good bug report:
- Clear description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, compiler version, etc.)
- Screenshots or error messages (if applicable)
Where to report:
- Open an issue on GitHub with the
buglabel - Include as much detail as possible
- Check if the bug is already reported before opening a new issue
3. โจ Suggest Features
Have an idea to make R-Type better? Share your feature requests!
What we're interested in:
- New game engine features
- Better logging capabilities
- Network improvements
- Performance enhancements
- Developer experience improvements
How to suggest:
- Open an issue on GitHub with the
enhancementlabel - Describe the feature and why it would be useful
- Provide examples or use cases if possible
- Discuss with maintainers before starting implementation
4. ๐ป Write Code
Contribute code improvements, new features, or bug fixes.
Before you start:
- Check Expectations for project requirements
- Understand the project structure and architecture
- Read the Game Engine documentation
- Look for issues labeled
good first issueorhelp wanted
What we need:
- Bug fixes with tests
- New features with documentation
- Performance improvements
- Code refactoring (with justification)
- Build system improvements
Code contribution process:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes
- Follow project coding standards
- Add/update tests
- Update documentation if needed
- Push to your fork
- Create a Pull Request
Code quality expectations:
- Code must be well-documented
- Tests must pass
- Follow C++ best practices (C++17/20)
- Maintain consistency with existing code style
- No external dependencies without justification
5. ๐งช Write Tests
Help us maintain code quality by writing and improving tests.
Test types we need:
- Unit tests for individual components
- Integration tests for system interactions
- Performance tests for critical paths
Where to start:
- Read Why Google Test? to understand our testing framework
- Check How to add new tests
- Look at existing tests for patterns
What to test:
- ECS components and systems
- Logger functionality
- Network protocols
- Game logic edge cases
6. ๐ Code Review
Review pull requests and help maintain code quality.
How to participate:
- Review open PRs on GitHub
- Suggest improvements
- Test the changes
- Check documentation updates
- Ensure code quality standards
Getting Started
Step 1: Understand the Project
- Read the Game Engine & Architecture overview
- Understand the ECS system
- Explore the Logger system
Step 2: Choose Your Contribution Type
Pick from the types listed above based on your interests and skills.
Step 3: Check Requirements
- For documentation: Follow the Writing Guide
- For code: Check Expectations
- For bugs/features: Comment on the issue first
Step 4: Make Your Changes
- Create a branch or fork
- Make your improvements
- Test thoroughly
- Write clear commit messages
Step 5: Submit Your Contribution
- Push to your fork/branch
- Create a Pull Request
- Provide clear description
- Link related issues
- Be patient for review
Questions?
- Check existing GitHub issues
- Read the relevant documentation
- Ask in pull request comments
- Contact project maintainers
Code of Conduct
Be respectful and constructive. We welcome everyone regardless of experience level!
Recognition
All contributors are valued! Your contributions help make R-Type better.
Thank you for contributing! ๐