Opened 13 months ago

Last modified 12 months ago

#129 new enhancement

Rebuild levels if package contents were changed

Reported by: Iritscen Owned by: Alloc
Priority: major Component: AEI2
Keywords: Cc:


We got a request from s10k that I think is worth considering. As a modder, he feels discouraged from building a mod package for his new level and using the AEI to reinstall it continuously during development because the AEI will rebuild a whole set of levels instead of just the ones with his changed files. Thus he prefers to just manually change and rebuild levels 0 and 31 (his level's number) without using packages.

I know the AEI already tries to be smart and only rebuild levels with changed mod selections, but in this case there's no change in the selection, only in the contents of a package. His suggestion was:

"I think you could detect if the package has changed with the following info:

  • number of files of the package in the last installation vs number of files in the current installation
  • modified date of all files of the package in the last installation vs modified date of all files in the current installation
  • md5 (or any other hash of your choice) of all files of the package in the last installation vs md5 of all files in the current installation

If any of the conditions above for any file differs from previous installation you know that the package contents have been changed (and then proceed to the re-installation).

You would need to save the previous installation information somewhere (maybe sqlite or even a file)."

Does this sound reasonable? I think that s10k is not the only modder who has been manually editing his level files. Paradox tends to do the same thing, and I think it's because we haven't given them a convenient enough workflow.

Change History (5)

comment:1 Changed 12 months ago by Alloc

Hm, confused here. AEI *does* already reinstall the mods, even if there's no selection change. It doesn't care if the contents are changed, it just applies whatever is selected.

The selection (and changes therein) is only used to determine which levels *not* to update by looking at what levels were affected by the previous (possibly same) selection and the new selection. Everything that's affected by either is rebuild.

So what exactly is the goal in this one?

comment:2 Changed 12 months ago by Iritscen

Currently, if the user chooses a set of mods and hits Install, the affected levels will be rebuilt. Then, if he changes one mod and hits Install, all the levels affected by the total mod selection will be rebuilt again. s10k was asking if the AEI could just rebuild the level(s) affected by the mod that was changed.

comment:3 Changed 12 months ago by Alloc

But what's the big advantage? I suppose for mod development you don't need to have a hundred mods selected but just the one or two that you're actually working with? And that way installing the mods should just take a few seconds (tried it today with 5 affected levels and the whole install took just 12s).

comment:4 Changed 12 months ago by Iritscen

s10k is finding that it takes almost a minute for him to install, as opposed to 10 seconds to rebuild levels 0 and 30 manually from folders of .oni files. His mod-in-progress is apparently dependent on almost 30 other mods, so that's probably why it takes longer for him.

comment:5 Changed 12 months ago by s10k

Hi guys.

So Iritscen already said most of it.

Let me just add that personally I can live without this feature. Vago especially with the "projects" feature makes it really easy to do the conversion of level0 and level31.

If this gets added to AEI it will be nice though, but it is not a feature that needs to be rushed imo. I know that this can give a lot of work to implement and since we have alternatives I don't think it should be prioritized that much.

Note: See TracTickets for help on using tickets.