Nate wroteYour animators freeze their editor version to match the runtimes version your developers are using. The versions of both the editor and runtimes are updated at the same time.
Wow! It means we must carely and fearly look at each update of Spine? First look is there updated runtimes which support all new features and only after that update Spine editor? Sounds kidding. It's can't be considered as production decision. It will be better to release both editor and runtimes at same time. And yes, it will be better to release runtimes for all languages at same time with editor. If you woun't care about compatibility, only such decision can be considered as production one.
Nate wroteFlatBuffers are not magic. There are costs for the features it provides. Our format is faster because it does only what it needs and it can make assumptions about the data that a general purpose serialization library cannot.
I wish to see some facts about it. Why binary deserialization format can be faster than flat-coverage one? How per-byte reading can be faster than tree of pointers to ready-to-read data?
What we have now here: https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-c
SkeletonData is the tree of pointers. It's creation costs definitely huge time cuz not only of json reading, but cuz of that ton of malloc operations. Even if i will rewrite current json parser, time consumed to skeleton data creation still will be dramaticaly huge.
What flatbuffers can give us here. Not so much, but only binary file with initially baked skeleton data. And now i don't need to allocate memory, i just need to read file into memory. It's totally overwhelming performance over data deserialization.
Both skeleton data and skeleton can be baked into such file, each skeleton can be copied into RW memory to give it possibility of modification.
Moreover, flatbuffers formats frequently used as network data protocol.
I frequently design data formats using flatbuffers. I use it as scene graph format in my framework, but not only there. Models, resource packs, obfuscated objects for data-driven. I use a lot of file formats and don't care about time it consume on load cuz it consumes very small time. I have designed plugins for 3D editors, Particle editors, Photoshop, a lot of small internal tools. All of them uses flatbuffers for saving files.
Every such file represents the ready to use image of dynamic memory.