godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.14k stars 93 forks source link

Add unit testing for importers and exporters #8394

Open fire opened 11 months ago

fire commented 11 months ago

Describe the project you are working on

The project involves developing a robust game using the Godot Engine, which frequently requires importing and exporting various assets including models, textures, and animations. The game's development relies heavily on the consistent and reliable functionality of Godot's importers and exporters.

Describe the problem or limitation you are having in your project

We are encountering regressions and compatibility issues with Godot's importers and exporters, particularly when updates or changes are made to the engine. This inconsistency leads to delays in development, increased debugging time, and overall instability in the asset integration process.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

The proposal is for a comprehensive unit testing approach for all Godot Engine importers and exporters. This approach would ensure each importer and exporter is tested in isolation with mocked data, covering various file formats. This enhancement would address regressions and compatibility issues, leading to a more stable and reliable asset integration process.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

If this enhancement will not be used often, can it be worked around with a few lines of script?

This enhancement is integral to the engine's core functionality and cannot be adequately addressed with a script. It requires integration into the engine's main repository and CI system to be effective.

Is there a reason why this should be core and not an add-on in the asset library?

The proposed testing approach is essential for the fundamental reliability and stability of the Godot Engine's asset importing and exporting capabilities. As such, it needs to be integrated at the core level to ensure that all updates and changes to the engine maintain a high standard of compatibility and functionality. An add-on would not provide the same level of comprehensive testing and would not be as effective in preventing regressions and compatibility issues.

Referenced Issues

fire commented 11 months ago

In the interest of practicality, I'm scoping this to the 3D pipeline since this was originally a glTF regression. Any efforts to improve other import and export areas are welcome though.