MetaBuddy - The case for automated meta file checking

In this page we’ll talk about we came to build MetaBuddy, an automated meta file checking plugin for Unity.

MetaBuddy Screenshot

We’ll show you how MetaBuddy eliminated meta file problems from one of our projects and saved over a year of manual effort across the development team.

How we got here

We kept seeing a common theme in our consultancy engagements with Unity developers.

The teams we worked with often found Unity’s meta file system to be a bit mysterious.

The purpose of meta files, their role in the project, and how they should be version controlled were fuzzy areas for many members of the team.

Often we see a pattern were a single team member, often a lead engineer, has become the designated “meta file wrangler”. This person fixes the project’s meta files whenever they get inadvertently broken, usually by a bad commit to source control.

Then, as the team grows, breakages become more frequent and the pressure on the meta file wrangler increases as they are the critical path to keeping the project in good order.

We created this site to help developers learn about meta files and how to work with them effectively. We created the pre-commit checklist to help developers catch meta file problems before they get committed to source control.

Checklists, better but still manual

As we rolled the checklist out in day-to-day development, we found that it improved things, catching more meta file problems before they reached the wider team and ultimately the meta file wrangler.

But, it required developers to break their flow and carefully check each file before committing.

Some people forgot to do it, others rushed through it in a hurry to commit their work, some instantly fell asleep at the mention of the word “checklist”.

In short, the checklist reduced the number of problems, but it didn’t eliminate them entirely.

The key weakness of the checklist was that it requires humans to do careful inspection of every file in the commit. It’s a pretty boring and burdensome task, particularly for large commits.

Automation to the rescue

So, we created MetaBuddy to automate the process.

We took our learning from the checklist and encapsulated it in a Unity plugin that checks your files for meta file problems before you commit them.

MetaBuddy catches a wider range of meta file problems than the checklist, a total of 10 at the time of writing.

When it finds problems, it explains their cause and points the user in the right direction to fix them.

Results

Since we replaced the checklist with MetaBuddy on one of our projects we have seen the number of meta file problems reaching the team drop to zero.

On this particular project MetaBuddy has checked approximately 25,000 commits over a 9 month period.

If each of those commits would have taken 5 minutes for a developer to check manually, that’s a saving of 277 working days, more than a full working year.

And that’s before you factor in the time saved from diagnosing any problems that slipped past the checklist. The meta file wrangler can step down and go back to building a great game.

Where to get it

You can find out more about MetaBuddy and download it from the MetaBuddy product site

It’s a paid plugin (unless your project is Free and Open Source), but we have priced it aggressively so that the timed saved will be a net gain for your team.

We hope it helps make your development experience more enjoyable and helps your project run a little more smoothly.