The only way to not have an SDK change and not require a recompile is to not advance and improve the software.
Technically that is not correct. Obviously it’s harder to make an SDK that is backward compatible but that is what it’s done routinely by the authors of our OSes. Otherwise any new update of Mac OS, Windows or Linux would break all the applications previously made for them. A program is an “OS plugin”, it runs inside the OS and calls services in the OS API. When a new version of the OS is released the old applications still run. That is because the underlying set of service calls, the API, has been kept unbroken. The old applications will not be able to take advantage of the new OS features but that is expected.
There is no technical obstacle in making a version of Studio that is backward compatible and that can run the old plugins. It is necessary to make sure to not break old APIs and to keep binary compatibility with the memory structures published previously. It’s more work but it’s definitely, IMHO, worth the effort.
It is particularly hard on developers like me to have to follow every single build of Studio because the SDK is made to not load plugins compiled with a previous build. For example, the DS4.5RC1, RC2, RC3 and final build were all backward incompatible. It takes a long time to:
- Download the SKD for Mac OS
- Download the SDK for Windows
- Download Studio for Mac OS
- Download all the DS plugins for Studio for Mac OS (GoZ etc)
- Download Studio for Windows
- Download all the DS plugins for Studio for Windows OS (GoZ etc)
- Install all the above on Mac and Windows machines
- Compile the Mac OS plugin for DS4 32 bit and DS4 64 bit
- Compile the Window plugins for DS4 32 bit and DS4 64 bit
- Install all four versions and test them individually
- Package the installers and send them to the beta testers.
I made the list a bit detailed, a few things were left out, to illustrate how laborious this procedure is.
Making an update like Reality 2.5 actually made me lose money. There are no new features in the plugin that can entice new customers to upgrade and the whole operation took days of development time.This build was required only to keep up with Studio. In this money-losing scenario it is simply unbearable to go through the above procedure several times.
I hope that future releases of Studio will improve this situation, it will benefit both users and developers.