Binary Incompatibility Handling

It looks like there’s not completely graceful handling yet for binary incompatibility. It would be a better experience if when a uproject is out of date that you don’t try to load any module dlls it has until it has been upgraded and part of the upgrade could be a recompile.

I guess this is as good as time as any, once the product has shipped what are your plans to maintain binary compatibility, if any? If I write a plugin, I want to able to safely distribute a version that I won’t need to update the day Rocket is patched to prevent a mob of angry (farming instrument) wielding users.

binaryincompatability.png

We are considering a few approaches to maintain binary compatibility for certain types of plugins as we would not want plugins to fail to load on every update, but we currently do not plan on supporting binary compatibility for games.

We are working on creating more pure interface APIs in the editor which will be nicer for binary compatibility. Plugins that only use these APIs will only need to be updated occasionally when the API changes. Not many existing systems work this way today.

As for games and plugins that do no use the systems described above, recompiling the binaries automatically when you open your game with a different version of Rocket is a possibility, but given that we can not be sure of the state of the code in your project we can not ensure the success of the compile (for example, the update changes the API and the code no longer compiles), thus the best we can do is a try-to-compile-and-see-what-happens approach which we fear may cause confusion if it fails. If it understood that updating your project always involves regenerating your project files and rebuilding your sln (as mentioned in the release notes), then the user does not have to “cross his/her fingers” to hope that the automatic updating system works.

Yeah I could see the confusion caused by auto compiling, maybe just not load out of date (game) modules instead?

I’m mostly trying to avoid being greeted or greeting lots of people with entry point not found messages on launch. Implemented in however best you guys see fit.

Thanks Bob!