What 'needs to happen' to standardize a file format?
Super interesting question!
We're working with the Khronos Group to standardize our file format.
The first step was building up interest in the format, being very public about the problem that existed and what we were solving and why it was unique, talking to lots of people in the industry about it and spreading the word. This is by far the hardest step. It took us a year of talking to people about it and showing we could solve the problem and such for people to accept that it'd make a good standard in the industry.
We were actually approached by several people about making it a standard-- that was not our original plan at all. We joined the Khronos Group-- there's a membership specifically for smaller companies and another for individuals that's much much cheaper, to make it more accessible to all. We filled out the paperwork to join, and since there was already a lot of interest in standardizing it and we were the only ones working on this space we went straight to work on making the standard.
If you have a file format that you think would be a good standard, I'd say the first step is definitely that networking step, getting the word out. While you get the word out, you might find that others are working on the same exact problem. You should aim to find those people and collaborate with them, get on the same page, be all on the same team. Then talk to people about what standards body would be best to support your work. In our case the Khronos Group was a good fit because they were developing glTF-- a standard for 3D data. They also are very involved in GPUs, which our format interacts with closely. And they were actively interested in adding cross platform GPU compression to glTF.
There are pros and cons to standardizing a file format. One con is that you lose a bit of control once you put it in the wild as a standard-- it's not yours to keep anymore, anyone can edit it. But a big pro in our case is preventing a million competing standards. In our case our compression solution exists because there is no cross platform standard for GPU texture compression, and we're making one. If we didn't make it a standard, it'd lose one of the special things about it, it'd lose its truly cross platform nature. Making it a standard ensures that it's unbiased and encourages others to adopt it in their hardware and browsers.
Happy to answer follow ups on this too!
How do you go about becoming certain yourself that the standard is the right choice? Like, you've got this thing you want to push, but how do you push past the doubt about unknown unknowns to go all in on pushing for something?
I find myself very happy giving it depends answers to everything. Pushing a standard seems daunting.
I think the biggest thing is getting others' feedback. Start talking about it to people you trust, and developers in the industry. Because it doesn't matter how good an idea you think it is, you can't make it a standard if no one agrees with you. But even if you don't think it's that great, if others want it to be a standard, it should be one! Making standards is all about getting everyone on the same page, working with others, getting other people excited about it, making lots of folks want to use something. Talk to people!
In talking to people, you must be confident. I'm not saying you should walk into that conversation with "I think this is the best thing ever and should be a standard, take it or leave it!" :) I'm saying you should make sure the benefits of your work are clear, and don't distract with highlighting every bad thing about it. Let the other person judge for themselves. Be clear in your message.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.