Is there a way to specify a compatible Defold version when making bundles?

For example, I have an app (with live-update) that was built with Defold 1.6.0. And now I upgraded Defold to 1.9.0 to use for my new projects. There are many breaking changes (assuming) and the app sourcecode can’t work on this Defold version. Is there a way to build my app but using the old Defold sdk & APIs (1.6.0) from the current Defold Editor (1.9.0)?

If not, is there a way to have 2 Defold Editor versions on the same machine?

I think easiest way is to simply download an older bob.jar and use that.
You find them as always under the “Releases” page:

However, please note that we don’t support native sdk’s (our dmSDK) older than 6 months!
It may work, but it also may not.
The old sdk does exist, but it’s in fact our extender server that we need to keep updated (which is a fair amount of effort).
So, worst case, you’d also have to create and run your own old extender server.
But you can try to build it as a regular build first.

If you don’t use native extensions or app manifests, then it’s ok.

Note 2: Yes, you can have multiple editors installed as well.

1 Like

I recommend updating more often; it’s easier to track the changes.

Last week, I took a day off to update 5 games for Android that I hadn’t touched in a year (I think it was something like version 1.6.0). Here are the steps I did for each game to use the latest version of Defold:

  1. If you use an appmanifest, open it in the editor and reselect the options for physics.

  2. If your code uses gui.PROP_ROTATION (don’t forget to check animate), gui.set_rotation(), or gui.get_rotation(), replace them with gui.PROP_EULER, gui.set_euler(), and gui.get_euler() respectively (I use search in the project by keywords).

  3. The HTML5 template and dmloader have been completely changed. If you use custom templates or replace the dmloader, make the necessary changes.

  4. Check all the extensions you use and update them to compatible versions (for the latest Defold, it’s the latest version of the extension).

  5. If you use Spine animations, re-export them using the latest Spine (4.2).

I hope this will be useful for you.

4 Likes

But when it comes with live-update and you still want to support for old app versions that’s not easy to just update to new app :thinking:

Yes, I understand. Usually it’s solved by time-to-time force update.

Probably this builder can help you in some cases https://github.com/Insality/defold-deployer

You place the settings file at project root, which can be configured to specific Defold version (example). But it allows you to build & run the game from CLI, not from Defold Editor

Deployer also allows you to easily build your game on CI if someone is interested (example)

2 Likes

Looks great but I’m a Windows user. Not sure if it can work on a WSL, will try it later. Thanks for sharing mate!

Can we have a backup extender for old Defold versions that supports sdk older? 1, 2 or 3 years would be great :roll_eyes:

Also, is it possible to have an option in Defold Editor for using local bob.jar when building &making bundles? By that users will just click & run, no need to run commands from terminal

The support burden for us for such a rare case is not worth it.

We always promote updating to the latest version of Defold instead.
I don’t think it’ll be that many changes for you.