Jump to content

[Split] Mod Manager -> Mod Downloader + Mod Configurator (Modification, Addons & Maps)


Recommended Posts

  • Replies 58
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

If you'd like a mod manager implemented, some design mockups and functionality guidelines would be a good start.

We settled to finally get rid of the manual total_size attribute in the mod.json. We integrated a version number. Dependency checking now includes version number. Allowed are "mod version", "mod>v

If someone is planning to work on this, you can take a look at ps/gameSetup/GameSetup.cpp. That's the point where the VFS (virtual file system) gets initalised and where the different mod directories

Posted Images

thx. I somehow tried to make clear which buttons operate on which list. (that's why I placed them such that they always stretch over the whole list, a bit weird. let's try alternatives.)

perhaps I should color the buttons differently. Or simply use arrows for up and down (which would not need translations).


Also the sort by would be better if a click on the heading would initiate the sort after this certain column. Though I still not found a way to do that. We might have to live with the sort by dropdown.

post-15921-0-78850500-1402763075_thumb.j

post-15921-0-23423100-1402763103_thumb.j

Link to post
Share on other sites

Looking promising. One thing I can't see that is probably one of the more important things to have is version, both mod version and game version. Not sure what "Mod label" is though? Perhaps that's meant to be something like that.

  • Like 2
Link to post
Share on other sites

You are correct, it's missing. I think leper already has it on the C++ side but I forgot it.

To have the version in a separate GUI field (instead of label/name or description) would definitely ease dependency checking.


I'm still struggling to get the test data to show up. Without this data I can't really fully debug all the other buttons/functionality.

Link to post
Share on other sites

thx to sander's help sorting now works. filtering also works. I would even say, it's short before a fully functional GUI.

I will next try to include leper's real mods folder data. That should also work already. The mod version column I will also add.

post-15921-0-87180400-1402833274_thumb.j

Link to post
Share on other sites

I wonder if we should include the version number in the Mod Folder Name (1st column)? Otherwise we needed to somehow add the version number to the depedency column too. It looks easiest to simply check if the foldername matches (when checking dependencies).

Enabling and removing an enabled mod works too. When selecting a row from the upper list of available mods, and clicking Enable, then the mod appears in the bottom list, where the order might be specified.

Changing the order of the enabled mods also works, but the GUI lists are not yet updated.

Link to post
Share on other sites

If I could commit it it would improve.

Have changed the colors to a lighter blue.

If I knew how to break lines then I would have done it already. As always trial and error is cumbersome and costs too much time. I will grep for it and check the GUI reference, then I'll leave it to someone else who feels like randomly adding attributes to the GUI objects that overflow would be fun.

Link to post
Share on other sites

We don't have a very "responsive" UI. So most of the time we need a variable text length, we either use tooltips (history screen, unit train tooltips, ...), or we use scrollbars (lobby and game setup chat screen, or game manual).

Setting the size of a gui element based on its content is a difficult calculation that depends on the font size, language, ...

Link to post
Share on other sites

Fixed the filter by type.

Next adding dependency checking, already begun.

Also the mod-info-files (json) for Millennium (Medieval), Aristeia (Bronze Age), Han China (Iron Age), Lustanians (Iron Age) have been added.

leper has done a good job.

Link to post
Share on other sites

Is it fine if we show the description as tooltip only? That is when hovering above any column of a mod's data row?

Not sure about the 'hierarchy' or 'column order'. I think modFolderName as first column and name as second is ok as those two are or should be as identical as possible (0ad being the exception where 0ad is the name and public the mod folder name).

We distinguish name and mod folder name only because the mod folder name can change (e.g. people renaming it or automatic renaming when downloading and a folder with this name already exists).

The mod name is defined in the JSON (mod info file called mod.json) and is never ever changing (hopefully, and contrary to the mod folder name which can change easily).

Link to post
Share on other sites

New:

- sorting ascending / descending working

- filtering fully working (including negating all filters)

- rearranged columns + added unique mod name (first column),

- topological sort added (will probably be added as a button which has to be pressed once, only then Start Mods and Save buttons get enabled.).

Link to post
Share on other sites

Nice work :)
A few suggestions :

- Replace that big enable thing by check boxes.

- Could you make the descriptions on more lines ? Better, use the box that shows enabled mods instead. The checked thing will be enough for players.

- Why is millenium AD not linked to its github repository ?

- When you will have them maybe we could replace the names (e.g. bronze_mod by an icon, or by Bronze Age)

A little question. Can I be able to have all the mods at once ? Like making the Aristeian fight the vikings and the romans ?

Link to post
Share on other sites

Thanks for the input comrade.

- Replace that big enable thing by check boxes.

it was planned as such but it evolved that enabledMods need to have a certain order (i.e. dependencies have to be loaded first). That's why enabled mods have their own list now and mods can be moved back and forth and enabled and deactivated like desired (+ saved in the the configuration).

- Could you make the descriptions on more lines ? Better, use the box that shows enabled mods instead. The checked thing will be enough for players.
I still have no working line-break but I've starting making that column a scrollbar-column (though that somehow failed).
- Why is millenium AD not linked to its github repository ?

No idea why I created a dummy link, we can change it in the millennium github's mod info file (currently called milleniumad.json, later probably just mod.json).

- When you will have them maybe we could replace the names (e.g. bronze_mod by an icon, or by Bronze Age)

The names are unique IDs for mods. Usually folder names are redundant but those could easily change and thus break dependencies (that's why we require that unique ID: the mod's name).

Preview images are planned but it will only work with binary data as base64 encoded string. (due to the mod folders not yet being mounted, no filesystem image can be referenced/loaded).

A little question. Can I be able to have all the mods at once ? Like making the Aristeian fight the vikings and the romans ?

Of course, as for the command line -mod=mod parameters, all can be combined in a pitched battle.


Edit: Preview images will be shown when hovering a mod row (but preview images are not yet working, I 'll probably look into it once I get green light from Sander + leper as especially for maps it's important).

  • Like 1
Link to post
Share on other sites

Now mods simply have to define a mod.json file in the highest mod folder (e.g. mods/myMod/mod.json).

Thanks to leper for this uni- and simplification.

leper has now completed the engine side.

The GUI still lacks:

- A working scrollbox for the description row.

- The preview images on hovering a mod row.

- Execute topological sort button (+ test topological sorting really arranges mod dependencies prior to the corresponding enabled mod).

btw. Philip yet again improved performance by 15%. In combination with the next spidermonkey ES31 I think we could even have a not so laggy release soon. :-) There are so many other improvements by the prog + art teams that I can hardly wait for the next release ...


Edit: For mod.json examples see the Aristeia, Millennium or Rise of The East mod.


https://github.com/0ADMods/China/

https://github.com/0ADMods/Aristeia/

https://github.com/0ADMods/millenniumad/

  • Like 2
Link to post
Share on other sites

Now mods simply have to define a mod.json file in the highest mod folder (e.g. mods/myMod/mod.json).

Cool, just a couple questions:

  • what "total_size" is used for, can't it be just used the file size when distributed as a .zip?
  • 0ad mod is currently know as public, the dependency should then be named public rather than 0ad (or even better public should be renamed 0ad in game SVN);
  • aristeia mods.json uses spaces rather than tab for indentation.
Link to post
Share on other sites

  • what "total_size" is used for, can't it be just used the file size when distributed as a .zip?

True, the goal is to determine the size on the fly (this may also be used to check if it was downloaded correctly, e.g. if only 54KB are shown, but the mod is 700MB big, then this may indicate us that the user should redownload the mod).


  • 0ad mod is currently know as public, the dependency should then be named public rather than 0ad (or even better public should be renamed 0ad in game SVN);

0ad is the unique name. We had to separate it because the user might have the great idea to rename a modfolder (what we can't prevent). That's why we had to define the unique ID as the mod.name in the mod.json.

Leper noted in the Code that it may best be renamed to 0ad instead of public. We can't really decide it currently I think and better wait.

The problem with naming unique mod ID public is that then people would no longer recognize it as they only know the game's name 0ad and would wonder what that public thingy was.


  • aristeia mods.json uses spaces rather than tab for indentation.

That's my fault, I had some issues with my progs as I use spaces only for all other projects but 0AD. Now I've settled on smart tabs, i.e. only the beginning of the line will be turned into a tab.

Should be fixed in the next commit.

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...