Skip to main content

Contributing

Help us improve Animatix Pro! This guide explains how you can contribute to the project, whether through code, documentation, examples, or community support.

🤝 How to Contribute

Code Contributions

Best For: Developers, programmers, technical users
Impact: High - Direct impact on core functionality
Requirements: C# knowledge, Unity experience, Git proficiency

Documentation Contributions

Best For: Technical writers, educators, community members
Impact: High - Helps all users learn and use Animatix Pro
Requirements: Writing skills, technical understanding, Markdown knowledge

Example Contributions

Best For: Artists, designers, content creators
Impact: Medium - Helps users learn through examples
Requirements: Animatix Pro knowledge, creative skills, project organization

Community Contributions

Best For: All users, community leaders, helpers
Impact: Medium - Builds community and helps other users
Requirements: Animatix Pro knowledge, communication skills, helpful attitude

💻 Code Contributions

Getting Started

  1. Fork the Repository:

    git clone https://github.com/oodestudios/animatix-pro.git
    cd animatix-pro
  2. Create a Branch:

    git checkout -b feature/your-feature-name
  3. Make Changes:

    • Follow our coding standards
    • Add tests for new features
    • Update documentation
    • Test on multiple platforms
  4. Submit a Pull Request:

    • Create a detailed description
    • Link related issues
    • Include screenshots/videos
    • Request review from maintainers

Coding Standards

C# Style:

// Use PascalCase for public members
public class MyClass
{
public string PublicProperty { get; set; }

// Use camelCase for private members
private string privateField;

// Use descriptive names
public void AnimateObject(GameObject target, float duration)
{
// Implementation
}
}

Unity Conventions:

// Use [SerializeField] for inspector fields
[SerializeField] private GameObject targetObject;
[SerializeField] private float animationDuration = 1f;

// Use [Header] for organization
[Header("Animation Settings")]
[SerializeField] private EasingType easingType = EasingType.EaseOut;

// Use [Range] for sliders
[Range(0f, 10f)]
[SerializeField] private float intensity = 1f;

Documentation:

/// <summary>
/// Animates the scale of a target object over time.
/// </summary>
/// <param name="target">The object to animate</param>
/// <param name="duration">Animation duration in seconds</param>
/// <param name="easing">Easing curve type</param>
/// <returns>Coroutine for the animation</returns>
public IEnumerator AnimateScale(GameObject target, float duration, EasingType easing)
{
// Implementation
}

Testing Requirements

Unit Tests:

[Test]
public void TestScaleAnimation()
{
// Arrange
var target = new GameObject();
var animation = new ScaleAnimationNode();

// Act
animation.TargetObject = target;
animation.StartScale = Vector3.one;
animation.EndScale = Vector3.one * 2f;
animation.Duration = 1f;

// Assert
Assert.AreEqual(target, animation.TargetObject);
Assert.AreEqual(Vector3.one, animation.StartScale);
}

Integration Tests:

[Test]
public void TestAnimationExecution()
{
// Test complete animation execution
// Verify all components work together
}

Performance Tests:

[Test]
public void TestAnimationPerformance()
{
// Test animation performance
// Ensure 60fps+ on target platforms
}

Pull Request Guidelines

Title Format: [Type] Brief description

  • [Feature] Add new easing curve type
  • [Fix] Resolve memory leak in animation system
  • [Docs] Update API documentation
  • [Example] Add VR interaction example

Description Template:

## Description
Brief description of changes

## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update

## Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
- [ ] Performance testing completed

## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] Tests added/updated
- [ ] No breaking changes (or documented)

## Screenshots/Videos
Include screenshots or videos demonstrating changes

## Related Issues
Closes #123

📚 Documentation Contributions

Types of Documentation

API Documentation:

  • Method descriptions
  • Parameter explanations
  • Return value details
  • Usage examples
  • Code samples

User Guides:

  • Step-by-step tutorials
  • Feature explanations
  • Best practices
  • Common workflows
  • Troubleshooting guides

Examples:

  • Complete example projects
  • Code snippets
  • Use case scenarios
  • Best practice demonstrations
  • Platform-specific examples

Writing Guidelines

Style:

  • Use clear, concise language
  • Write for your target audience
  • Use active voice
  • Include examples
  • Be consistent with terminology

Format:

  • Use Markdown formatting
  • Include code blocks with syntax highlighting
  • Add screenshots and diagrams
  • Use tables for structured data
  • Include links to related content

Content:

  • Start with an overview
  • Provide step-by-step instructions
  • Include troubleshooting tips
  • Add related resources
  • Keep content up-to-date

Documentation Structure

# Page Title

## Overview
Brief description of the topic

## Prerequisites
What users need to know/install

## Step-by-Step Guide
1. First step
2. Second step
3. Third step

## Examples
Code examples and use cases

## Troubleshooting
Common issues and solutions

## Related Topics
Links to related documentation

Review Process

  1. Draft Creation: Create initial draft
  2. Self-Review: Check for clarity and accuracy
  3. Peer Review: Get feedback from other contributors
  4. Technical Review: Verify technical accuracy
  5. Final Review: Final check before publication

🎨 Example Contributions

Example Project Guidelines

Project Structure:

ExampleProject/
├── README.md
├── ProjectSettings/
├── Assets/
│ ├── Scenes/
│ ├── Scripts/
│ ├── Prefabs/
│ └── Animations/
└── Documentation/
├── Setup.md
├── Usage.md
└── Customization.md

README Template:

# Example Project Name

## Description
Brief description of what this example demonstrates

## Features
- Feature 1
- Feature 2
- Feature 3

## Requirements
- Unity 2021.3+
- Animatix Pro 2.0+
- Additional dependencies

## Setup
1. Download and import the project
2. Open the scene
3. Follow the tutorial

## Usage
Step-by-step instructions

## Customization
How to modify the example

## Troubleshooting
Common issues and solutions

Example Quality Standards

Code Quality:

  • Clean, readable code
  • Proper comments
  • Error handling
  • Performance optimization
  • Platform compatibility

Documentation:

  • Clear setup instructions
  • Usage examples
  • Customization guides
  • Troubleshooting tips
  • Related resources

Visual Quality:

  • Professional appearance
  • Consistent styling
  • Clear visual hierarchy
  • Appropriate use of colors
  • Responsive design

Submission Process

  1. Create Example: Develop your example project
  2. Test Thoroughly: Ensure it works on multiple platforms
  3. Document: Create comprehensive documentation
  4. Submit: Submit via GitHub or email
  5. Review: Wait for review and feedback
  6. Iterate: Make requested changes
  7. Publish: Example gets published

🌟 Community Contributions

Community Moderation

Forum Moderation:

  • Help answer questions
  • Moderate discussions
  • Report inappropriate content
  • Guide new users
  • Share knowledge

Discord Moderation:

  • Welcome new members
  • Answer questions in real-time
  • Organize community events
  • Share tips and tricks
  • Help with technical issues

Content Creation:

  • Write blog posts
  • Create video tutorials
  • Share project showcases
  • Write case studies
  • Create learning materials

Community Guidelines

Be Respectful:

  • Treat everyone with respect
  • Use inclusive language
  • Be patient with beginners
  • Avoid personal attacks
  • Focus on constructive feedback

Be Helpful:

  • Answer questions when you can
  • Share useful resources
  • Provide constructive feedback
  • Help others learn
  • Contribute to discussions

Be Professional:

  • Use appropriate language
  • Stay on topic
  • Follow community rules
  • Respect others' time
  • Be constructive

Recognition Program

Contributor Levels:

  • Newcomer: 0-5 contributions
  • Helper: 6-20 contributions
  • Expert: 21-50 contributions
  • Master: 51-100 contributions
  • Legend: 100+ contributions

Recognition Benefits:

  • Special badges
  • Early access to features
  • Direct communication with team
  • Invitation to events
  • Merchandise rewards

🚀 Getting Started

First Contribution

  1. Choose Your Contribution Type:

    • Code: Fix a bug or add a feature
    • Documentation: Improve existing docs
    • Example: Create a tutorial project
    • Community: Help other users
  2. Find an Issue:

    • Look for "good first issue" labels
    • Check the issue tracker
    • Ask in the community forum
    • Contact maintainers
  3. Set Up Your Environment:

    • Fork the repository
    • Clone your fork
    • Set up development environment
    • Read the contribution guidelines
  4. Make Your Contribution:

    • Follow the guidelines
    • Test thoroughly
    • Document your changes
    • Submit for review

Development Setup

Prerequisites:

  • Unity 2021.3 or later
  • Visual Studio or VS Code
  • Git
  • GitHub account

Setup Steps:

  1. Fork the repository
  2. Clone your fork
  3. Open in Unity
  4. Install dependencies
  5. Run tests
  6. Start developing

Testing:

# Run unit tests
dotnet test

# Run integration tests
npm run test:integration

# Run performance tests
npm run test:performance

Code Review Process

  1. Self-Review: Check your own code first
  2. Automated Tests: Ensure all tests pass
  3. Peer Review: Get feedback from other contributors
  4. Maintainer Review: Final review by maintainers
  5. Merge: Code gets merged into main branch

📋 Contribution Checklist

Before Contributing

  • Read the contribution guidelines
  • Check existing issues and PRs
  • Set up development environment
  • Understand the codebase
  • Join the community

During Development

  • Follow coding standards
  • Write tests for new features
  • Update documentation
  • Test on multiple platforms
  • Get feedback from others

Before Submitting

  • Self-review completed
  • All tests pass
  • Documentation updated
  • No breaking changes
  • Follows contribution guidelines

After Submission

  • Respond to feedback
  • Make requested changes
  • Keep PR up-to-date
  • Be patient with review process
  • Celebrate your contribution!

🎉 What's Next?

Now that you know how to contribute:

📚 Learn More

🎯 Try These Examples


🎊 Contributing mastery achieved! You're ready to help improve Animatix Pro!

Thank you for contributing! Together, we can make Animatix Pro even better!