mirror of
https://github.com/johndoe6345789/ArenaFPS.git
synced 2026-04-25 06:04:57 +00:00
5.0 KiB
5.0 KiB
Contributing to Unreal3Arena
Thank you for your interest in contributing to Unreal3Arena! This document provides guidelines and instructions for contributing to the project.
Getting Started
-
Fork the repository
-
Clone your fork
git clone https://github.com/YOUR_USERNAME/Unreal3Arena.git cd Unreal3Arena -
Run setup script
./setup.sh -
Create a feature branch
git checkout -b feature/your-feature-name
Development Workflow
Prerequisites
- Unreal Engine 5.7 installed
- Python 3.11+ with pip
- Git for version control
- Text editor or IDE (VS Code, Visual Studio, Rider, etc.)
Project Structure
Unreal3Arena/
├── Plugins/GameFeatures/ArenaFPS/ # Game mode plugin
│ ├── Source/ # C++ source code
│ ├── Content/ # Blueprints and assets
│ └── README.md # Plugin documentation
├── Tools/ProceduralGeneration/ # Python generators
│ ├── arena_generator.py
│ ├── weapon_generator.py
│ └── test_*.py # Unit tests
└── .github/workflows/ # CI/CD pipelines
Making Changes
C++ Code Changes
- Make your changes in the appropriate source files
- Follow Unreal Engine coding standards
- Build the project in Unreal Editor
- Test your changes
Python Code Changes
- Make changes to generator scripts
- Add/update unit tests
- Run tests locally:
cd Tools/ProceduralGeneration python -m pytest test_*.py -v - Generate assets to verify:
python generate_all.py
Testing
Python Tests
Run all tests:
cd Tools/ProceduralGeneration
python -m pytest -v
Run specific test file:
python test_arena_generator.py
Unreal Engine Tests
- Open project in Unreal Editor
- Run any existing automation tests
- Manually test gameplay changes
Code Quality
Python
- Follow PEP 8 style guide
- Add docstrings to functions and classes
- Keep functions focused and testable
- Add type hints where appropriate
C++
- Follow Unreal Engine coding standards
- Use appropriate Unreal macros (UCLASS, UFUNCTION, UPROPERTY)
- Add comments for complex logic
- Keep header files clean and minimal
Commit Messages
Follow conventional commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(bot): Add advanced pathfinding for bots
fix(arena): Correct platform height calculation
docs(readme): Update installation instructions
test(generator): Add tests for weapon generation
Pull Request Process
- Update documentation if needed
- Add tests for new features
- Ensure all tests pass
cd Tools/ProceduralGeneration python -m pytest -v - Push to your fork
git push origin feature/your-feature-name - Open a Pull Request on GitHub
- Describe your changes in the PR description
- Wait for review and address any feedback
PR Checklist
- Tests added for new features
- All tests passing
- Documentation updated
- Code follows project style guidelines
- Commits follow conventional commit format
- No merge conflicts
Areas for Contribution
High Priority
- Weapon System: Implement Arena FPS weapons (Rocket Launcher, Railgun, etc.)
- Pickup System: Health and armor pickups
- Movement System: Strafe jumping and bunny hopping
- HUD: Score display, health/armor indicators
Medium Priority
- Bot Improvements: Better pathfinding, difficulty levels
- Game Modes: Team Deathmatch, Capture the Flag
- Maps: More procedural map templates
- Effects: Particle effects for weapons
Low Priority
- Powerups: Quad Damage, Haste, etc.
- Spectator Mode: Watch other players
- Demo Recording: Record and replay matches
- Modding Support: Plugin system for custom content
Code Review Process
All submissions require review before merging:
- Automated checks must pass (CI/CD)
- Code review by maintainers
- Testing in development environment
- Documentation review if applicable
Community Guidelines
- Be respectful and constructive
- Help others learn and improve
- Focus on the code, not the person
- Accept and provide constructive feedback
- Follow the code of conduct
Questions?
- Open an issue for bugs or feature requests
- Join discussions in existing issues
- Check documentation first (README.md, plugin docs, etc.)
License
By contributing, you agree that your contributions will be licensed under the same license as the project.
Thank You!
Your contributions help make Unreal3Arena better for everyone. We appreciate your time and effort!