Jump to content

Mod Manager


fakeskins
 Share

Recommended Posts

Mod manager? What? No guy, we don't have one, or will have, mod manager like whst? , XML basic knowledge, Blender knowledge, gimp/Photoshop knowledge, etc.

Because is too lot of work.

Now if you are talking a application to choose a mod when play as RoN that is maybe, put you can suggest in ideas forum because is for game no for mod the game. Is part of main game

Edited by Lion.Kanzen
Link to comment
Share on other sites

Since all mods would be placed in the /mods/ folder, I think there should be a way (as in a GUI) to enable and disable mods (and maybe arrange load order). I don't know if it requires a reload of the game's info after changing such stuff, but if that is technically possible, there should be no obstruction to have this in game. Alternatively, the game could just restart itself with the right parameters. I suppose it can be an interesting project for a contributor to implement this.

As for browsing, downloading, and installing a collection of mods, that is something different. It would require a central repository of mods, including some moderation scheme (not everyone can just add nefarious stuff). There are possibly many examples, but I know that the open source package manager Preware for webOS does this quite well. Essentially it uses feeds/channels which the app subscribes to. For each feed it downloades a packages file, which is essentially a simple text file with info on all the packages that can installed via this feed (alternatively a JSON file would fit this job just great). All feeds are parsed and the app presents it. Per installable package the information resembles a Debian CONTROL file. See the spoiler for an example:

Package: nl.sinds1984.hotspot

Version: 0.9.6

Depends: ca.canucksoftware.js-service-framework

Section: misc

Architecture: all

MD5Sum: dbeb700f5d71843acd7047f7e4f2adef

Size: 173154

Filename: nl.sinds1984.hotspot_0.9.6_all.ipk

Description: NS Hotspot

Maintainer: Sinds1984

When each mod would be required to have a mod.json file in its root folder, this mod.json file could have several required fields (as in the CONTROL file example). Things like name, version, description, and dependencies should be included. With dependencies I mean this: the current public mod has no dependencies, it is a complete mod that needs no other mods to function. A mod that wants to add a civilisation depends on the 0 A.D. public mod, so 0 A.D. public needs to be present as well for that mod to function. Similarly, a mod that adds to another mod (for example, adds another Korean civ to the Rise of the East mod) depends on that mod. Installing the mod thus also means installing the dependency mod. A total conversion mod, like the Rogue Republic mod (if they opt for pyrogenesis, that is) would also be a fully functional mod, without the need any dependencies. Loading both 0 A.D. public and Rogue Republic should not be done.

If the team agrees with my idea (oh well, not really unique in the Linux world), I could expand on this a little and perhaps create a ticket on trac, so someone can choose to work on it. The most valuable thing would be to have some standards for how mods represent their information, so it can be parsed in a uniform way.

Link to comment
Share on other sites

As a mod can change about everything (even the GUI). So adding a GUI to the public mod to choose mods might be a bit weird, as the mod you chose can decide to not have that GUI :unsure: Also, changing the mods would most likely require a full reload, because you can change almost everything.

Yeah, that's an issue. I'm not sure what the best way of doing it would be, unless there was some sort of splash image / GUI where mods can be activated before loading pyrogenesis.

  • Like 1
Link to comment
Share on other sites

As a mod can change about everything (even the GUI). So adding a GUI to the public mod to choose mods might be a bit weird, as the mod you chose can decide to not have that GUI :unsure:

Would you recommend using a separate program that comes with 0 A.D., a bit like Atlas? The Nexus Mod Manager also comes to mind (for Skyrim).

  • Like 1
Link to comment
Share on other sites

Would you recommend using a separate program that comes with 0 A.D., a bit like Atlas? The Nexus Mod Manager also comes to mind (for Skyrim).

That's how I'd do it. It could just be a simple GUI to choose which mods to load, which could either write a start.bat|sh file which would launch pyrogenesis with those mods, or write to a special file which pyrogenesis could read on startup.

This has the advantage that a menu item could just spawn the mod selection program, which avoids the "the selected mod doesn't have the mod selection GUI" problem.

Since we support hotloading of almost everything, I don't think we'd actually have to restart pyrogenesis.

  • Like 1
Link to comment
Share on other sites

Proposed for Planned features after Part 1? Or you discuss in Project Governance?

It's on our list of features we'd really like to have, so it doesn't have to go through Project Governance, but it's also not high on our priority list. There are many other important features/improvements that take priority, such as optimization (1st priority), and other missing gameplay features (Auras, Capturing, AI, Naval, etc.)

  • Like 1
Link to comment
Share on other sites

I have been itching to start contributing to 0 AD for a long time. But, since my current job is more C# (.net/mono) oriented, my C++ skills have considerably rusted. I have been postponing brushing up C++ before I can start contributing - but that time never occurred!!!

But, since this is a new external program, I can code this in C#(using mono so that it is cross platform) if the Team is ok with it. Since we are dealing with plain text files, it would be technology-agnostic and if needed, nothing prevents us from re-coding this program in C++ in future, while keeping rest of the files intact. Atleast, this would be pave way for me to start contributing immediately.

I am eager to know what the Team thinks about my idea, so that I can start ;-)

  • Like 1
Link to comment
Share on other sites

I have been itching to start contributing to 0 AD for a long time. But, since my current job is more C# (.net/mono) oriented, my C++ skills have considerably rusted. I have been postponing brushing up C++ before I can start contributing - but that time never occurred!!!

But, since this is a new external program, I can code this in C#(using mono so that it is cross platform) if the Team is ok with it. Since we are dealing with plain text files, it would be technology-agnostic and if needed, nothing prevents us from re-coding this program in C++ in future, while keeping rest of the files intact. Atleast, this would be pave way for me to start contributing immediately.

I am eager to know what the Team thinks about my idea, so that I can start ;-)

We already have a big amount of languages in the project (C++, JS, Lua, XML, JSON, Bash ...) I'm not really in favour of adding a new language. But if you can get it to work with the current build system on all platforms (so you don't have to compile it separately), I'm not against.

Link to comment
Share on other sites

  • 2 weeks later...

As a mod can change about everything (even the GUI). So adding a GUI to the public mod to choose mods might be a bit weird, as the mod you chose can decide to not have that GUI :unsure:

Also, changing the mods would most likely require a full reload, because you can change almost everything.

A mod selector UI wouldn't need to be in the public mod. It wouldn't necessarily need to be a mod at all, but I think it would be easier. Remember that we can load multiple mods at a time, so there could be a pre-public mod that includes only the mod selector.

There are other reasons to want mod switching/loading in-game, such as integrated updates or mod downloads for multiplayer games (e.g. your friend has a cool mod they made, and you want to play against them, it's annoying to have to distribute the mod and restart to load it, and you get into version mismatches; so match setup could look up that info and download it to a temp mods directory before starting the game). But we need some engine work to make that happen, to ensure reloading mods at runtime works seamlessly - it already should in theory with our VFS, but every system needs to support it. I think it would be less work to fix that than to write a separate cross-platform launcher tool that will probably be throwaway code.

Link to comment
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.

 Share

×
×
  • Create New...