Thank you for your interest in contributing to GM2Godot! We aim to make GameMaker to Godot conversion as smooth as possible, and your contributions help make this goal a reality.
-
Fork the Repository
- Click the "Fork" button at the top right of the GM2Godot repository
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/GM2Godot cd GM2Godot
-
Set Up Development Environment
- Install Python 3.9.0 or later
- Install required packages:
pip install Pillow markdown2 tkhtmlview
- For Linux users, install additional dependencies:
sudo apt-get install python3-tk python3-pil python3-pil.imagetk python3-markdown2
- Follow PEP 8 guidelines for Python code
- Use meaningful variable and function names
- Add comments for complex logic
- Keep functions focused and concise
- Use type hints where appropriate
- Maintain consistency with the existing dark theme
- Use the modern widget classes in
src/gui/modern_widgets.py
- Follow the existing pattern for styling and layout
- Test UI changes at different window sizes
When adding new asset conversion features:
- Create a new converter class in
src/conversion/
- Follow the existing converter pattern
- Add appropriate error handling
- Include progress reporting
- Add the new feature to the settings UI
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Write clean, documented code
- Follow the project's code style
- Test your changes thoroughly
-
Commit Your Changes
- Use clear, descriptive commit messages
- Keep commits focused and atomic
- Example format:
git commit -m "feat: Add support for converting GameMaker sequences"
-
Push to Your Fork
git push origin feature/your-feature-name
-
Create a Pull Request
- Go to the GM2Godot repository
- Click "New Pull Request"
- Select your fork and branch
- Fill out the PR template
- Add screenshots for UI changes
Before submitting a PR:
- Test your changes with both GameMaker and Godot projects
- Verify the UI works at different resolutions
- Check that existing features still work
- Test on different platforms if possible
We particularly welcome contributions in these areas:
- GML to GDScript conversion
- Additional asset type support
- UI/UX improvements
- Documentation improvements
- Bug fixes
- Performance optimizations
To localize GM2Godot into other languages, create a copy of the Template.json file found in the Languages folder in GM2Godot's root directory. Rename the file to the chosen language's ISO-639 (Set 3) code (for example, eng for English). Refer to Wikipedia for a list of languages and their corresponding ISO-639 codes. More information regarding localization can be found in the README section of the Template.json file (GitHub copy)
- Check existing issues
- Create a new issue for bugs or feature requests
- Join our community discussions (Add community links)
- Be respectful and inclusive
- Help others learn and grow
- Focus on constructive feedback
- Follow the project's code of conduct (Add link if available)
By contributing to GM2Godot, you agree that your contributions will be licensed under the same license as the project (Add license information).