Thank you for your interest in contributing to The End The Beginning - Dungeon Escape Game! This document provides guidelines for contributing to the project.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/TheEndOfTheBeginning.git - Navigate to project:
cd TheEndOfTheBeginning/TheEndTheBeginning - Build the project:
mvn clean compile - Run the game:
mvn javafx:run
- Read the CODE_OF_CONDUCT.md
- Check TODO.md for current tasks and bugs
- Review RELEASE_NOTES.md to understand recent changes
- Check existing Issues and Pull Requests
- Java 17 or higher
- Maven 3.6+
- Git
- A Java IDE (IntelliJ IDEA, Eclipse, or VS Code recommended)
cd TheEndTheBeginning
mvn clean compile # Compile the project
mvn javafx:run # Run the game
mvn package # Build JAR fileSee PROJECT_STRUCTURE.md for detailed project organization.
- Use Java 17 features
- Follow standard Java naming conventions
- Use meaningful variable and method names
- Add JavaDoc comments for public methods and classes
- Keep methods focused and reasonably sized
/**
* Saves the current game state to a file.
*
* @param player The player object to save
* @param dungeonLevel Current dungeon level
* @return true if save was successful, false otherwise
*/
public static boolean saveGame(player player, int dungeonLevel) {
// Implementation
}- Follow existing style patterns in
game-style.css - Use descriptive class names
- Comment complex style rules
- Check if the bug is already reported in Issues
- If not, create a new issue using the bug report template
- Include:
- Clear description of the bug
- Steps to reproduce
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
- Java version and OS
- Check TODO.md to see if it's already planned
- Check existing feature request issues
- Create a new issue using the feature request template
- Explain:
- What problem does it solve?
- How should it work?
- Why is it beneficial?
git checkout -b feature/your-feature-name
# or
git checkout -b bugfix/issue-number-description- Write clean, readable code
- Test your changes thoroughly
- Update documentation if needed
- Follow the existing code style
Use clear, descriptive commit messages:
git commit -m "Add sound effects for combat actions"
# or
git commit -m "Fix save file corruption when player level > 50"git push origin feature/your-feature-name- Go to the original repository on GitHub
- Click "New Pull Request"
- Select your branch
- Fill out the PR template
- Link related issues (e.g., "Fixes #123")
Before submitting a PR:
- Build the project:
mvn clean compile - Run the game:
mvn javafx:run - Test your changes thoroughly
- Test edge cases
- Verify no regressions in existing features
Currently, the project uses manual testing. Automated tests are welcome contributions!
Update documentation when you:
- Add new features
- Change existing functionality
- Fix bugs that affect user behavior
- Add dependencies or change build process
- README.md - User-facing changes
- CHANGELOG.md - Version history
- TODO.md - Task updates
- Code comments - Inline documentation
- JavaDoc - API documentation
If you're working with FXGL features:
- Read FXGL_INTEGRATION.md
- Check GAME_ENGINES.md for context
- Test compatibility with existing JavaFX code
- Document new FXGL usage patterns
If you discover a security vulnerability:
- DO NOT open a public issue
- Follow the process in SECURITY.md
- Report privately through GitHub Security Advisories
Before submitting your PR, ensure:
- Code builds successfully (
mvn clean compile) - Game runs without errors (
mvn javafx:run) - Changes are tested manually
- Code follows project style guidelines
- Documentation is updated (if needed)
- Commit messages are clear and descriptive
- PR description explains what and why
- Related issues are linked
Look for issues tagged with:
good first issue- Great for newcomershelp wanted- Community help neededdocumentation- Documentation improvements
- Start small - fix a typo, improve documentation
- Ask questions if unclear - use GitHub Discussions or Issues
- Be patient - reviews may take time
- Be respectful - follow the Code of Conduct
- Keep PRs focused - one feature or bug fix per PR
- Write clear PR descriptions
- Respond to review feedback promptly
- Don't take feedback personally - it's about the code
- Fix typos and unclear explanations
- Add examples and clarifications
- Improve formatting and organization
- Keep language clear and concise
- Issues: Ask questions or report problems
- Pull Requests: Discuss code changes
- Discussions: General project discussions (if enabled)
Contributors are recognized in:
- Git commit history
- GitHub contributors page
- Release notes (for significant contributions)
- README.md - Project overview
- CHANGELOG.md - Version history
- RELEASE_NOTES.md - Detailed releases
- TODO.md - Roadmap and tasks
Your contributions help make The End The Beginning better for everyone. Whether you're fixing bugs, adding features, improving documentation, or helping others, your efforts are appreciated!
Happy Coding! ⚔️🏰