A simple vault installer proposal


#1

There have been talk about the need for The Vault to have a simple 1-click installer to making things easier for new users. So here is a proposal for such an installer that I want to run through you guys, specially the staff @niv, @Proleric, @Fester_Pot, @Tarot_Redhand, @Vanya_Mia, @TheAmethystDragon. Got the list from the Hamburger menu so there might be some other mods I missed?

The approach I am taking is to just make something that is just dead simple and leave it at that. Basically just to automate the downloading and unpacking of .7z files and that is it.

Typical usage scenario:

  1. User browses the Vault and sees a module they like. Clicks on an attractive “Click here to play” button.
  2. The browser downloads a installation info file with a .svit file extension and launches the Simple Vault Installation Tool (SVIT)
  3. SVIT asks user to confirm the module installation. User clicks Install.
  4. SVIT downloads all module files and dependent packages from the Vault and unpacks them into the user’s NWN directory placing files in correct folders.
  5. User launches NWN to play module and gives author 10 stars! :grin:

What we need to do. Create .svit installation info files for the modules. These would be simple text files that contains:

  1. The name of the module
  2. Links to the module’s own files either in .7z,.rar or .zip format. The contents will be sorted and recognized file types will be unpacked into the corresponding directory in the user’s NWN folder.
  3. Links to other project’s .svit files that the module is dependent on, such as CEP or ProjectQ

Concerns:

a) This is a very simple solution. But will it suffice and be viable? Any suggestions to make it even simpler??

b) Once the installation tool is in place, clearly the bulk of the work is in creating the .svit files and have them posted on their project pages. Others could create the svit files but only the mods could post them up. So what do you guys think?

c) This would work for NWN1, but would it work for NWN2 as well?

d) No idea how feasible it is to get a flashy “Click here to install” button on the project pages, but we can always revert to bland textual links. But the project pages currently only allows uploading of certain file types! I couldn’t even upload a naked .nss file without renaming it. Will need some @niv magic here.

e) Any other suggestions?

Thank you for your consideration.


#2

I support the idea.

The only thing that I might add, is that IF files are going to be overwritten, the installer should prompt the user before doing so, maybe even ask for confirmation again.


#3

Does nobody like NIT?

TR


#4

It’s a good thought. However, my experience in writing the NWN Installer Tool (NIT) is that there are exceptions to folders that are used for the various extensions (eg BIC can go to localvault or dmvault, ERF to erf or texturepacks, HAK to hak or patch, TGA to portraits or override, WAV to ambient or override).

In addition, you would need to know whether something like CEP is already installed to avoid unnecessary downloads.

Would you envisage support for uninstalls. If so, you need to back up overridden files.

There is also dealing with file conflicts - does last install always win? If so, and you uninstall, need to worry about restoring the overridden file.

Presumably, you would need somewhere to track Mods that have been downloaded as well as whether they are installed or not.

I obviously agree with you about making it much easier for users to install the mods they download. I just happen to think that it can be quite a complex equation to deal with a range of scenarios. On the other hand, someone smarter than me will probably propose a simpler solution than the one that NIT provides.


#5

@Tarot_Redhand
I do :slight_smile:

There were around 2,000 users between the Vault and Nexus before I released version 5.0. As ever, lack of feedback is problematic in terms of dealing with things that people don’t like or find difficult.


#6

And I try to make sure that those people who say that NwN modules are too complex to install (Computing 101 anyone?) at least know about it. I always link to the project page too. So it can be a bit disappointing when nobody clicks the link (hint these forums display a count of the number of times a link is clicked).

TR


#7

I agree it would be nice to automate installation, preferably building on what NIT has already achieved.

We’d need some solutions to practical issues mentioned above, though.

My impression (maybe wrong) is that the project pages are not easy to change, and that only @niv knows how.


#8

It is a powerful piece of kit, clearly meant for epic levels. It can be rather overpowering for level 0 players.


#9

Ideally I’d like to have the archives be repacked and have all the files in their right directories already so that it can be dumped into the user’s NWN folder blind. I want to keep things as simple as possible for the user, but of course repacking is not always feasible in practice, so might need to specific additional info on the .svit info files. Failing that there is always the “let the user decide” route.

At the moment I’ve no intentions to do anything with Overrides. If a user wants to put stuff in override then they’ve moved beyond this tool. The target audience is level 0 players. Similarly, uninstalling won’t be supported. If they want these advanced features it is time for them to level up to NIT.

Yes it can get very complex which is why I am narrowing down the audience and limiting features. But that also raise the question of whether it would be sufficient and even worth it if it is so simple and limited. An alternative would be to provide a simplify front end to NIT instead.

The key differences offered by this approach as compared to what NIT or manual installation offers is that:

  1. Players can install directly from a project page by clicking a link.
  2. Ambiguities and maybe even conflicts can be resolved by authors or experienced users (via repacking or extra info in installation files) without having to bother the players with it.

But of course these all rely on support from Admin and the community but it would be way easier than making a package for Steam Worskhop!

This should be trivial to implement as a frontend to NIT. And it would get uninstall and mod tracking all for free. Would you be interested in extending NIT for this if we could get the needed support? Or I could submit you a patch if you open up the sources. I’d have to learn visual studio though. lol


#10

Unfortunately, repackaging every mod would be a huge amount of work (at least as much as the migration from the old Vault). There are almost 4,000 modules here, not to mention all the other types of project. Also, unlike the NIT approach, doing it without the author’s permission would be questionable.

If we were going to do that, the simplest solution technically would be to upload everything to Steam Workshop - but there seems to be consensus that we’re not going to do that, for both of the reasons mentioned above.


#11

Yes it would be a huge amount of work which is why I listed other alternatives and put limits on what it can install. It is not meant to be a complete solution (which is why I am asking if it is worth it?). Some modules already have the right structure already and a lot of it can be automated without repacking at all, just by generating meta info files (and hand edited if needed).

Or simply just go with NIT and promote that on Steam. Speaking of which why don’t we have a NIT package on Steam?


#12

Actually there are also other reasons. Mass uploading to steam would make the vault pointless and leave us in the hands of a commercial organisation yet again.

TR


#13

My thoughts exactly.

Like most people here I have been around since the old IGN forums where at the height of their activity and in all honesty I have to say: My goal is not to selflessly promote NWN, but to promote this community of content creators and module builders and make the next generation of players interested in building with the Aurora toolset which imho is still the best RPG editor ever made.


#14

This is almost exactly the solution I’d started planning to implement. I fully support it. There are a few complications we’d have to work out (e.g. what to do when an install needs to and/or tries to overwrite an existing file), but I don’t see any reason why it couldn’t work.

I’d say that the first level / basic feature needs to be something that active builders can use to provide one-click installation for their work. If that requires re-packaging, then that shouldn’t be difficult for them to do. How to ease installation for currently unsupported Vault modules from the Vault, if that’s even feasible, is a separate question.


#15

@pscythe
I would be happy to extend NIT to help simplify installation and would also be open to sharing the source (NIT and the LazWorks Library on which it depends) if you wanted to work on this. It is VB.NET.

NIT supports file placement rules to help address exceptions to the rule, so this could be used to handle situations that are not already defined in the current version.

For Steam users, we would need to maintain a Mod definition file that links Steam’s id number to the Mod and non-Mods such as CEP so that unnecessary downloads are not performed. So far, I have not coded anything to maintain this link, although it could be done.

I have always thought that asking authors to include additional information in their uploads was something to be avoided (too much overhead on already released modules and requesting this for new stuff would be an imposition that I, for one, would not want encourage).

Bottom line is that I am happy to collaborate with anyone that thinks the effort is worthwhile. I am also open to make changes based on feedback and suggestions to make NIT easier to use. All that is required is clarity and agreed goals.


#16

I can understand that view. As one of those who would need to include additional information in my upload, though, I would view this (at least personally) very much as an opportunity rather than an imposition.

Let me take a look at NIT and get familiar with it, and I’ll follow up with some further thoughts.


#17

@Andarian
Thanks for your comments. Any feedback, suggestions or requests will be very welcome.


#18

@Surazal could this be extended to make it easier for persistent world’s content downloads too?

TR


#19

@Tarot_Redhand
I am sure it could. However, I never play persistent world mods, so I would need to know what is required that is different from local mods.

Happy to work with anyone who can tell me what is needed and is prepared to run test versions of NIT to ensure it works as intended.


#20

I agreed. It is not that hard at all to create “well behaving” module packages. All we need is for the .7z archive to have the same structure as the user’s NWN folder, that is have the right files in the right directories. NIT actually have options for packaging modules correctly too.

Following that we should also aim for clean project pages that lends itself to automatic installation. Take this old project for example, Bloodright have exactly one archive file and the required projects are also linked. Provided that the depend project pages are also similarly clean and clear (I can’t see those pages atm, getting 500 internal error), this becomes a perfect candidate for one-click installation. We could just extract the links to the archive and required projects, download and install them all with one click, all without repacking or such. Although it’s archive doesn’t quite have the right structure but there are no doubts about where its files go.

@Surazal What do you think of such a front-end to NIT? All the player need to do is copy and paste the project URL and tell NIT to install it. And if we could convince Admin, the player can do it with just one click and no copy-n-paste.

Once we have that in place we could even mine the all the 4000+ project pages and identify these “perfect installs” and have them available to new players for 1-click installation.