Hard Light Productions Forums

Modding, Mission Design, and Coding => FS2 Open Tools => Topic started by: ngld on February 07, 2017, 07:20:47 am

Title: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 07, 2017, 07:20:47 am
The next version has been released.
Please go to the new thread (http://www.hard-light.net/forums/index.php?topic=93642.0).



(https://dev.tproxy.de/knossos/images/screen1.png) (https://dev.tproxy.de/knossos/images/screen6.png)

Knossos is a launcher which tries to make installation and updating of mods (and FSO) as easy as possible.

Since this is still in beta, Knossos will automatically report all encountered errors (unless you're on Ubuntu because it's missing the necessary package). You can turn this off if it bothers you by going to Settings -> Launcher settings and unchecking "Automatically report errors".

IMPORTANT: There's a known issue in the current version: The "Select FS2 directory" button is broken. Please go to Settings > Game settings and set your FS2 path there instead.
We're currently working on a new UI which is why this bug won't be fixed.

Download Links

How do I upload mods? Where can I find a list of available mods?
fsnebula.org (https://fsnebula.org/) lists all available mods and allows anyone to add new mods. All uploaded mods are mirrored which means that they will always remain available as long as fsnebula.org keeps running.

For anyone interested: The source code is on GitHub (https://github.com/ngld/hlp-nebula).

What happens next
I'd like to get some feedback: Does it work? Is the UI too complicated or too simple? What would you want to see?

Current TODO / Wishlist

Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: deathspeed on February 07, 2017, 09:46:32 am
Thanks!  I just used it now to download "Lost".


Just a heads-up for others downloading and running this - both Windows 10 and Avast freaked at this new file.  :)  For Windows 10, it wanted to stop me from downloading; I had to click "advanced" to get the option to continue.  Then Avast threw out a warning when I started to install, and another when i ran it.  Both times i said "I trust this program", but Avast still would not let it run so I had to disable Avast temporarily. 

Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 07, 2017, 11:03:30 am
Thanks for testing!

Just in case, I've uploaded both the installer as well as an archive with the program files on virustotal.com:
Installer (4/53): https://www.virustotal.com/en/file/2f0876e3bb0903ddd2697ee70b22d8c6fbbf8fcee8314abc627deff160c17bcf/analysis/1486484383/
Actual Program (3/51): https://www.virustotal.com/en/file/fe45c77a0aaf4164bdc04e00be73b827656d5916467e01d2823289542ee87999/analysis/1486484597/

The warnings are generic trojan warnings. I guess they're caused by the fact Knossos downloads and saves files.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: tomimaki on February 07, 2017, 03:29:49 pm
At installation and launch I got error.
Probably missing 32-bit vcruntime140.dll.

Btw does Knossos work with recent nightlies?
Because whatever mod I choose, it launches with last mod selected in wxlauncher.

[attachment deleted by admin]
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 07, 2017, 06:02:26 pm
You were right about the vcruntime140.dll, it was missing from the program directory. When FSO started using config files on all platforms, the config directory changed but Knossos was still writing the configuration to the old directory. FSO didn't read those files which caused your second issue.
Both issues will be resolved by the next update which should be available in a few hours.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: Nyctaeus on February 07, 2017, 06:46:18 pm
This thing is awesome. If not already fully awesome [small amounts of mods, bugs, whatever]... It looks like something that will be awesome soon :D. Especially great for newcomers who have problems with FSOInstaller or manual installing. I'll give it a try tomorrow.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: karajorma on February 07, 2017, 08:19:56 pm
I tried registering on the website so I can update the Diaspora install but it never sent me the confirmation email. I'm trying to register as Karajorma. Nevermind, the email arrived about 20 minutes later. Can I get added to the Diaspora team then?


Also one suggestion. Is there any way we could get a download count on the website? One of the complaints that came up recently was that people don't know if anyone is playing their mod since many people look at HLP but don't register / comment. It would be nice if people could see that their work was being appreciated.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: niffiwan on February 08, 2017, 01:22:44 am
That OpenGL shader/completely-black-window bug is resolved with the latest release; as well as the can't-update-the-available-mods-list bug.  Thanks!  :) :yes:

edit: ooh, I have another lousy feature request for you - what about a mod text-search box? I am a command line fiend, and I also think that good search beats hierarchies in most cases  :nod:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: tomimaki on February 08, 2017, 08:04:06 am
You were right about the vcruntime140.dll, it was missing from the program directory. When FSO started using config files on all platforms, the config directory changed but Knossos was still writing the configuration to the old directory. FSO didn't read those files which caused your second issue.
Both issues will be resolved by the next update which should be available in a few hours.
Thanks  :yes:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: karajorma on February 08, 2017, 11:31:19 am
One other thing, how's the multi-lingual support on this thing? We've been shooting ourselves in the foot for years but making it all but impossible to play FS2 if you can't speak English (like 3/4 of the world). Can we not continue to do that please?
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 08, 2017, 02:55:00 pm
Nevermind, the email arrived about 20 minutes later. Can I get added to the Diaspora team then?
Weird, it shouldn't take that long. I've added you to the Diaspora team. You should be able to edit it and add new users to the team.

Also one suggestion. Is there any way we could get a download count on the website? One of the complaints that came up recently was that people don't know if anyone is playing their mod since many people look at HLP but don't register / comment. It would be nice if people could see that their work was being appreciated.
I can implement that. I'd count how often the mod was installed through the client and how many users / visitors clicked on the download links. I won't count the downloads directly since I would only be able to do that for dl.fsnebula.org and not the other download links.

One other thing, how's the multi-lingual support on this thing? We've been shooting ourselves in the foot for years but making it all but impossible to play FS2 if you can't speak English (like 3/4 of the world). Can we not continue to do that please?
I still have to make a few changes but the client will be fully translatable by the time it reaches 1.0.0 (which should take less than a year).
The server part (fsnebula.org) will be harder since there's more text and the available tools aren't as great. I'll try and implement it over time but it's not a priority for me.
I'll also have to add filtering by language because people probably don't want to see mods which they can't understand.

That OpenGL shader/completely-black-window bug is resolved with the latest release; as well as the can't-update-the-available-mods-list bug.  Thanks!  :) :yes:

edit: ooh, I have another lousy feature request for you - what about a mod text-search box? I am a command line fiend, and I also think that good search beats hierarchies in most cases  :nod:
Glad to hear that those issues are fixed. :)
fsnebula.org (https://fsnebula.org/workshop/mods) now has a full text search. What do you think? It's not perfect but it's a start.
The client should already have a search but I guess you want to search the descriptions and not just the mod titles. I'll put that on the to do list.

This thing is awesome. If not already fully awesome [small amounts of mods, bugs, whatever]... It looks like something that will be awesome soon :D. Especially great for newcomers who have problems with FSOInstaller or manual installing. I'll give it a try tomorrow.
Thanks for the praise!  :lol:  Please let me know what you think after your test.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: niffiwan on February 09, 2017, 05:29:40 am
That OpenGL shader/completely-black-window bug is resolved with the latest release; as well as the can't-update-the-available-mods-list bug.  Thanks!  :) :yes:

edit: ooh, I have another lousy feature request for you - what about a mod text-search box? I am a command line fiend, and I also think that good search beats hierarchies in most cases  :nod:
Glad to hear that those issues are fixed. :)
fsnebula.org (https://fsnebula.org/workshop/mods) now has a full text search. What do you think? It's not perfect but it's a start.
The client should already have a search but I guess you want to search the descriptions and not just the mod titles. I'll put that on the to do list.

Oh dear, now I feel like a fool because I missed the search bar in Knossos  :nervous:  To be honest, I think searching just the mod titles is fine. Searching the description might match too much stuff - I'm thinking of the case where you have (looks at his FSO directory) 78 mods and scrolling to find the play button on the one you want to play is time consuming.

On the other hand, search bar doesn't seem to do anything? e.g. I have installed TheLastStand, when I type last or Last and press enter, nothing seems to change. OH WAIT... it searches when you change "tabs"... it seems more intuitive to either perform an as-you-go search (maybe once you reach 3+ chars), or have it triggered by pressing enter.

Going back to the searching the list, and the play button, and lots and lots of mods. I wonder if there's some way to borrow the "active mod" idea from wxLauncher, and move the play button to a constant location. I think play-per-mod works really well for a short list, but for a long list it's harder.  Windmills is always going to need a lot of scrolling.

What do you think about a "play last" button somewhere that'll launch the last played mod?

Or maybe another tab called active, to the left of installed, with a left arrow to "push" a mod into the active window & switches windows, you can use a right arrow to push a mod back into the installed window? The active window would display only one mod (image plus info text), keeping the hover-over play & config buttons.  That does mean extra actions to play a mod and possibly extra window width. Plus I have no idea how easy QT makes it to do something like that (the idea is probably inspired by touchscreens; swipe left & right to change the active mod/TC).

Aaaand, after writing all that, I'm probably back to the viewpoint of: it'll be fine if the search works on enter/as-you-type  :lol:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: karajorma on February 09, 2017, 07:06:46 am
Can we get this to launch FRED too?

Also the Play / Settings / X buttons are handled looks rather ugly. Can we get them to appear at the bottom of the entry rather than the top?


But anyway, so far this is looking very good.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 09, 2017, 09:49:38 am
The search bar should work as you type but after checking the code I realized I'm listening for the wrong event.  :rolleyes:

What do you think about a "play last" button somewhere that'll launch the last played mod?
Or maybe another tab called active, to the left of installed, [...]
What about a tab "Last Played" which automatically shows the mod you last played? I could make it the default tab and place a big "Play" button on it.

Can we get this to launch FRED too?
Shure. I'll add a new button "Launch FRED" to the mod entries unless someone has a better idea.

Also the Play / Settings / X buttons are handled looks rather ugly. Can we get them to appear at the bottom of the entry rather than the top?
That should be possible.

EDIT: What do you think? I think it still needs some more work. (Please disregard that FSO has the wrong picture.)
(https://dev.tproxy.de/knossos/images/screen2.png) (https://dev.tproxy.de/knossos/images/screen3.png)
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: karajorma on February 09, 2017, 08:35:30 pm
Much better. :yes:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: Goober5000 on February 09, 2017, 09:32:30 pm
One other thing, how's the multi-lingual support on this thing? We've been shooting ourselves in the foot for years but making it all but impossible to play FS2 if you can't speak English (like 3/4 of the world). Can we not continue to do that please?

Psst... the FSO Installer has had support for six languages since 2014... :nervous:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: chief1983 on February 09, 2017, 09:39:51 pm
Yeah, and I think a multi-lingual client would have far greater reach than the multi-lingual server.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: karajorma on February 09, 2017, 10:26:53 pm
Psst... the FSO Installer has had support for six languages since 2014... :nervous:

All the more reason to not take a retrograde step with Knossos then.

Seriously though, you have no idea how many people I could have gotten into FSO if I could get it to work in Chinese. But instead we're being really slow about multi-lingual support for FSO even though someone made a Japanese port almost immediately after the code was released.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: m!m on February 10, 2017, 03:06:31 am
Seriously though, you have no idea how many people I could have gotten into FSO if I could get it to work in Chinese. But instead we're being really slow about multi-lingual support for FSO even though someone made a Japanese port almost immediately after the code was released.

The major problem with most other languages is that we need to be able to display and process different characters. To do this properly we need Unicode support and then we need to be able to process UTF-8 encoded data. Fortunately, the new TrueType Fonts and the associated text rendering backend support UTF-8 and Unicode so at least we have the capability to render those characters now. We still need to add UTF-8 support for the parsing code though and the localization code is probably also not set up for more complicated languages.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: AdmiralRalwood on February 10, 2017, 04:07:38 am
I would certainly love for FSO to get UTF-8 support; only text-related feature I want more is color tag support in the tech room and in missions (which is on my to-do list, along with font tags if I can manage it).
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: Goober5000 on February 10, 2017, 01:31:12 pm
I have a branch that I've been working on where the parsing code is about 3/4ths converted to use SCP_string.  Once that's complete, it should only be a small additional step to make it recognize and parse UTF-8.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: chief1983 on February 10, 2017, 02:49:58 pm
Small additional step?  You're that sure we have a minimal amount of assumptions in the code that a letter is one byte, etc?  I feel like that's probably the biggest thing that would bite us in the arse trying to add that support anyway.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: Goober5000 on February 10, 2017, 03:27:44 pm
Well, I meant the small additional step would be to parse UTF-8.  Actually making use of the parsed text (displaying it on the HUD or in messages, for example) would be another step entirely.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 11, 2017, 07:01:35 pm
I think a shaping library like HarfBuzz (https://en.wikipedia.org/wiki/HarfBuzz) would be neccessary for full Unicode support (it handles the translation of characters to glyphs).
</Off Topic>

Knossos now has a list of the recent nightlies which is automatically updated daily. To install the most recent nightly, just install the "FSO Nightly" mod. If you want to install an older nightly, open the settings window for "FSO Nightly", go to the "Versions" tab, click on "Edit", select which versions you want and finally click "Apply". Once the installation is done, the nightlies will show up in Settings > Game settings.

I've finished the install counter which will be part of the next release. It only counts how often the mod was installed through Knossos. I haven't figured out how to properly count the downloads through the website since a user might download just one or more files but it would still only be one installation.
It's only a simple note on the side (Preview (https://fsnebula.org/repository/fs3_search_bosch)) but I want to add a proper graph later.

The "Last Played" tab and the FRED button are both finished.
I'm mostly done with the translation support and will hopefully finish within the next few days. (150 strings done, 81 to go)

I've also finished a new settings page that will allow you to tell Knossos which SDL2 and OpenAL library to use.
No new release today but the next one should be done in a few days and will include a macOS build as well.

Thanks to Rear_Admiral_Tarsus, I've discovered that a few dependencies were missing from the Ubuntu package. This will be fixed by the next release as well.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: niffiwan on February 11, 2017, 07:43:04 pm
thanks for all that! Looking forward to the next release :)
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: m!m on February 12, 2017, 05:47:59 am
I have found an issue with case sensitive and insensitive paths. When I try to install the 2014 MediaVPs I get the following error:
Code: [Select]
Traceback (most recent call last):
  File ".../knossos/knossos/tasks.py", line 379, in finish
    mod.save()
  File ".../knossos/knossos/repo.py", line 833, in save
    shutil.copy(self.logo, logo)
  File "/usr/lib64/python3.5/shutil.py", line 235, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "/usr/lib64/python3.5/shutil.py", line 115, in copyfile
    with open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: '$FS2PATH/Mediavps_2014/knossos.bmp'

Upon closer inspection I noticed that my existing MediaVPs install uses the name "MediaVPs_2014" which has a different case than the path specified above.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 12, 2017, 07:28:52 am
Found and fixed the bug. Thanks!
The actual installation takes the case problems into account (otherwise you would now have two folders) but the code which saves the metadata (mod.json) and the logo didn't.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: m!m on February 13, 2017, 03:08:32 am
Thanks for the bugfix. Installing mods is working now :yes:
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: tomimaki on February 13, 2017, 03:57:25 am
Seems Knossos doesn't like spaces in folder's name, when I want to play for example Cardinal Spear for SCP.
Title: Re: PUBLIC BETA: Knossos 0.3.1 (launcher / mod installer)
Post by: ngld on February 13, 2017, 05:14:09 am
Huh, apparently FSO doesn't like single quotes in cmdline_fso.cfg... :wtf:
The fix is up on git and will be part of the next release.

EDIT: Translation support done. Here's the file containing all translatable strings (https://github.com/ngld/knossos/blob/develop/locale/knossos.ts).
You can edit that XML file directly but I recommend using Qt Linguist (https://www.qt.io/download-open-source/) (here's the documentation (https://doc.qt.io/qt-5/linguist-translators.html)) because it shows you the updated UI while you're translating.
Install it, grab the latest code snapshot (https://github.com/ngld/knossos/archive/develop.zip) and open the locale/knossos.ts with it. Once you're done feel free to send me the finished file.
If you know how to use GitHub, you can fork the repo (https://github.com/ngld/knossos), save your finished translation as locale/knossos_<lang code>.ts and send me a PR.

The next release will be tomorrow.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 14, 2017, 06:08:27 pm
The latest release is up. Windows users can use the auto-updater by starting their old Knossos and Linux users should be able to update the installed package.
Download links are in the first post.

Changes since the last release:

Since that's done, I've got a few questions:

Finally, for anyone wondering about the layout of the mod list: The list is implemented in HTML/CSS/JS and I'm using an embedded web browser (QtWebEngine) to render it.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 14, 2017, 06:45:46 pm
Most mac apps that are just a bundle, no scripts or whatever, simply have a mechanism to download the new app, move the current one to the trash, and place the new one in its place.  This should be sufficient.  Even ones with follow up tasks, such as installing command line tools, will check the tools version at the next startup and ask you to upgrade them.  But I doubt that bit applies here.

I would have it check for updates once a day if left running, and on launch.  A manual button should remain in place.  Hopefully that won't result in too much traffic.

I might take a look at your mod list code if you need anything done with it, web dev is my thing :)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Axem on February 14, 2017, 07:15:08 pm
Here are some suggestions of mine...

https://fsnebula.org/workshop/mods Looking at this...

That page needs some real prettying up. Mod ID I think could be hidden and just be for back end internal use. We've got Mod Title anyway. Let's have the mod bitmap be shown, and perhaps the beginning of the mod description (first 140 characters or something?). Maybe authors could also upload images and/or a link to a youtube video that should show up (as links) with the visible description? First release is nice, but also a "last updated" column, as well as the download counter there too. Also filters! I saw you added those categories before, but I don't see them being used for organizational purposes yet. I think it would really help if there was like a FSO Builds category. It's not obvious to a newbie what they need to actually play.

So there'd be a tab/screen of FreeSpace Open builds, which would all be clearly marked (FSO alone doesn't mean much to a newbie and not all mods guarantee compatibility with the latest and some might need custom builds), and then tab/screens for the different categories. Also I think the MediaVPs should have an unfair advantage with placement so its like a no-brainer to select. So a newbie would be like "ok i have this installer, oh builds, right that's why I'm here. I'll take the version with the biggest number and I'll take these MediaVPs which is labelled as super recommended and then I'll explore these other sections"

I'd also like... just recommend most of those changes to the installer as well. I think ideally both should act as possible in terms of functionality and style.

Launcher specific... Maybe there could be something like a "FSO exe ready/missing/lol what are you doing this is still retail" sort of indicator? Someone running this for the first time may not have properly selected the right exe yet. Like in wxLauncher, it clearly tells you which build you are using. Being quickly able to change builds from the main window is super useful for us devs, I'm not so sure about normal players though... Maybe an advanced mode? :p (Also the launcher can't find FRED right now :()

Sort of related as well, wxLauncher can take a build filename and basically tell you what this build exactly is. Like fs2_open_3_7_5_d is FreeSpace Open 3.7.5 (Debug) which could help people identify special builds. And nightlies have githashes (useful for only them) and a build date (useful for everyone else) so having that info clearly readable would be cool.
(https://ibin.co/3CQJWiaa08Z0.png)

Also I think Settings needs to be broken up a bit. Like right now. "Settings" at first I thought it was just launcher settings, and didn't have anything to do with FS Open. So maybe a button that takes you to Launcher Settings and another button that takes you to Game Settings (which can still be the same window in the end, just different parts of that view).

I don't think I'd call the Default flags what it is right now, maybe more like "advanced default settings"?

And I see you have a button to the fs2_open.log which is amazing and I had just spent a paragraph saying you should add so that's awesome. But maybe also as shortcut to the proper config folder (like the right %AppData% folder on windows, or %OSX_EQUIVALENT% or %LINUX_EQUIVALENT% if we get that far)? Gotta be easy to find those screenshots!


Also re: your points...

Does the auto-updater on Windows work?
It didn't for me... I opened it, it didn't say there were updates automatically. I just downloaded a new exe and grabbed the new version.

Is anyone using the fso:// links? (Mod pages on fsnebula.org have a green "Install" button which, when clicked, should launch Knossos to install that mod.)
It did for me!

Should I display the forum highlights? Where?
I think you need a welcome tab. Grab the highlights board rss feed or something and mostly populate it with that. And maybe have a link to whatever welcome guide that the main site will end up having?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 14, 2017, 10:01:42 pm
https://fsnebula.org/workshop/mods Looking at this...

That page needs some real prettying up.

Actually, first we need to decide who that page is for. If it's only ever going to be used by modders, it's fine as is. If we're going to start sending users there, then it definitely needs changing. As far as I'm concerned, we shouldn't ever be sending people to the Knossos / Nebula pages. You go to the HLP main page, click download and then do everything through Knossos. I'm against creating yet another external website where we sometimes direct users (like we used to with the SCP site) and then create a huge mess because people are going to all kinds of different places when they have problems (believe it or not we used to get help requests on the SCP site!)

Similarly, I'm not sure why we're even bothering with the installer any more. Yeah, keep it around for the time being while Knossos is in beta but FFS let's not get into a situation where some people are installing Knossos and others are using the installer / wxLauncher. We need to decide which of the two is going to be the future of FS2_Open and stick with it.


Does the auto-updater on Windows work?[/list]

Sort of. Knossos detected the download, grabbed it, started to install and then Avast stuck its nose in and the whole thing fell over.


Also, I have Diaspora in a different folder from FSO. How can I get Knossos to recognise it?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: m!m on February 15, 2017, 04:31:40 am
FSO has recently gained support for specifying on which display the game should be displayed. Could it be possible to add support for specifying that into Knosses?
I'm currently looking at the code and I'd like to try and implement that but I'm not very good with python so it may take a while.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 15, 2017, 04:52:12 am
It would be nice if we could improve the Available tab too.

At the moment it's only really useful for people who already know which campaign they are after. What we really want is something a bit more impressive with screenshots or even movies showing the game off. I'd like to see something where someone completely new to FSO could just download Knossos, look on the available tab and then make an informed decision to play Diaspora or WoD or BtA.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: niffiwan on February 15, 2017, 05:12:15 am
How would a heap of screenshots fit into the base window? Or could we put the screenshots/youtube vids in the Info screen, making that larger in the process to fit everything? I'm kinda thinking of the Steam pics/video gallery.

How about adding 1-3 star ratings in the base window? Not sure how the ratings get set just yet... maybe from Nebula? Which could come back to having Nebula be aimed at players as much as modders?

edit: I'm also feeling like it'd be good to tie game settings to each mod; it'll make switching between a mod that needs 3.7.4 (BtA) and another that needs a nightly (JAD). Perhaps the whole game settings section should be per mod? The download is then setting your preferred values for each mod, not sure how to get around that at the moment as opaque inheritance (only idea I had so far) could be hard to understand what's really going on.

Also, you can also break Knossos by selecting a exec that doesn't work for whatever reason, once you close the settings window you can't reopen it to change your FSO exec. This is the error if you run from the cmdline:

Code: [Select]
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "/usr/share/knossos/knossos/windows.py", line 280, in show_settings
    SettingsWindow()
  File "/usr/share/knossos/knossos/windows.py", line 453, in __init__
    self._tabs['fso_flags'] = tab = FlagsWindow(window=False)
  File "/usr/share/knossos/knossos/windows.py", line 1235, in __init__
    self.read_flags()
  File "/usr/share/knossos/knossos/windows.py", line 1238, in read_flags
    flags = api.get_fso_flags()
  File "/usr/share/knossos/knossos/api.py", line 138, in get_fso_flags
    rc = run_fs2_silent(['-get_flags'])
  File "/usr/share/knossos/knossos/runner.py", line 332, in run_fs2_silent
    ld_path, missing = fix_missing_libs(fs2_bin)
  File "/usr/share/knossos/knossos/runner.py", line 275, in fix_missing_libs
    fixed_name = get_lib_path(ctypes.util.find_library(ld_name.group(1)))
  File "/usr/share/knossos/knossos/runner.py", line 240, in get_lib_path
    data = util.check_output(['ldconfig', '-p'], env={'LANG': 'C'}).splitlines()
  File "/usr/share/knossos/knossos/util.py", line 303, in check_output
    return subprocess.check_output(*args, **kwargs)
  File "/usr/lib/python3.5/subprocess.py", line 626, in check_output
    **kwargs).stdout
  File "/usr/lib/python3.5/subprocess.py", line 693, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'ldconfig'

(and I don't know why the exec I chose doesn't work, I can't remember which one I selected :()
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 15, 2017, 05:27:00 am
The base window is resizable. There's no reason we have to stick with its current size. If we give each mod more space to set out their stall as it were, we'd have more people wanting to play the new stuff. I've barely used Steam but GOG Galaxy does much the same sort of thing, allowing you to click on any game and open up a page with news, images and videos of the game.

Ratings could be handled via the Knossos client itself or via Nebula. The Last Played tab show which campaign you've just played, why not let people rate it from there?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 15, 2017, 05:45:34 am
Okay, this is weird: Knossos launches, but it won't give me any option to point it to a Freespace 2 installation or something similar. It seems forever stuck in a "Loading..." screen.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 15, 2017, 05:53:45 am
Lots of good suggestions here but if we're talking about replacing wxlauncher/5.5g/fso installer with it, we probably need to focus on s stable most viable product, and then enhance from there.  I wasn't expecting this to be ready for the mainstream by the 3.8 release but feel free to prove me wrong :)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 15, 2017, 07:55:33 am
Okay, I have issues with 0.4.1. This was a fresh install, with a fresh install of FS2 accompanying it. The program has been installed into C:\Knossos\

I can't access settings, and the opening screen where I am supposed to set the launcher to the Freespace 2 install directory or similar flatly does not appear. Debug log gives this:
Code: [Select]
[0215/145225:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale
[0215/145225:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale
[0215/145323:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale
[0215/145323:WARNING:resource_bundle.cc(311)] locale_file_path.empty() for locale
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 15, 2017, 12:02:38 pm
Wow! Thanks for all the replies. I'll try to respond to them in order. (Sorry for the long post)

Most mac apps that are just a bundle, no scripts or whatever, simply have a mechanism to download the new app, move the current one to the trash, and place the new one in its place. [...]
This would work but I'm not sure if I can rename the .app folder while Knossos is running or if I have to launch a script to do that.

I would have it check for updates once a day if left running, and on launch.  A manual button should remain in place.  Hopefully that won't result in too much traffic.
Sounds good to me. The traffic shouldn't be a problem. The mod list is 21KB and the nightlies list is 1MB. Both will keep growing over time but I'm more worried about the mod downloads from dl.fsnebula.org.

I might take a look at your mod list code if you need anything done with it, web dev is my thing :)
The relevant code is in the html folder (https://github.com/ngld/knossos/tree/develop/html). The only issue I know of is that the play button can overlap the mod's image if the label gets longer (which will happen with translations).

That page needs some real prettying up. Mod ID I think could be hidden and just be for back end internal use. We've got Mod Title anyway. Let's have the mod bitmap be shown, and perhaps the beginning of the mod description (first 140 characters or something?). Maybe authors could also upload images and/or a link to a youtube video that should show up (as links) with the visible description? First release is nice, but also a "last updated" column, as well as the download counter there too. Also filters! I saw you added those categories before, but I don't see them being used for organizational purposes yet. I think it would really help if there was like a FSO Builds category. It's not obvious to a newbie what they need to actually play.
I agree with most of those changes. The mod ID is shown because you need to enter that if you want to add a dependency to your own mod. I probably should change that and allow you to enter the mod title and handle the IDs in the code or something like that.
Regarding the links: I've already added a link for release threads. Should I do the same for the youtube video and label it "Preview video" or something like that?
I could add a sidebar to the left on the mods page which allows you to select from the available categories or other filters.

So there'd be a tab/screen of FreeSpace Open builds, which would all be clearly marked (FSO alone doesn't mean much to a newbie and not all mods guarantee compatibility with the latest and some might need custom builds), and then tab/screens for the different categories. Also I think the MediaVPs should have an unfair advantage with placement so its like a no-brainer to select. So a newbie would be like "ok i have this installer, oh builds, right that's why I'm here. I'll take the version with the biggest number and I'll take these MediaVPs which is labelled as super recommended and then I'll explore these other sections"
I think the tabs would take up too much space to fit in a line. Maybe vertical tabs? Hm....
I can and probably will put the FSO builds (and custom builds for that matter) on their own list but one goal for Knossos (which I forgot to mention) was that players don't have to think about builds anymore. The idea is that you add the build as a dependency and Knossos figures out the rest. I scrapped the last attempt at this but I think I can do it now.

I'd also like... just recommend most of those changes to the installer as well. I think ideally both should act as possible in terms of functionality and style.
I agree with karajorma regarding this but I could generate text files for the installer. It would allow the installer to install the mods on the Nebula which would make it easier for mod authors to support both if they want to.

Launcher specific... Maybe there could be something like a "FSO exe ready/missing/lol what are you doing this is still retail" sort of indicator? Someone running this for the first time may not have properly selected the right exe yet. Like in wxLauncher, it clearly tells you which build you are using. Being quickly able to change builds from the main window is super useful for us devs, I'm not so sure about normal players though... Maybe an advanced mode? :p (Also the launcher can't find FRED right now :()
The indicator is a good idea, should I add a statusbar similar to what wxlauncher does? After checking the code I realized that Knossos could only find FRED if it was installed through Knossos. :banghead: Will be fixed by the next update.

Sort of related as well, wxLauncher can take a build filename and basically tell you what this build exactly is. Like fs2_open_3_7_5_d is FreeSpace Open 3.7.5 (Debug) which could help people identify special builds. And nightlies have githashes (useful for only them) and a build date (useful for everyone else) so having that info clearly readable would be cool.
This already works with FSO builds installed through Knossos (in that case I can just use the metadata from fsnebula.org) but I will implement it for existing builds as well.

Also I think Settings needs to be broken up a bit. Like right now. "Settings" at first I thought it was just launcher settings, and didn't have anything to do with FS Open. So maybe a button that takes you to Launcher Settings and another button that takes you to Game Settings (which can still be the same window in the end, just different parts of that view).
I'm thinking of extending the mod settings window to cover all available FSO settings. Then I could remove the FSO settings from the settings window and make a new FSO settings window which would look like the mod settings but would set the global defaults.

I don't think I'd call the Default flags what it is right now, maybe more like "advanced default settings"?
I could rename all the flags pages / tabs to "advanced settings". It would work well with the change I suggested above.

And I see you have a button to the fs2_open.log which is amazing and I had just spent a paragraph saying you should add so that's awesome. But maybe also as shortcut to the proper config folder (like the right %AppData% folder on windows, or %OSX_EQUIVALENT% or %LINUX_EQUIVALENT% if we get that far)? Gotta be easy to find those screenshots!
The config folder button is a good idea. I added the log button because I had to look it up myself and thought it would be easier to have a single button which worked on all platforms instead of having to link users to some guide which explained where to find it.
Another idea I had was to add a button which would upload the log on pastebin and put the link (with bbcode) in your clipboard. Any thoughts on that?

Does the auto-updater on Windows work?
It didn't for me... I opened it, it didn't say there were updates automatically. I just downloaded a new exe and grabbed the new version.
Could you check what update channel you're on (Settings > Launcher settings)? It should be set to "stable". I'm not using "develop" right now.

Is anyone using the fso:// links? (Mod pages on fsnebula.org have a green "Install" button which, when clicked, should launch Knossos to install that mod.)
It did for me!
Great! :)

Should I display the forum highlights? Where?
I think you need a welcome tab. Grab the highlights board rss feed or something and mostly populate it with that. And maybe have a link to whatever welcome guide that the main site will end up having?
I think I need to make the main window bigger. I could add the hightlights to the "Last played" tab and maybe drop the mod description there.

Actually, first we need to decide who that page is for. If it's only ever going to be used by modders, it's fine as is. If we're going to start sending users there, then it definitely needs changing. As far as I'm concerned, we shouldn't ever be sending people to the Knossos / Nebula pages. You go to the HLP main page, click download and then do everything through Knossos. I'm against creating yet another external website where we sometimes direct users (like we used to with the SCP site) and then create a huge mess because people are going to all kinds of different places when they have problems (believe it or not we used to get help requests on the SCP site!)
I could make a second page which shows up when you click on the "Available" tab in Knossos and leave the current mods list mostly the way it is (though a few tweaks / a bit more information wouldn't hurt).

Sort of. Knossos detected the download, grabbed it, started to install and then Avast stuck its nose in and the whole thing fell over.
Hm, not sure if I can work around that.

Also, I have Diaspora in a different folder from FSO. How can I get Knossos to recognise it?
Knossos expects mods to be subfolders of the selected FS2 directory, there's currently no way around that.
Should I allow users (more likely modders) to add mods from other directories as well? Knossos could do that, I'd just need to change the UI.

FSO has recently gained support for specifying on which display the game should be displayed. Could it be possible to add support for specifying that into Knosses?
I'm currently looking at the code and I'd like to try and implement that but I'm not very good with python so it may take a while.
Most of the UI is done with Qt Designer. You'd need to change one of the settings_*.ui files in the ui folder (https://github.com/ngld/knossos/tree/develop/ui). Afterwards you need to add the code to save / load the value to knossos/windows.py (https://github.com/ngld/knossos/tree/develop/knossos/windows.py).

Okay, this is weird: Knossos launches, but it won't give me any option to point it to a Freespace 2 installation or something similar. It seems forever stuck in a "Loading..." screen.
[...]
I can't access settings, and the opening screen where I am supposed to set the launcher to the Freespace 2 install directory or similar flatly does not appear. Debug log gives this: [...]
That's the browser's debug log which frankly isn't too helpful. Can you please post the contents of %APPDATA%\knossos\log.txt?

Lots of good suggestions here but if we're talking about replacing wxlauncher/5.5g/fso installer with it, we probably need to focus on s stable most viable product, and then enhance from there.  I wasn't expecting this to be ready for the mainstream by the 3.8 release but feel free to prove me wrong :)
I'm focusing on fixing bugs (which is why I'm encouraging feedback and bug reports so much) but for it to be mainstream ready it should be able to compete wxLauncher and the FSO installer.
Once Knossos is stable enough I'll switch to providing stable and beta/nightly builds.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 15, 2017, 12:20:35 pm
Code: [Select]
INFO:MainThread:launcher.main: Running Knossos 0.4.1 on PyQt5.
INFO:MainThread:_code_cache._create_comtypes_gen_package: Imported existing <module 'comtypes.gen' (<pyimod03_importers.FrozenImporter object at 0x00CD91F0>)>
INFO:MainThread:_code_cache._find_gen_dir: Using writeable comtypes cache directory: 'C:\Users\joshu\AppData\Local\Temp\comtypes_cache\Knossos-35'
INFO:MainThread:integration.init: Activating Windows integration...
INFO:MainThread:api.get_fso_profile_path: Using profile path "C:\Users\joshu\AppData\Roaming\HardLightProductions\FreeSpaceOpen\".
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\api.py", line 571, in init_self
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 215, in check_fso
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 463, in __init__
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 933, in read_config
TypeError: setText(self, str): argument 1 has unexpected type 'int'
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\web.py", line 103, in finishInit
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 202, in finish_init
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 215, in check_fso
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 463, in __init__
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 933, in read_config
TypeError: setText(self, str): argument 1 has unexpected type 'int'
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 280, in show_settings
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 463, in __init__
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 933, in read_config
TypeError: setText(self, str): argument 1 has unexpected type 'int'
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 15, 2017, 12:22:21 pm
Macs seem to have no trouble with moving an application to the Trash while the app is running.  Permanently deleting is probably another story.

Windows apps with auto-updaters often have to restart to then install, and then restart*.  But Mac apps usually just swap the apps in the background, and then ask you to relaunch to use the new app.


* I know some Windows apps have much more complicated updaters, but ones using services such as Firefox and Chrome are probably beyond our need here.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 15, 2017, 01:11:45 pm
@Joshua: Thanks! I've found and fixed the bug. Please download the new build (https://dev.tproxy.de/knossos/stable/knossos.exe) and install it.
Could you please check if you have a fs2_open.ini in %APPDATA%\Roaming\HardLightProductions\FreeSpaceOpen ?

@chief: I thought so, since most Unixes seem to not lock running exectuables but I wasn't sure. Thanks for confirming it.
I know of the Windows problem and I've dealt with that myself though apparently the results aren't too great.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 15, 2017, 01:44:10 pm
@Joshua: Thanks! I've found and fixed the bug. Please download the new build (https://dev.tproxy.de/knossos/stable/knossos.exe) and install it.
Could you please check if you have a fs2_open.ini in %APPDATA%\Roaming\HardLightProductions\FreeSpaceOpen ?

Before installation of new build: No FS2_Open.INI found! This is a rather freshly installed PC. Writing this as I go! Also, I am using Windows 10.

After installation of new build: Clicking "Select FS2 Directory" in Knossos doesn't do anything! However, manually going to the settings and selecting a thing there works.
I decided to try and install "Last Stand", but that one appears to be improperly configured: The mod does download but it doesn't launch properly, nor does it properly check for dependencies: It does not seem to see that it needs FSO or the MediaVPs.
Next, I tried downloading and installing Lost. This was a lot more promising, as that one did properly list it's dependencies and attempted to download them as well! Simply this, the way dependencies are handled, is the best implementation one can have, and I wholly support this launcher being the community-endorsed launcher for that reason alone. After the bugs are ironed out, obviously. This is great!

However, after the installation had completed it said that it had encountered a problem and said to ask you. Debug log below!
Code: [Select]
INFO:MainThread:launcher.main: Running Knossos 0.4.1 on PyQt5.
INFO:MainThread:_code_cache._create_comtypes_gen_package: Imported existing <module 'comtypes.gen' (<pyimod03_importers.FrozenImporter object at 0x007891F0>)>
INFO:MainThread:_code_cache._find_gen_dir: Using writeable comtypes cache directory: 'C:\Users\joshu\AppData\Local\Temp\comtypes_cache\Knossos-35'
INFO:MainThread:integration.init: Activating Windows integration...
INFO:MainThread:api.get_fso_profile_path: Using profile path "C:\Users\joshu\AppData\Roaming\HardLightProductions\FreeSpaceOpen\".
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160824+09e3792 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160727+6646bf3 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160904+2b680f8 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160809+7265711 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160810+c3b4380 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160906+60fff3f (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160802+dfc10ad (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160908+932c05c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160814+6f7039e (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160808+4b900bb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160731+feb49ea (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160727+aec35e4 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160905+3e4a289 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160806+82ac53a (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160819+127976c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160831+71c2963 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160820+bf93beb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160807+9b53743 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160823+eb086da (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160822+10e88b7 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160729+0819d57 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160830+ee689cb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160817+d840f9d (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160811+83724c0 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160827+1fa84b4 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160812+96c7ea9 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160805+a570eca (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160829+4cb9e5c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160720+30de956 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20170208+86cb91f (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160801+9a91e60 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160813+c17c582 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160818+e9cc460 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160901+5c5a2f6 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160906+8d05393 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160815+43ca34c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160826+4a418a6 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160825+0a67a78 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160816+384b4b9 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160828+864e218 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160821+be12b62 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160903+8d2674e (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-4:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160902+0c240c3 (FSO_nightlies)> is empty, ignoring it!
INFO:Thread-2:util.download: Downloading "https://fsnebula.org/uploads/img/4.png"...
INFO:Thread-5:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-10:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-9:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-4:util.download: Downloading "https://fsnebula.org/uploads/img/7.bmp"...
INFO:Thread-6:util.download: Downloading "https://fsnebula.org/uploads/img/8.bmp"...
INFO:Thread-1:util.download: Downloading "https://fsnebula.org/uploads/img/6.png"...
INFO:Thread-8:util.download: Downloading "https://fsnebula.org/uploads/img/9.png"...
INFO:Thread-4:util.download: Downloading "https://www.dropbox.com/s/divsr5wotncz9os/The_Last_Stand.7z?dl=1"...
ERROR:Thread-4:tasks.work2: File "https://www.dropbox.com/s/divsr5wotncz9os/The_Last_Stand.7z?dl=1" is corrupted!
INFO:Thread-4:util.download: Downloading "https://dl.fsnebula.org/mods/TheLastStand/1.0.0/The_Last_Stand.7z"...
INFO:Thread-8:util.download: Downloading "http://download.fsnebula.org/mods/FSO/3.7.4/1_fs2_open_3.7.4.7z"...
WARNING:MainThread:tasks.finish: Package Windows of mod FSO (FSO) is not installed but in the local repo. Fixing...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 209, in finish
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 844, in save
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\GoG Games\\Freespace 2\\Freespace 2\\mod.json'
INFO:MainThread:api.run_mod: Starting mod "FSO" with cmdline "['-mod', 'Freespace 2']".
INFO:MainThread:api.run_mod: Starting mod "The Last Stand" with cmdline "['-mod', 'TheLastStand']".
INFO:MainThread:api.run_mod: Starting mod "The Last Stand" with cmdline "['-mod', 'TheLastStand']".
INFO:MainThread:api.run_mod: Starting mod "The Last Stand" with cmdline "['-mod', 'TheLastStand']".
INFO:MainThread:api.run_mod: Starting mod "The Last Stand" with cmdline "['-mod', 'TheLastStand']".
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_719bf874d0f8d062dd26a1652b7c4122.png"...
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_7910f4f94df888aa4dd8f914d2423832.bmp"...
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_8d0d19ff9ea331b2dfe3bf47ba55c021.bmp"...
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_9c0f5f71451552492edad6c8e0423ebd.bmp"...
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_f605a953b8d92979ce66804a202155ea.png"...
INFO:MainThread:tasks.__init__: Removing old logo "C:\Users\joshu\AppData\Roaming/knossos\logo_fa3460b77a3081a25de0665154953442.png"...
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160824+09e3792 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160727+6646bf3 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160904+2b680f8 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160809+7265711 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160810+c3b4380 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160906+60fff3f (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160802+dfc10ad (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160908+932c05c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160814+6f7039e (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160808+4b900bb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160731+feb49ea (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160727+aec35e4 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160905+3e4a289 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160806+82ac53a (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160819+127976c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160831+71c2963 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160820+bf93beb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160807+9b53743 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160823+eb086da (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160822+10e88b7 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160729+0819d57 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160830+ee689cb (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160817+d840f9d (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160811+83724c0 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160827+1fa84b4 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160812+96c7ea9 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160805+a570eca (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160829+4cb9e5c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160720+30de956 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20170208+86cb91f (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160801+9a91e60 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160813+c17c582 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160818+e9cc460 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160901+5c5a2f6 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160906+8d05393 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160815+43ca34c (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160826+4a418a6 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160825+0a67a78 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160816+384b4b9 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160828+864e218 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160821+be12b62 (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160903+8d2674e (FSO_nightlies)> is empty, ignoring it!
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160902+0c240c3 (FSO_nightlies)> is empty, ignoring it!
INFO:Thread-6:util.download: Downloading "https://fsnebula.org/uploads/img/4.png"...
INFO:Thread-8:util.download: Downloading "https://fsnebula.org/uploads/img/7.bmp"...
INFO:Thread-10:util.download: Downloading "https://fsnebula.org/uploads/img/8.bmp"...
INFO:Thread-2:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-1:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-4:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-5:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-3:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-9:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-7:util.download: Downloading "https://fsnebula.org/uploads/img/5.bmp"...
INFO:Thread-6:util.download: Downloading "https://fsnebula.org/uploads/img/9.png"...
INFO:Thread-2:util.download: Downloading "https://fsnebula.org/uploads/img/6.png"...
WARNING:MainThread:tasks.finish: Package Windows of mod FSO (FSO) is not installed but in the local repo. Fixing...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 209, in finish
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 844, in save
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\GoG Games\\Freespace 2\\Freespace 2\\mod.json'
INFO:Thread-4:util.download: Downloading "http://mvp.fsmods.net/2014/MV_Effects.7z"...
INFO:Thread-1:util.download: Downloading "http://mvp.fsmods.net/2014/MV_Music.7z"...
INFO:Thread-8:util.download: Downloading "http://mvp.fsmods.net/2014/MV_Assets.7z"...
INFO:Thread-6:util.download: Downloading "http://mvp.fsmods.net/2014/MV_Root.7z"...
INFO:Thread-2:util.download: Downloading "http://mvp.fsmods.net/2014/MV_RadarIcons.7z"...
INFO:Thread-3:util.download: Downloading "http://www.lunardigitalproductions.com/downloads/MediaVPs2014/MV_Advanced.7z"...
INFO:Thread-7:util.download: Downloading "http://download.fsnebula.org/mods/mvps_2014/1.0.0/MV_CB_ANI_2.7z"...
INFO:Thread-10:util.download: Downloading "https://www.dropbox.com/s/q7jivmvp7z2nyq7/Lost_v.1.2.zip?dl=1"...
INFO:Thread-5:util.download: Downloading "http://download.fsnebula.org/mods/mvps_2014/1.0.0/MV_CB_ANI_1.7z"...
INFO:Thread-9:util.download: Downloading "http://mvp.fsmods.net/2014/MV_A-Glows.7z"...
ERROR:Thread-10:tasks.work2: Failed to move file "C:\Users\joshu\AppData\Local\Temp\tmpgosem9ac\content\Lost_v.1.2/Lost.vp" from archive "Lost_v.1.2.zip" for package "Required files" (Lost) to its destination D:\GoG Games\Freespace 2\lost\Lost.vp!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 544, in move
OSError: [WinError 17] Het systeem kan het bestand niet verplaatsen naar een ander station: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2/Lost.vp' -> 'D:\\GoG Games\\Freespace 2\\lost\\Lost.vp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 567, in work2
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 559, in move
PermissionError: [WinError 5] Toegang geweigerd: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2/Lost.vp'
ERROR:Thread-10:progress.run: Exception in Thread!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\progress.py", line 111, in run
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\progress.py", line 387, in work
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 612, in work2
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\tempfile.py", line 808, in __exit__
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\tempfile.py", line 812, in cleanup
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 494, in rmtree
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 384, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 384, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 389, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 387, in _rmtree_unsafe
PermissionError: [WinError 5] Toegang geweigerd: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2\\Lost.vp'
ERROR:raven.AsyncWorker:base._failed_send: Sentry responded with an error: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB8F0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')) (url: https://sentry.gruenprint.de/api/9/store/)
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 141, in _new_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 83, in create_connection
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 73, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 345, in _make_request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 844, in _validate_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 284, in connect
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 146, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB8F0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 423, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 649, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\retry.py", line 376, in increment
requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB8F0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\threaded_requests.py", line 26, in send_sync
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\requests.py", line 35, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 110, in post
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 56, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 488, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\breadcrumbs.py", line 297, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 609, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 479, in send
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB8F0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))
ERROR:raven.AsyncWorker:base._log_failed_submission: ['Failed to move file "C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2/Lost.vp" from archive "Lost_v.1.2.zip" for package "Required files" (Lost) to its destination D:\\GoG Games\\Freespace 2\\lost\\Lost.vp!', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\tasks.py", line 567, in work2', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 559, in move']
ERROR:raven.AsyncWorker:base._failed_send: Sentry responded with an error: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x001D3BF0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')) (url: https://sentry.gruenprint.de/api/9/store/)
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 141, in _new_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 83, in create_connection
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 73, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 345, in _make_request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 844, in _validate_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 284, in connect
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 146, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x001D3BF0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 423, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 649, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\retry.py", line 376, in increment
requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x001D3BF0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\threaded_requests.py", line 26, in send_sync
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\requests.py", line 35, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 110, in post
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 56, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 488, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\breadcrumbs.py", line 297, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 609, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 479, in send
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x001D3BF0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))
ERROR:raven.AsyncWorker:base._log_failed_submission: ['Exception in Thread!', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\progress.py", line 111, in run', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\progress.py", line 387, in work', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\tasks.py", line 612, in work2', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\tempfile.py", line 808, in __exit__', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\tempfile.py", line 812, in cleanup', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 494, in rmtree', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 384, in _rmtree_unsafe', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 384, in _rmtree_unsafe', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 389, in _rmtree_unsafe', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\tools\\win\\py-env\\lib\\shutil.py", line 387, in _rmtree_unsafe']
WARNING:MainThread:tasks.finish: Package Windows of mod FSO (FSO) is not installed but in the local repo. Fixing...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 209, in finish
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 844, in save
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\GoG Games\\Freespace 2\\Freespace 2\\mod.json'
ERROR:raven.AsyncWorker:base._failed_send: Sentry responded with an error: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB090>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')) (url: https://sentry.gruenprint.de/api/9/store/)
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 141, in _new_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 83, in create_connection
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 73, in create_connection
socket.timeout: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 600, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 345, in _make_request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 844, in _validate_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 284, in connect
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 146, in _new_conn
requests.packages.urllib3.exceptions.ConnectTimeoutError: (<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB090>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 423, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 649, in urlopen
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\retry.py", line 376, in increment
requests.packages.urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB090>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\threaded_requests.py", line 26, in send_sync
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\transport\requests.py", line 35, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 110, in post
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\api.py", line 56, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 488, in request
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\raven\breadcrumbs.py", line 297, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\sessions.py", line 609, in send
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\adapters.py", line 479, in send
requests.exceptions.ConnectTimeout: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB090>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)'))
ERROR:raven.AsyncWorker:base._log_failed_submission: ["FileNotFoundError: [Errno 2] No such file or directory: 'D:\\\\GoG Games\\\\Freespace 2\\\\Freespace 2\\\\mod.json'", '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\tasks.py", line 209, in finish', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\repo.py", line 844, in save']
ERROR:MainThread:base._log_failed_submission: ["AttributeError: 'Version' object has no attribute 'select'", '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\windows.py", line 297, in update_mod_buttons', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\repo.py", line 228, in query']
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'
ERROR:MainThread:base._log_failed_submission: ["AttributeError: 'Version' object has no attribute 'select'", '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\windows.py", line 297, in update_mod_buttons', '  File "C:\\Users\\packager\\Downloads\\release\\knossos-release\\knossos\\repo.py", line 228, in query']
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'

Finally, trying to launch either the MediaVPs or Lost or Last Stand simply doesn't work: FS2_Open does not seem to recognize the MOD flag or doesn't recognize flags at all when launched trough the launcher. I think that might be because the command line according to knossos is this:
Code: [Select]
D:\GoG Games\Freespace 2\fs2_open_3_7_4_SSE2.exe -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -enable_shadows -snd_preload -mod lost,mediavps_2014
But it should probably be this:
Code: [Select]
"D:\GoG Games\Freespace 2\fs2_open_3_7_4_SSE2.exe" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -enable_shadows -snd_preload -mod lost,mediavps_2014Without the quotation marks surrounding the file path, Windows doesn't properly recognize spaces.

Also, this is properly a premature request, but I'd love to get AVX builds trough this as my processor supports them and they do make the game run a bit faster. Also, an option to create desktop shortcuts from Knossos would be rad.

I still don't have an FS2_Open.ini.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 15, 2017, 03:06:59 pm
Thanks for the detailed information! Let's see...

Code: [Select]
INFO:Thread-8:util.download: Downloading "http://download.fsnebula.org/mods/FSO/3.7.4/1_fs2_open_3.7.4.7z"...
WARNING:MainThread:tasks.finish: Package Windows of mod FSO (FSO) is not installed but in the local repo. Fixing...
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 209, in finish
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 844, in save
FileNotFoundError: [Errno 2] No such file or directory: 'D:\\GoG Games\\Freespace 2\\Freespace 2\\mod.json'
This took me a while... Knossos installed FSO but is looking in the wrong place. It's in "D:\GoG Games\Freespace 2" not in "D:\GoG Games\Freespace 2\Freespace 2". I think this is caused by my fix for the case bug m!m found.
In your Freespace 2 directory, there should be a mod.json file. Could you please open it, look for "folder": "Freespace 2" and replace it with "folder": "."? That should fix this bug until you decide to reinstall FSO. The Nightlies should be unaffected by the bug.


Code: [Select]
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\windows.py", line 297, in update_mod_buttons
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\repo.py", line 228, in query
AttributeError: 'Version' object has no attribute 'select'
This will be fixed in the next release (breaks the "Last Played" page if you've pinned your last played mod to specific version).

Code: [Select]
WARNING:Thread-8:repo.add_mod: Mod <Mod "FSO Nightly" 0.0.20160824+09e3792 (FSO_nightlies)> is empty, ignoring it!
BTW, this message tells you that the given mod has no packages for your platform. In this case it means that the nightly had no Windows 64bit builds which is normal.
If it were a normal mod or FSO release, it would either be a bug in Knossos or a mistake the uploader did when adding it to the Nebula.

Code: [Select]
ERROR:Thread-10:tasks.work2: Failed to move file "C:\Users\joshu\AppData\Local\Temp\tmpgosem9ac\content\Lost_v.1.2/Lost.vp" from archive "Lost_v.1.2.zip" for package "Required files" (Lost) to its destination D:\GoG Games\Freespace 2\lost\Lost.vp!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 544, in move
OSError: [WinError 17] Het systeem kan het bestand niet verplaatsen naar een ander station: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2/Lost.vp' -> 'D:\\GoG Games\\Freespace 2\\lost\\Lost.vp'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 567, in work2
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 559, in move
PermissionError: [WinError 5] Toegang geweigerd: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2/Lost.vp'
This is interesting. Does the folder for Lost contain the Lost.vp file? Could you please go to the settings for Lost, then click on the "Troubleshoot" tab and click on "Replace corrupted files"? Unless the same problem reoccurrs, that should download the file.
Knossos tried to moved it there after extracting but failed because it was denied access to that file. I'm wondering whether this is caused by the slash in the path or because of your AV. It's a file 7-Zip just wrote, however 7-Zip can't have locked it because at this point 7-Zip isn't running anymore. I guess I'll have Knossos retry the move in future releases.

Code: [Select]
ERROR:Thread-10:progress.run: Exception in Thread!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\progress.py", line 111, in run
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\progress.py", line 387, in work
  File "C:\Users\packager\Downloads\release\knossos-release\knossos\tasks.py", line 612, in work2
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\tempfile.py", line 808, in __exit__
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\tempfile.py", line 812, in cleanup
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 494, in rmtree
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 384, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 384, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 389, in _rmtree_unsafe
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\shutil.py", line 387, in _rmtree_unsafe
PermissionError: [WinError 5] Toegang geweigerd: 'C:\\Users\\joshu\\AppData\\Local\\Temp\\tmpgosem9ac\\content\\Lost_v.1.2\\Lost.vp'
Here's the same error again while trying to delete the temporary folder...

Code: [Select]
ERROR:raven.AsyncWorker:base._failed_send: Sentry responded with an error: HTTPSConnectionPool(host='sentry.gruenprint.de', port=443): Max retries exceeded with url: /api/9/store/ (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x00CDB8F0>, 'Connection to sentry.gruenprint.de timed out. (connect timeout=1)')) (url: https://sentry.gruenprint.de/api/9/store/)
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\connection.py", line 141, in _new_conn
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 83, in create_connection
  File "C:\Users\packager\Downloads\release\knossos-release\tools\win\py-env\lib\site-packages\requests\packages\urllib3\util\connection.py", line 73, in create_connection
socket.timeout: timed out
Here Knossos tried to report the error but the connection timed out which is weird. Can you try going to https://sentry.gruenprint.de/ with your browser?

Finally, trying to launch either the MediaVPs or Lost or Last Stand simply doesn't work: FS2_Open does not seem to recognize the MOD flag or doesn't recognize flags at all when launched trough the launcher. I think that might be because the command line according to knossos is this:
Code: [Select]
D:\GoG Games\Freespace 2\fs2_open_3_7_4_SSE2.exe -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -enable_shadows -snd_preload -mod lost,mediavps_2014
But it should probably be this:
Code: [Select]
"D:\GoG Games\Freespace 2\fs2_open_3_7_4_SSE2.exe" -nomotiondebris -missile_lighting -3dshockwave -post_process -soft_particles -fxaa -fb_explosions -enable_shadows -snd_preload -mod lost,mediavps_2014Without the quotation marks surrounding the file path, Windows doesn't properly recognize spaces.
This shouldn't be a problem since the quotes are added when launching FSO, nevertheless I'll fix the UI code to display quotes, too.

Also, this is properly a premature request, but I'd love to get AVX builds trough this as my processor supports them and they do make the game run a bit faster. Also, an option to create desktop shortcuts from Knossos would be rad.
I'll add the AVX builds today or tomorrow. Any suggestion where I should place the button for the desktop shortcuts?
As a workaround (for now), you can create a desktop shortcut and have it point to "fso://run/<mod id>". The mod id is the same as the folder name, most of the time. Here's the documentation (https://github.com/ngld/knossos/wiki/fso%20Links) for fso:// links. (They don't work on HLP because the forum doesn't seem to like custom protocols. Example (http://fso://run/FSO)).

I still don't have an FS2_Open.ini.
I'm not sure if FSO creates it. Knossos only creates it if you don't have the old registry keys which were used by retail FS2 and older FSO builds. You could create it as an empty text file and then save the settings in Knossos which should then be written to that file.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: AdmiralRalwood on February 15, 2017, 03:25:44 pm
I still don't have an FS2_Open.ini.
They're only used by SDL2 (recent nightly) builds on Windows, so if you're still using 3.7.4 (as the rest of your post indicates), then it won't do you any good.

I'm not sure if FSO creates it.
It does not, on Windows; at the time we need to make a decision about whether or not to use it, the registry code hasn't been initialized (and can't be, because it needs to be done during command-line parsing), so we can't check for the presence of the registry keys to know whether or not it's a brand-new installation, so "old-style" configuration is assumed unless the INI file already exists.

Knossos only creates it if you don't have the old registry keys which were used by retail FS2 and older FSO builds. You could create it as an empty text file and then save the settings in Knossos which should then be written to that file.
I would recommend following wxLauncher's lead here (https://github.com/scp-fs2open/wxLauncher/blob/56b50de7c22ffbea34fe2ccb7a8686b005ced50e/code/global/Compatibility.cpp#L86) and creating fs2_open.ini (and copying over pilot files) if fs2_open.ini doesn't exist when an SDL2 build is run.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 15, 2017, 07:27:33 pm
It's implemented now. I was wondering how to tell whether a FSO build uses the new location or the old. Now I know. Thanks!

@-Joshua-: I've updated "The Last Stand" and added the missing dependencies. Thanks for telling me!

@niffiwan: Sorry for missing your post earlier!  :nervous:
Quote from: niffiwan
How about adding 1-3 star ratings in the base window?
I think it'd be great to add the ratings to the "Last Played" tab.

Quote from: niffiwan
I'm also feeling like it'd be good to tie game settings to each mod; it'll make switching between a mod that needs 3.7.4 (BtA) and another that needs a nightly (JAD). Perhaps the whole game settings section should be per mod?
Yes, makes sense since I'll have to add a build selection to the mod settings anyway.

Quote from: niffiwan
The download is then setting your preferred values for each mod, not sure how to get around that at the moment as opaque inheritance (only idea I had so far) could be hard to understand what's really going on.
I think the only setting a mod author needs to change are the flags. Knossos can already read the default flags for a mod from the metadata but I just realized that the input field is missing in Nebula. I'll add it soon.
The downside to this is that the mod author's flags override the user's default. I might change this later but I'm not sure.

Quote from: niffiwan
Also, you can also break Knossos by selecting a exec that doesn't work for whatever reason, once you close the settings window you can't reopen it to change your FSO exec. This is the error if you run from the cmdline:
You selected a build which is linked against a missing library. Knossos is trying to fix this by looking for a similar named library. It's running ldconfig -p to get a list of all available libraries on your system. I thought ldconfig is part of glibc and thus expected it to be available on all Linux distros. What distro are you using?
If you compile FSO on an Ubuntu system, it's linked against liblua5.1.so.0 but Arch Linux (my distro) only provides liblua5.1.so.5.1 which is the same library but has a different name. Knossos is trying to fix this specific case (here's the code (https://github.com/ngld/knossos/blob/a314967d0cd4746da0ff3f0d2ef8ed01297a77b6/knossos/runner.py#L360) if you're wondering how it works).
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 16, 2017, 03:26:16 am
Sort of. Knossos detected the download, grabbed it, started to install and then Avast stuck its nose in and the whole thing fell over.
Hm, not sure if I can work around that.

It eventually worked the 3rd time.

Quote
Also, I have Diaspora in a different folder from FSO. How can I get Knossos to recognise it?
Knossos expects mods to be subfolders of the selected FS2 directory, there's currently no way around that.
Should I allow users (more likely modders) to add mods from other directories as well? Knossos could do that, I'd just need to change the UI.

I think it's rather vital. All the TCs currently install to folders other than the FS2 one. In fact having the FS2 data present causes quite a few of them to simply crash out.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 16, 2017, 04:36:46 am
Quote
This took me a while... Knossos installed FSO but is looking in the wrong place. It's in "D:\GoG Games\Freespace 2" not in "D:\GoG Games\Freespace 2\Freespace 2". I think this is caused by my fix for the case bug m!m found.
In your Freespace 2 directory, there should be a mod.json file. Could you please open it, look for "folder": "Freespace 2" and replace it with "folder": "."? That should fix this bug until you decide to reinstall FSO. The Nightlies should be unaffected by the bug.

This line does not appear to be present in my mod.json file.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 05:47:42 am
I think we might need to consider if TCs will be using a separate instance of Knossos to manage themselves or if that could somehow be wrangled into one universal installer.  I'd prefer the latter.  wxLauncher does it fairly well with the profile support, even though Diaspora came with its own copy of wxLauncher, you could just as easily point a newer install of wxLauncher at your Diaspora folder and use it too.  Total Conversion support for released ones like Diaspora and TBP and future ones, like FotG (and possibly BP standalone?) will be pretty important.  And those TCs could also have their _own_ mods, so there probably needs to be an entire concept of multiple game installation folders.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: niffiwan on February 16, 2017, 07:31:26 am
Thanks for your speedy responses :)

Regarding the TCs, where does Diaspora currently get installed? I guess I should try it out, if it's into a sub-dir of the FS2 install folder then I'm pretty sure they won't clash. Or could the structure look like:

Knossos_ROOT
  FSO
  FSO_Nightlies
  Freespace
   -BtA
   -BPC
   -(etc)
  TBP
   -Zathas
  Diaspora
   -SuperCoolDiasporaMod

Quote from: niffiwan
The download is then setting your preferred values for each mod, not sure how to get around that at the moment as opaque inheritance (only idea I had so far) could be hard to understand what's really going on.
I think the only setting a mod author needs to change are the flags. Knossos can already read the default flags for a mod from the metadata but I just realized that the input field is missing in Nebula. I'll add it soon.
The downside to this is that the mod author's flags override the user's default. I might change this later but I'm not sure.

There might be an interesting discussion to be had here about pushing some of the flags into FSO. e.g. some mods need to have 3dship-select on, others need to have it off, and some don't care. Those sort of settings might best fit into the game_settings.tbl, as in the mod could tune which flags the user can set. Or perhaps Nebula could allow modder to have three settings for flags, on/off/users-choice.  Or finally, and maybe simplest,  Knossos could use the Nebula flag settings as a default which the user could override (and it'd be cool if "reset to defaults" would go back to the mods defaults rather than e.g. nothing enabled - actually I should play with that in the current version and see what happens).

You selected a build which is linked against a missing library. Knossos is trying to fix this by looking for a similar named library. It's running ldconfig -p to get a list of all available libraries on your system. I thought ldconfig is part of glibc and thus expected it to be available on all Linux distros. What distro are you using?
If you compile FSO on an Ubuntu system, it's linked against liblua5.1.so.0 but Arch Linux (my distro) only provides liblua5.1.so.5.1 which is the same library but has a different name. Knossos is trying to fix this specific case (here's the code (https://github.com/ngld/knossos/blob/a314967d0cd4746da0ff3f0d2ef8ed01297a77b6/knossos/runner.py#L360) if you're wondering how it works).

I'm running Mint 18 ('buntu 16.04) and it has ldconfig installed. Perhaps the command is quoted such that it's trying to run "ldconfig -p" as the full command, rather than a command with 1x arg? Thanks for linking to the code, I'll have to have a look at it (would really like to contribute but work is slaying me at the moment  :sigh:)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 16, 2017, 09:38:27 am
Knossos_ROOT
  FSO
  FSO_Nightlies
  Freespace
   -BtA
   -BPC
   -(etc)
  TBP
   -Zathas
  Diaspora
   -SuperCoolDiasporaMod

I'd be fine with that kind of set up. But because of the sheer number of people who will get Knossos only after getting FS2 from Steam / GOG or even installing from the old CDs what you'll actually end up with is this

Freespace
  FSO
  FSO_Nightlies
  BtA
  BPC
   -(etc)
  TBP
   -Zathas
  Diaspora
   -SuperCoolDiasporaMod

Which makes it very difficult for the launcher to figure out which things are Freespace mods, which are TCs and which are independent games. And even if the launcher manages it, you know that people are going to end up trying to run TCs as mods. Which will always be a complete disaster. Then you also have Diaspora and TBP having their own installers which set up a separate install folder and basically this whole idea sounds like a recipe for disaster.

Now maybe that can be avoided, but we'd need to think ahead of time what the problems are likely to be.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: m!m on February 16, 2017, 10:06:05 am
Knossos could have a mode where the user could point it at an existing FS2/TBP/Diaspora install and Knossos would then copy or move that install to a managed location so that the required directory structure would be maintained.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 10:13:33 am
Maybe I'm in the minority here, but I'd prefer if Knossos could just forget a lot of the past and just be designed for going forward.  For one, that means no support for the registry.  We assume SDL2+ builds everywhere.  Mods will have to be updated to work with Knossos to some extent, including total conversions.  I think that being able to tell it where your FS2 install from Steam lives is the most it should need.  Other TCs should be installed via it or not supported.  Since we have full control over the distribution of everything but FS2 I think this is the best way to meet the community's needs for the installer and also keep the logic behind it as simple as possible.  Old launchers and install methods will remain for debugging, etc.  But this isn't going to be designed for developers so much as new users who just need something that works today, with the latest stuff.  Given a sufficient amount of time we'll have largely forgotten any other methods existed, ideally.  Gearing it towards being able to create new content for the latest engine version (the FRED launch button is a good start) would be important for new users who want to create something.  Just trying to cut down on the number of things we really need to support so this can focus on features and not backwards compatibility that likely won't be helping much of the userbase.

Users will probably want to be able to specify where mods/games are installed, in general, as well as where FS2 is located.  I would think something like this:

Knossos
Knossos_content
 -bin
  --3.8\
  --nightly_YYYYMMDD\
 -FS2_mods
  --BPC
  --BtA
 -Diaspora
  --Diaspora_mod1
 -TBP
  --Zathras
FS2
 -core vp files

The one thing I'm not certain about is whether FS2 mods could live outside of the FS2 folder and still be used as the engine is coded today.  But I think that being able to have an ecosystem that is completely independent from your Steam/GOG/etc FS2 install could be very beneficial.  I'd even go so far as to say that maybe it should just copy the core VP files from the GOG/Steam install into the Knossos_content FS2 folder.  Probably the only way to ensure a stable environment.  We could then notify the user that they can uninstall their Steam/GOG copy if they prefer to let Knossos manage the install from there on out.  We can already download the OGG cutscenes and anything else that is likely to be needed.  But I really think the Steam method of letting you relocate your SteamApps or whatever folder to a location of your choosing would be important here.  Knossos itself could live in a typical Program Files location or whatever, or just be installed via a package manager, etc.  But then you pick your drive/location for the actual content to live.  If you wipe your main drive but had the content on another drive, perhaps a reinstall of Knossos pointed at that folder would even be able to pick up where it left off.  At least if you saved your Knossos config written to APPDATA (which all Knossos config data should be written, if not that knossos_content folder, right?).
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 12:08:37 pm
I think I should clarify how Knossos handles mods right now.
It checks the FS2 directory and any subdirectory for mod.json and mod.ini files. The mod.ini is only read if the mod.json is missing and is intended to support already installed mods. Any mod loaded through the mod.ini has an "(ini)" in its title to tell the user that not all functions are available for this mod.
The mod.json file contains everything Knossos needs to know about the mod and is created during installation of any mod/TC/engine/etc.. The idea was that if you delete a mod folder, that mod would just be gone from the mod list without any errors. You can also copy a mod folder from another computer, archive or installer and Knossos will be able to use that mod (and update it) as long as that mod has a mod.json file.

One of the things that are stored in the mod.json file is the type (mod, engine, TC) which in turn allows Knossos to handle it appropriatly (although this part isn't really implemented, yet).
I propose the following:


There might be an interesting discussion to be had here about pushing some of the flags into FSO. e.g. some mods need to have 3dship-select on, others need to have it off, and some don't care. Those sort of settings might best fit into the game_settings.tbl, as in the mod could tune which flags the user can set. Or perhaps Nebula could allow modder to have three settings for flags, on/off/users-choice.  Or finally, and maybe simplest,  Knossos could use the Nebula flag settings as a default which the user could override (and it'd be cool if "reset to defaults" would go back to the mods defaults rather than e.g. nothing enabled - actually I should play with that in the current version and see what happens).
The latter is the way it's currently implemented but I like the idea of the three settings. Though that would mean that I'll have to implement a proper UI for that instead of a simple text box on Nebula.

I'm running Mint 18 ('buntu 16.04) and it has ldconfig installed. Perhaps the command is quoted such that it's trying to run "ldconfig -p" as the full command, rather than a command with 1x arg? Thanks for linking to the code, I'll have to have a look at it (would really like to contribute but work is slaying me at the moment  :sigh:)
I'm sure that ldconfig is called correctly but I think I accidentally cleared the PATH variable which might have caused the bug. I can certainly sympathize with the lack of time (*looks at nearly 2 years of inactivity* :nervous:)

Which makes it very difficult for the launcher to figure out which things are Freespace mods, which are TCs and which are independent games. And even if the launcher manages it, you know that people are going to end up trying to run TCs as mods. Which will always be a complete disaster. Then you also have Diaspora and TBP having their own installers which set up a separate install folder and basically this whole idea sounds like a recipe for disaster.
As long as everything (except for FS2 and normal mods) is installed through Knossos or has a mod.json file, Knossos will be able to tell the difference without problem. Folders which only have a mod.ini file and no mod.json file are treated as normal mods and all other folders are ignored.

Knossos could have a mode where the user could point it at an existing FS2/TBP/Diaspora install and Knossos would then copy or move that install to a managed location so that the required directory structure would be maintained.
Moving the files will probably break things (i.e. desktop shortcuts, other launchers) and copying would waste disk space. Unless a complicated problem prevents it, I'd like to support those folders by generating a mod.json file if possible and then add the folder to a list of additional mod locations. The ideal case would obviously be that TCs bundle a mod.json file with their installer.


Maybe I'm in the minority here, but I'd prefer if Knossos could just forget a lot of the past and just be designed for going forward.  For one, that means no support for the registry.  We assume SDL2+ builds everywhere.
Registry support is already implemented (and has been for a while) but it's only used if the fs2_open.ini is missing AND the registry keys exist. As soon as an SDL2 build is launched the fs2_open.ini is created from the existing registry keys (this is implemented but not yet released).

Mods will have to be updated to work with Knossos to some extent, including total conversions.  I think that being able to tell it where your FS2 install from Steam lives is the most it should need.  Other TCs should be installed via it or not supported.  Since we have full control over the distribution of everything but FS2 I think this is the best way to meet the community's needs for the installer and also keep the logic behind it as simple as possible.
I agree regarding the logic and that the FS2 directory should be the only directory a user has to manually set (maybe I should add some kind of auto detection? Something like "Hey, you apparently installed FS2 with Steam, do you want me to use that?").
Keeping the logic as simple as possible limits the amount of possible errors or edge-cases which in turn makes working on Knossos and maintaining it much easier. That said, the only change neccessary should be to add a mod.json file.
I have an idea regarding TCs: I can build a simple installer using NSIS (http://nsis.sourceforge.net/Main_Page) which would download and install Knossos if it isn't already installed and then use Knossos to install the most recent version of the TC. The TC authors would be able to customize this installer. This provides several benefits: The installer itself will be very small, fully compatible with Knossos and it will always install the newest version of the TC even if a user downloads an old copy of the installer since the installer itself doesn't contain any of the TC files itself.

Users will probably want to be able to specify where mods/games are installed, in general, as well as where FS2 is located.  I would think something like this:

Knossos
Knossos_content
 -bin
  --3.8\
  --nightly_YYYYMMDD\
 -FS2_mods
  --BPC
  --BtA
 -Diaspora
  --Diaspora_mod1
 -TBP
  --Zathras
FS2
 -core vp files
I'm not too sure about the nested folders. I think you can create them with the current version of Knossos by entering something like "test/my_folder" in the folder field on Nebula.

The one thing I'm not certain about is whether FS2 mods could live outside of the FS2 folder and still be used as the engine is coded today.  But I think that being able to have an ecosystem that is completely independent from your Steam/GOG/etc FS2 install could be very beneficial.
I know that it at least used to work. There are two things required for this to work:
The root directory is usually the current working directory when starting FSO. However, on Windows FSO chdirs to the exe's directory which means that I have to copy the exe files (https://github.com/ngld/knossos/blob/develop/knossos/runner.py#L127) to the new root directory. This mechanism is already neccessary to support the nightlies since Knossos installs them into a subdirectory. The same mechanism could be used to start FSO inside a TC's directory which would force FSO to ignore the retail files.

I'd even go so far as to say that maybe it should just copy the core VP files from the GOG/Steam install into the Knossos_content FS2 folder.  Probably the only way to ensure a stable environment.  We could then notify the user that they can uninstall their Steam/GOG copy if they prefer to let Knossos manage the install from there on out.
If the user gives Knossos a GOG installer, Knossos extracts it with InnoExtract and then moves the *.vp, *.hcf and *.mve files to the selected destination folder and deletes the rest. It would make sense to apply a similar logic to the Steam install (but copying the files instead of moving, obviously).

Knossos itself could live in a typical Program Files location or whatever, or just be installed via a package manager, etc.  But then you pick your drive/location for the actual content to live.
This is how it works right now and I want to keep it like that (unless someone offers a valid reason to change it). The only exception would be the portable mode which I want to implement later (not sure when, probably once Knossos is stable).

If you wipe your main drive but had the content on another drive, perhaps a reinstall of Knossos pointed at that folder would even be able to pick up where it left off.  At least if you saved your Knossos config written to APPDATA (which all Knossos config data should be written, if not that knossos_content folder, right?).
Knossos only saves settings and the list of available mods to APPDATA, information about installed mods is contained in the mod's mod.json. Which means that in your case you'd still lose your settings (including flags, etc.) but could still play and update the already installed mods.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: m!m on February 16, 2017, 12:27:51 pm
  • Being able to modify the root directory FSO uses (easy on Linux, PITA on Windows and I think a recent code change changed this on Mac). Would be nice if this could be controlled through a flag or environment variable.
That's not true anymore. All FSO builds now use the working directory as the default directory where they search for the root VPs.

  • The -mod parameter allows to specify paths not just directory names (this should be the relevant code (https://github.com/scp-fs2open/fs2open.github.com/blob/master/code/cfile/cfilesystem.cpp#L390)).
That code could easily adapted to check if a path is absolute and if yes then the root directory isn't used. That should allow to specify full paths for -mod parameters.

EDIT: Actually, no, it's not that easy. FSO allows to use per-user directories for each mod which are also used to write mod-specific data. When you use an absolute path then it isn't possible to determine the relative name of the directory for the user directory which would probably break a lot of stuff. How about a flag that just tells FSO to ignore the working directory for data files and only use the mod directories? That would allow Knossos to set the working directory to some root directory and then construct relative paths from there.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 12:55:46 pm
If we copy the Steam or GOG or whatever VPs into the Knossos_content/FS2 folder, with all the mods living alongside it there, I don't think this is an issue anymore.  Unless the issue is that the binary isn't in the same root folder as the root VP files.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: General Battuta on February 16, 2017, 01:44:43 pm
Installing now. Everything from Windows Smartscreen to Avast started yelling about DANGER! That's a hurdle we need to overcome if this is gonna go more general.

e: ugh Avast is making me wait before I can actually run it.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 01:52:16 pm
That's not true anymore. All FSO builds now use the working directory as the default directory where they search for the root VPs.
It seems like you're right about Windows and Linux. However on MacOS that doesn't seem to be the case (https://github.com/scp-fs2open/fs2open.github.com/blob/af285fbdbdc4fd35789203f3359266d3dbd45e40/freespace2/freespace.cpp#L8091).

Installing now. Everything from Windows Smartscreen to Avast started yelling about DANGER! That's a hurdle we need to overcome if this is gonna go more general.
I'm open to suggestions. AFAIK the warning is based on the fact that not too many people have installed this before. If anyone knows why these programs are complaining or how to avoid it, I'd gladly listen.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: General Battuta on February 16, 2017, 01:56:02 pm
Yeah. Avast thinks it's an extremely rare file. I told Avast I trust it!
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 02:09:28 pm
That APPLE_APP functionality was only recently restored.  It has been restored to fix being able to run the app bundle from the finder by doubleclicking it, just like you can on Windows.  It was complaining until recently that it could not be run from the drive root.  We can adjust the behavior of the APPLE_APP define as long as we don't break that (ideally, not sure we absolutely need that behavior but it was considered a regression).  There are still some (https://github.com/scp-fs2open/fs2open.github.com/issues/1228) issues (https://github.com/scp-fs2open/fs2open.github.com/issues/1209) with the app bundles and Mac in general we need to resolve anyway though.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: jg18 on February 16, 2017, 02:16:14 pm
This looks really cool. I'll try it out and comment as soon as I can from the point of view of a former wxL co-project lead.

Just wanted to reply to chief real quick that I'd strongly prefer for FSO to remain runnable from the Finder as long as it doesn't make SCP devs' lives significantly harder. We can continue that discussion over PM or in another thread though.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 02:19:27 pm
Yeah if nothing else I'd hate for us to decide a bug I just helped fix didn't need to be fixed after all :P
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 16, 2017, 02:58:44 pm
OK, I need to read all this and learn how Knossos works still... but I think this is probably one of the most important developments we have going on right now based on what my understanding is so far. That said... how do I get involved in the UI design for the player's side of things? I have thoughts and ideas. (Note, I have not yet downloaded Knossos and looked at it. Will do that tonight after work.)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 03:16:37 pm
Yeah I think the UI will make or break this on the player's (Knossos) side of things.  The terminology actually really makes sense - Knossos is the portal to the Nebula, Nebula is the workspace where modders configure and set up their mods for Knossos to install them.  As I understand it anyway.  The Nebula could also have a user aspect to it as well, similar to GOG or Steam's websites.  But Knossos is the client and the only thing a player would really need to use to get things.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 16, 2017, 03:23:31 pm
From the deep analysis method of glancing at the GitHub manifest an hour ago, I think the frontend ui's all done in HTML.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 03:30:03 pm
Most of the UI is done with Qt and can be edited using the Qt Designer (https://doc.qt.io/qt-5/qtdesigner-manual.html) the relevant files are in the ui subfolder (https://github.com/ngld/knossos/tree/develop/ui).
The mod list (and welcome page) is realized using HTML/CSS/JS and the relevant files are in the html subfolder (https://github.com/ngld/knossos/tree/develop/html).

The actual application is written in Python and uses PyQt5 to interface with Qt.

This looks really cool. I'll try it out and comment as soon as I can from the point of view of a former wxL co-project lead.
Thanks! That would be really helpful. Did you run into any problems with AV software?

I have thoughts and ideas.
I'll be glad to hear them. :)

Yeah I think the UI will make or break this on the player's (Knossos) side of things.  The terminology actually really makes sense - Knossos is the portal to the Nebula, Nebula is the workspace where modders configure and set up their mods for Knossos to install them.  As I understand it anyway.  The Nebula could also have a user aspect to it as well, similar to GOG or Steam's websites.  But Knossos is the client and the only thing a player would really need to use to get things.
I'm glad that you picked up on the naming scheme. That's pretty much what I (and Hellzed) intended. :D
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 16, 2017, 04:40:54 pm
Feedback:

- your AUR package should have qt5-webkit as a dependency

- I selected 'install a TC', pointed it at an empty directory and tried to get a Diaspora install set up. When I click 'install Diaspora' it says that it can't, because FSO is missing. I installed the FSO nightly as well but it still gives the same error message.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 16, 2017, 04:52:00 pm
Ah, OK, I see that the mod installation functionality is in much earlier stages than I thought.

I started from scratch just doing an FSO installation from the GoG launcher, something which proceeded with admirable smoothness; I had a working FSO install up and ready with a few clicks. Some more writing in the installer to make the process self-documenting for a new user would be a good aim, I think. Also I think the launcher should provide a sane default for your FSO install directory — what is that sane default, though?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 05:10:21 pm
Thanks for the feedback. I've updated the AUR package but I added qt5-webengine instead of qt5-webkit. Knossos supports both but I prefer webengine since the webkit implementation has been deprecated by Qt.
The "FSO is missing" error is caused by the fact that I haven't uploaded a Linux 64bit build for FSO, yet.

Some more writing in the installer to make the process self-documenting for a new user would be a good aim, I think.
Where should I put the additional help text?

Also I think the launcher should provide a sane default for your FSO install directory — what is that sane default, though?
I have no idea. I usually install it to ~/games/fs2.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 16, 2017, 05:22:02 pm
Games\Freespace 2 is a sane default (and IIRC it's the one that's offered by the windows CD). Alternatively: Knossos/FS2 so you have a clean folder to have those TCs in.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: AdmiralRalwood on February 16, 2017, 05:28:07 pm
There might be an interesting discussion to be had here about pushing some of the flags into FSO. e.g. some mods need to have 3dship-select on, others need to have it off, and some don't care.
No mod ever needs the 3D selection flags enabled; if the 2D art isn't present/defined, the 3D model is used automatically.

Alternatively: Knossos/FS2 so you have a clean folder to have those TCs in.
I don't particularly like that idea, myself; imagine if your current FS2 install was in wxLauncher/FS2 and you wanted to switch to Knossos.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 16, 2017, 05:31:08 pm
Obviously it'll have to be platform-specific.

Some more writing in the installer to make the process self-documenting for a new user would be a good aim, I think.
Where should I put the additional help text?

Ugh **** I've forgotten the idea I had of how this should work. When you start the launcher fresh it should present you with a clear list of instructions:

Are you trying to install Freespace from scratch? Click here to set that up => instructions for obtaining and unpacking the GoG installer and, in the future, hopefully scan for existing retail/Steam installs too.

Are you trying to install a free, standalone total conversion (i.e. make it clear what a TC is)? Click here => separate options and brochures for Diaspora, WoD, TBP, etc.

Are you trying to use Knossos with an existing FSO install? Click here => whatever that option does.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Axem on February 16, 2017, 05:39:48 pm
I'm not fully caught up on the thread yet, but I do just want to bring up something about fsnebula.org. I do think it would be useful to have it look pretty, just so we could throw a weblink to a mod's page to people or in like in social media posts. So someone who might not have FS or Knossos installed might happen across a link, be impressed with the quality and start their way to the world of FreeSpace modding. With Steam, store pages render the same in your own browser or in steam itself (obviously because its all just html anyway). Just a thought anyway!
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 16, 2017, 05:43:07 pm
Yeah, it could also replace all the disparate and horribly unmaintained mod homepages that sit around ****ting up Google results for FSO.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 16, 2017, 05:46:52 pm
Posting this here so I don't forget the idea...

Knossos should be able to directly open the Debug Logs or the folder to the Debug Logs.. or for bonus points, automatically upload them to somewhere and offer players a link they can post to the forums.



Where is Nebula hosted? Are we taking advantage of anyone here? If ngld died in the next 15 seconds, would we be able to mourn and then still maintain Nebula?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 06:07:05 pm
Knossos can already open the debug log (it's kind of hidden at Settings > Game settings > Open fs2_debug.log). A button to open the config folder has been added thanks to a recent suggestion but it's not released yet.

I proposed a button which would upload the log to pastebin and put the URL in your clipboard but no one's responded to that idea.

Nebula is hosted on my own server, the source code is on GitHub but it's missing installation instructions.

@Phantom Hoover: I think that could work but I'm worried that you'll have to start scrolling if I put too much text on the welcome page.
@Axem: Making fsnebula.org pretty is certainly something I want to do but getting Knossos stable is a higher priority for me. The comparison with Steam has been mentioned and is something I wanted to do but I haven't been able to figure out a good page design.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 16, 2017, 06:26:48 pm
Upload log to pastebin in a must.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: JSRNerdo on February 16, 2017, 06:54:09 pm
Oh, this is really cool! Is there a way to import the installation lists and stuff from the old java launcher/installer so Knossos is fully-featured to download more campaigns?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: JSRNerdo on February 16, 2017, 07:06:11 pm
Also it, uh, doesn't work for me at all, I can install it fine, but once I launch it for the first time none of the three buttons do anything at all. I'm on win10.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 07:12:12 pm
There isn't (not yet anyway) but whenever you install a new mod, Knossos checks if you already have the required files and only downloads missing or changed files.
That said Knossos can still launch already installed mods. It won't be able to notify you about updates or repair the files.

EDIT: Damn. Can you please post your %APPDATA%\Knossos\log.txt?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: JSRNerdo on February 16, 2017, 07:15:59 pm
It's quite literally just "INFO:MainThread:launcher.main: Running Knossos 0.4.1 on PyQt5."

It might be because I have a ! in my windows profile name, but surely it would throw errors if that were the case?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 07:23:39 pm
That shouldn't be a problem. Can you please go to Settings > Game settings and set the FS2 path manually?

It seems like at least the welcome page is broken on Windows (Joshua reported a similar issue earlier).

EDIT: Just figured out what caused this bug. Will be fixed in the next release, until then the three buttons on the welcome page are broken on all platforms.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 16, 2017, 07:46:04 pm
Whenever I click on settings I get the Windows busy pointer for a few seconds and then nothing happens.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: JSRNerdo on February 16, 2017, 07:56:23 pm
It works! Yay! But now I'm wondering why it doesn't detect FRED...
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 16, 2017, 08:05:26 pm
Sorry, found the bug thanks to the automatic error reporting. Will be fixed in the next release.
I need to add more error messages and check the old code again.

If you want to continue testing, you can use another launcher to save your FSO settings. Afterwards the settings window should work again.

It works! Yay! But now I'm wondering why it doesn't detect FRED...
If you install a recent nightly through Knossos, it might work. It doesn't recognize existing FRED executables thanks to a mistake I made (and already fixed in git).
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 16, 2017, 08:31:58 pm
Also I think the launcher should provide a sane default for your FSO install directory — what is that sane default, though?

If we wanted to a provide a Current User/All Users type of option on certain platforms, that could be the difference between ~/games and /usr/share/games (I think that's a pretty typical location for *nix anyway).  Macs should probably do ~/something.  Not sure of a good place for Knossos content there, but I imagine this and many other problems have already been solved by Steam, since we're nearly duplicating that behavior.  In fact, many questions being asked here could be answered by asking "How does Steam/Galaxy do it?"  They are already solved problems, so no need to reinvent the wheel.  If we have a good reason to do it differently, so be it, but I think doing the research into how those clients behave will at least help us answer the majority of questions about how a system like this should behave.  People getting paid to figure this stuff out have already been doing it for years.  And where there is room for improvement or something that better fits our ecosystem, we can diverge.

Also, as for documentation, I'd prefer the UI flow be intuitive enough that reading a lot of text isn't necessary - that, even more so than translations, would be a huge boost to the ability for international users to pick up on it.  The more that can inferred simply from graphics and near-universal keywords, images, etc, the better.  Aside from configuring the actual purchase transaction, how much reading is required to install a game on steam?  See a pretty looking game, look at some screenshots, click the comically large Buy button, and once you pay it is installing.  GOG Galaxy goes a step farther with their visual library presentation, which allows you to pick your game from a large picture of its box and then just hit Play.  Lots to be learned from these UX examples and room for improvement too.  Looking forward to mjn.mixael's ideas here.

No mod ever needs the 3D selection flags enabled; if the 2D art isn't present/defined, the 3D model is used automatically.

Hear hear.  I'd love to see that option gone.  And many others.  I'm sure there's a few people that like 'forcing' these behavior changes on, but many of these are probably not worth the CLI clutter.  Especially if we want to streamline FSO's configuration into a new environment.

Alternatively: Knossos/FS2 so you have a clean folder to have those TCs in.
I don't particularly like that idea, myself; imagine if your current FS2 install was in wxLauncher/FS2 and you wanted to switch to Knossos.

If we are planning on copying the retail FS2 data from wherever it might already be installed into the Knossos environment, this would actually be fine.  I think starting with support for GOG, Steam, and manual install location is a pretty critical requirement, as getting FS2 itself configured and/or installed into Knossos is pretty much a dependency for anything else, and supporting the different means it could have been acquired by a newcomer is therefore a high priority.  I still think copying the VPs into Knossos and leaving the existing install behind, if using a Steam install or a separate retail or prior install will result in the sanest environment for Knossos to work with.  My previous suggested structure sounds in line with what Joshua was suggesting.  One giant Knossos content folder (separate from the Knossos install itself probably) with folders for each TC, with FS2 itself being treated as a TC, with simply a special case for how its root content is acquired.   After that, FS2, Diaspora, TBP, etc can all be on equal ground.  Minimizing the amount of special treatment, and additionally keeping it to just the initial setup process, should lead to an easier to maintain project, that can have features added more rapidly.

I'm not fully caught up on the thread yet, but I do just want to bring up something about fsnebula.org. I do think it would be useful to have it look pretty, just so we could throw a weblink to a mod's page to people or in like in social media posts. So someone who might not have FS or Knossos installed might happen across a link, be impressed with the quality and start their way to the world of FreeSpace modding. With Steam, store pages render the same in your own browser or in steam itself (obviously because its all just html anyway). Just a thought anyway!

Agree.  Mods should be able to publicly showcase on the website as well as within the client.  However, if one has to take priority over the other initially, that would probably be ok.  I think the web appearance can be focused on after the client look, but if it makes sense to try to unify them somehow, that might work best.  Since both are presented via html, that might not be impossible.

Knossos should be able to directly open the Debug Logs or the folder to the Debug Logs.. or for bonus points, automatically upload them to somewhere and offer players a link they can post to the forums.

Useful idea, but I think this one is not as critical as some other core functionality for the most viable product offering.  It doesn't mean much to someone just wanting to install and run games.  Debugging features that help us out can probably be in a later revision.  But now that I think about it, an influx of new users will almost certainly mean an influx of bug reports...so maybe it's not such a bad idea.  But I'm really hoping we can design something that, by design, minimizes the possibility of 'user error', which has often in our case really been design error.

Where is Nebula hosted? Are we taking advantage of anyone here? If ngld died in the next 15 seconds, would we be able to mourn and then still maintain Nebula?

I had also attempted to set up the nebula on my own server at one point to see how hard a mirror, etc would be to set up.  Didn't quite get it. (http://nebula.cliftongordon.com/workshop)

Oh, this is really cool! Is there a way to import the installation lists and stuff from the old java launcher/installer so Knossos is fully-featured to download more campaigns?

Personally I am hoping that each mod will be brought over one at a time, as I think there will be more information needed than what the old installer files provided.  Although an importer on the Nebula portal to get what data is available (file locations, hashes) might be nice, if that data would be useful to Nebula.

There isn't (not yet anyway) but whenever you install a new mod, Knossos checks if you already have the required files and only downloads missing or changed files.
That said Knossos can still launch already installed mods. It won't be able to notify you about updates or repair the files.

EDIT: Damn. Can you please post your %APPDATA%\Knossos\log.txt?

This is nice that it is already complete, although I would have argued that supporting existing mod installations could have waited or been omitted entirely.  I mentioned this in IRC earlier, but I feel like solving problems that only exist now, but won't after Knossos is considered widely adopted and won't exist anymore, don't need to be solved at all.  I don't think people will avoid using it simply because it wouldn't work with existing FS2 and TC installs.  But if it already can to some extent, that's cool too.  If we did move to a system that groups all installed content under a single Knossos directory space, that could still come in handy if we wanted to support people taking existing downloaded data and placing it into the right folder name.  I think following the KISS principle and not worrying about supporting edge cases like that is still going to be the more maintainable option though.  Down the line, supporting things to help modders create new mods could probably be built in, taking much of the initial mod bootstrap out of the hands of the user.  A button that makes a new mod folder for the given TC, with a mod.json or mod.ini or whatever basic field editor (or even a default template), a data folder, and an option to open that folder in your Explorer/Finder/etc.  A link to a good wiki page on what to do next then would probably suffice.  Then maybe even a VP packager and uploader integration to your Nebular account.  Those last things could probably be a later phase.  The first part would let people start working, without having to really manually muck with the rest of the filesystem.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: General Battuta on February 16, 2017, 11:39:55 pm
Man! Now that Avast has accepted the installer as a friendly file, it wants to interrogate the actual Knossos.exe? I guess? I suppose this would be a problem with any .exe we distribute.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 16, 2017, 11:50:29 pm
Wait until you try updating! Avast manages to get its knickers into such a twist that I suspect I could install magnets and get my computer to power itself. :)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 17, 2017, 04:48:48 am
Also, as for documentation, I'd prefer the UI flow be intuitive enough that reading a lot of text isn't necessary - that, even more so than translations, would be a huge boost to the ability for international users to pick up on it.  The more that can inferred simply from graphics and near-universal keywords, images, etc, the better.  Aside from configuring the actual purchase transaction, how much reading is required to install a game on steam?  See a pretty looking game, look at some screenshots, click the comically large Buy button, and once you pay it is installing.  GOG Galaxy goes a step farther with their visual library presentation, which allows you to pick your game from a large picture of its box and then just hit Play.  Lots to be learned from these UX examples and room for improvement too.  Looking forward to mjn.mixael's ideas here.

Obviously it'd be ideal if we could give users such a simple presentation, but unlike Steam and GOG we have to work in an environment where copyright bull**** forbids us from providing the core copy of a 20-year-old game to build an installation off. The user has to buy that on their own, it's not something Knossos can automate. It's an unavoidable complication of the install process and you need to make it clear and understandable in the UI. The (really crude) mockup I posted earlier was modelled off Battuta's install guide for Blue Planet and his 'find your next campaign' guide: make it clear to the user what they should do to get what they want.

(Obviously this doesn't apply to the TCs, which can and should have glossy one-click installs up front.)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 17, 2017, 04:54:10 am
Also I think the launcher should provide a sane default for your FSO install directory — what is that sane default, though?

If we wanted to a provide a Current User/All Users type of option on certain platforms, that could be the difference between ~/games and /usr/share/games (I think that's a pretty typical location for *nix anyway).  Macs should probably do ~/something.  Not sure of a good place for Knossos content there, but I imagine this and many other problems have already been solved by Steam, since we're nearly duplicating that behavior.  In fact, many questions being asked here could be answered by asking "How does Steam/Galaxy do it?"  They are already solved problems, so no need to reinvent the wheel.  If we have a good reason to do it differently, so be it, but I think doing the research into how those clients behave will at least help us answer the majority of questions about how a system like this should behave.  People getting paid to figure this stuff out have already been doing it for years.  And where there is room for improvement or something that better fits our ecosystem, we can diverge.
On Linux users usually can only write to ~ which rules out /usr/share/games. Steam uses ~/.local/share/Steam/SteamApps but I don't think putting the whole content directory in a hidden directory is a good idea in our case. GOG Galaxy still hasn't been released for Linux (although they eventually want AFAIK).
Windows is more flexible: Steam uses C:\Program Files (x86)\Steam\SteamApps and the GOG installer uses C:\GOG Games\Freespace2. Since Vista (I think?) most programs don't have write access to the "Program Files" folder which explains GOG's decision. I think Steam modifies the folder permissions or something like that to work around this problem.

Also, as for documentation, I'd prefer the UI flow be intuitive enough that reading a lot of text isn't necessary - that, even more so than translations, would be a huge boost to the ability for international users to pick up on it.  The more that can inferred simply from graphics and near-universal keywords, images, etc, the better. [...]  Looking forward to mjn.mixael's ideas here.
I agree. This is one of the reasons I'm asking for feedback and improvements.

Obviously it'd be ideal if we could give users such a simple presentation, but unlike Steam and GOG we have to work in an environment where copyright bull**** forbids us from providing the core copy of a 20-year-old game to build an installation off. The user has to buy that on their own, it's not something Knossos can automate. It's an unavoidable complication of the install process and you need to make it clear and understandable in the UI. The (really crude) mockup I posted earlier was modelled off Battuta's install guide for Blue Planet and his 'find your next campaign' guide: make it clear to the user what they should do to get what they want.
I think it makes more sense to link to a guide which explains how to buy and download the GOG Installer than to explain it in the UI.

If we are planning on copying the retail FS2 data from wherever it might already be installed into the Knossos environment, this would actually be fine.  I think starting with support for GOG, Steam, and manual install location is a pretty critical requirement, as getting FS2 itself configured and/or installed into Knossos is pretty much a dependency for anything else, and supporting the different means it could have been acquired by a newcomer is therefore a high priority.  I still think copying the VPs into Knossos and leaving the existing install behind, if using a Steam install or a separate retail or prior install will result in the sanest environment for Knossos to work with.
On first launch Knossos could check a list of known paths for retail files and if it finds any, a new button "Use your FS2 installation (pick this if you're not sure which one you need)" (or something like that) would show up on the welcome page. If the user clicks that button, Knossos would ask for an installation directory and then copy all the retail files. This should cover a majority of new players (on Windows at least).
Something I'd like to know is if it's possible to download FS2 on Linux using Steam. I don't think so but I'm not sure.

My previous suggested structure sounds in line with what Joshua was suggesting.  One giant Knossos content folder (separate from the Knossos install itself probably) with folders for each TC, with FS2 itself being treated as a TC, with simply a special case for how its root content is acquired.   After that, FS2, Diaspora, TBP, etc can all be on equal ground.  Minimizing the amount of special treatment, and additionally keeping it to just the initial setup process, should lead to an easier to maintain project, that can have features added more rapidly.
This sounds like it could indeed simplify my work a bit. Most of this will work with the existing metadata schema (https://github.com/ngld/knossos/blob/develop/converter/schema.txt). The only thing missing is a type for TC mods (i.e. a fanmade mission or campaign for Disaspora) which I can easily add.

Agree.  Mods should be able to publicly showcase on the website as well as within the client.  However, if one has to take priority over the other initially, that would probably be ok.  I think the web appearance can be focused on after the client look, but if it makes sense to try to unify them somehow, that might work best.  Since both are presented via html, that might not be impossible.
It's quite possible. The browser embedded in Knossos is based on Chromium. It's capable of displaying a normal website (including modern stuff like HTML5 videos).

Knossos should be able to directly open the Debug Logs or the folder to the Debug Logs.. or for bonus points, automatically upload them to somewhere and offer players a link they can post to the forums.

Useful idea, but I think this one is not as critical as some other core functionality for the most viable product offering.  It doesn't mean much to someone just wanting to install and run games.  Debugging features that help us out can probably be in a later revision. [...]
[/quote]
As I said in an earlier post: The button is already implemented in the released version of Knossos.

I had also attempted to set up the nebula on my own server at one point to see how hard a mirror, etc would be to set up.  Didn't quite get it. (http://nebula.cliftongordon.com/workshop)
I'll write up a proper installation guide.

Personally I am hoping that each mod will be brought over one at a time, as I think there will be more information needed than what the old installer files provided.  Although an importer on the Nebula portal to get what data is available (file locations, hashes) might be nice, if that data would be useful to Nebula.
Importing existing file locations or hashes isn't possible because Knossos and Nebula need more data than the FSO installer files provide (this was the main reason Nebula was created). Importing the existing title, description, logo and mirror URLs does make sense though. However, it might be faster to copy those by hand than to write an automated importer for this.

This is nice that it is already complete, although I would have argued that supporting existing mod installations could have waited or been omitted entirely.
The code to support mod.ini files is at this point more than 2 years old (https://github.com/ngld/knossos/commit/c3e841770ac1f1ed5b5495a5c87510dcffb59e4a) and less than 100 lines of code.

I mentioned this in IRC earlier, but I feel like solving problems that only exist now, but won't after Knossos is considered widely adopted and won't exist anymore, don't need to be solved at all.  I don't think people will avoid using it simply because it wouldn't work with existing FS2 and TC installs.  But if it already can to some extent, that's cool too.
Back when I started this I thought that supporting existing installs was a key requirement. Guess I was wrong. :)

Down the line, supporting things to help modders create new mods could probably be built in, taking much of the initial mod bootstrap out of the hands of the user.  A button that makes a new mod folder for the given TC, with a mod.json or mod.ini or whatever basic field editor (or even a default template), a data folder, and an option to open that folder in your Explorer/Finder/etc.  A link to a good wiki page on what to do next then would probably suffice.  Then maybe even a VP packager and uploader integration to your Nebular account.  Those last things could probably be a later phase.  The first part would let people start working, without having to really manually muck with the rest of the filesystem.
Those are great ideas (I've thought about an uploader to Nebula in the past because it'd allow me to do most of the validation before the mod is uploaded); I'll put them on the to do list.

Wait until you try updating! Avast manages to get its knickers into such a twist that I suspect I could install magnets and get my computer to power itself. :)
I've looked for a way to avoid these warnings but the only way I found would be to sign the .exe files (which in itself wouldn't be a problem) but it would require me to buy a signing certificate for $ 60/year (or more depending on where you buy it).
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: niffiwan on February 17, 2017, 05:05:24 am
On first launch Knossos could check a list of known paths for retail files and if it finds any, a new button "Use your FS2 installation (pick this if you're not sure which one you need)" (or something like that) would show up on the welcome page. If the user clicks that button, Knossos would ask for an installation directory and then copy all the retail files. This should cover a majority of new players (on Windows at least).
Something I'd like to know is if it's possible to download FS2 on Linux using Steam. I don't think so but I'm not sure.

I'm pretty sure you can't download FS2 on Linux using Steam. Steam doesn't let you install games that aren't valid for the current OS (unless there's some hidden option I'm not aware of... and presuming that you don't install & run the Windows version of Steam under Wine).

edit: oh yeah, I'm happy to help out with some cash for a signing certificate... just need to figure out how to use paypal or something  :nervous:
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 17, 2017, 05:14:46 am
I think that's something that we should point out in any installation guide we're going to create. It won't matter to Windows users but might be important for unexperienced Linux or Mac users.

EDIT: I appreciate the cash offer but I don't want to beg for something like this, especially since it'd be a recurring cost. For transparency's sake: The $ 60 / year price is taken from StartSSL.com's page. After reading through the page more carfully it seems that the actual certificate is valid for 2 years which means that I'd only have to pay the $ 60 once every 2 years. That actually seems affordable. I'll think about it....
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 17, 2017, 05:49:49 am
I can't believe the typos in the essay I wrote last night.  I really did mean "should be possible", which hopefully is obvious from how the context was flowing.  And I meant Nebula not Nebular :p

Linux, just like Windows, can get elevated permissions to install to globally accessible locations, can't it?  Not saying we have to support that, but it can be done.  /usr/share/games would be the equiv of program files on Windows basically, or some folder like that.  I think allowing it to ask for those permissions at the right point in the process without having to run as admin/root would be ideal.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: niffiwan on February 17, 2017, 07:01:04 am
I think that's typically done with sudo; and it's graphical equivalents like gksudo. But TBH I don't really think it's required, for instance GoG Games for Linux default to installing in your homedir (~/GoG Games/NAME) and don't bother prompting to elevate privs.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 17, 2017, 07:05:06 am
Works for me then.  Users can always chown if they want.

Edit:  s/crown/chown. Damn phone auto-correct.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Phantom Hoover on February 17, 2017, 07:12:36 am
I think it makes more sense to link to a guide which explains how to buy and download the GOG Installer than to explain it in the UI.

If people read guides then we wouldn't need Knossos as much as we do. There is a ton of value in being able to direct people to an install process that holds their hand and tells them what to do at each step.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 17, 2017, 08:45:04 am
I am an avid reader of guides and still hugely appreciate it when I don't actually have to do that.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 17, 2017, 11:37:05 am
I am just hoping we can make it intuitive enough that any actual reading is minimal, within the client or otherwise.  Less words is less to translate to Chinese, which would make karajorma happy probably.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 17, 2017, 03:06:11 pm
So I had an idea and decided to build a small demo (https://dev.tproxy.de/knossos/guide_test/guide_test.html) (click on "Please guide me!" to start the guide).
What do you think? I think something like this could explain the whole task with as little text as possible.
I know that it doesn't look great (it's stretched too wide and the back button is positioned awkwardly) but that's not the point.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 17, 2017, 03:18:27 pm
I'm not sure a page like that is necessary.  I think sticking with a welcome that is just a showcase of some highlighted available mods would be good.  The MediaVPs should generally be at the top of the list of things to install.  As soon as any FS2 mod is selected, if FS2 is not set up yet, just open a bit drag n drop box.  You can drag the GOG installer into it, a shortcut that points to the FS2 retail, a folder containing the VP files...it would take a good bit of 'smart' code, but this is probably the only part of the entire system that needs to be 'smart'.  And it would be isolated to just configuring FS2 and its mods.  It would not ask you to do anything with FS2 until you want to install a mod though.  Seems like a pretty intuitive UX to me anyway.  Perhaps on the same window as the dropbox, there could be a button with the word 'Scan' or 'Scan for FS2 Retail Data'.  As few words as possible to get the point across.  I suppose then at that point, a manually finder for the folder with the VPs or a GOG executable could also be offered.  I'm not sure how well this could work cross-platform with PyQt.  Dropboxes aren't a hugely common thing yet but they've been used by many apps to make interfaces more accessible (Dropbox, Gmail file attachments, imgur...).  If you drop something into it that it can't find any FS2 content for, then pop up an error, maybe with more words and suggestions.  But initially you could probably keep the words to a bare minimum, only offering more assistance for when the user seems confused.  Maybe the dropbox itself could have a big icon in the background that is recognizable as FS2, and/or the GOG installer icon, etc.  Or helper text saying "Drag and drop your GOG FS2 Installer, or Freespace2 folder here".
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 17, 2017, 03:34:47 pm
So I tried to install Knossos and it won't let me change the install folder to where I want to. Specifically, if I try to choose any other destination than the default, the OK button is greyed out. If I type in the destination I want instead of clicking Browse, the Next button gets greyed out. What's the deal?

EDIT: I ended up just installing it to E:\ root instead of E:\FSTools\... not ideal, but worked.

Now it won't let me select an FS2 directory. I click that big blue button and nothing happens. :(

EDIT2: Hopefully this is good feedback for new users or perhaps I just found a lot of bugs? I poked around in the Settings and found a place to set my FS2 path. I'm guessing that big blue button I mentioned is supposed to leader here. I got that set and everything seems to be working now. However, it is not finding FRED, which is frustrating given that I like to FRED! :o Oh, and I can't seem to create a mod on Nebula. Gives me a 500 Internal Server Error.

Anyhow, with this mostly running, I'm going to create some mockups of what I think would be a good UI for mod browsing!
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 17, 2017, 04:01:16 pm
The installer won't let you select a directory which isn't empty though apparently that check didn't work as expected.
The second bug is known and will be fixed by the next release. It was a side-effect of implementing translations.
The problem with FRED is also known and will be fixed by the next release, as well.

I'll hopefully be able to finish the next release tonight which will fix quite a few bugs.

Anyhow, with this mostly running, I'm going to create some mockups of what I think would be a good UI for mod browsing!
I'm looking forward to it and I'm sorry about the rough start.

@chief: Something like this?
(https://dev.tproxy.de/knossos/images/drop_test.png)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: chief1983 on February 17, 2017, 04:29:44 pm
That's kind of what I had in mind.  The top text I don't think is really adding anything useful though.  Maybe it could be hidden behind a help ? icon or something.  Would you have in mind that the blue button would be performing a scan?  Because as it is worded it sounds like it would do the same thing as clicking the target area.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 17, 2017, 04:38:15 pm
The blue button is only blue because it currently has the focus (it's part of my gtk theme).

That button would initially be disabled and labeled "Scanning for FS2 installations...". The scan would run in the background and wouldn't block the UI.
If an installation is found, the button is enabled and would change to "Use existing FS2 installation". If no installation is found, it would stay disabled and change to "No FS2 installations found".
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Spoon on February 17, 2017, 05:06:06 pm
Looks really promising. Keep up that good work, ngld!
I'm running Avast too, but it didn't freak out about the file or asked me to wait or anything. I had an error that I clicked through at the end of the installation though, something about the main script not being able to run or what not. There are some UI things I feel need some changing, but I'll wait and see what mjn brings up as suggestions so I can hook in on that.
FRED doesn't work for me either, and the initial three buttons didn't seem to do anything, had to set things up through the settings.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 12:15:09 am
OK, so here's my mockup design. Now bear with me, because it's very different from all the launchers we've been used to for years. However, I think it's time for the influence of 5.5g Launcher to finally die.

This assumes we get the ability to launch FSO Execs from subfolders (which I hear is a newish FSO feature). Mods should be able to optionally require a specific build. Players should almost never have to deal with selecting a build. Mod installation will treat the required build as a dependency and make sure it's downloaded.

I chose the vertical tiles because I think they look really nice and it's kinda how we're used to selecting things. (DVD/Bluray cases, Books, Video game cases, etc.) Now, I know many of you are thinking.. what about all the legacy mods that won't have a vertical style tile or no tile at all? I thought about that and gave a possible option in the mockup. However, while Knossos is capable of launching pre-installed legacy mods.. it's designed do install and manage mods from Nebula. Because of this, I think this is as good a time as any to essentially digitize our mod collection and put them on Nebula. During that process is a good time to add a vertical style image along with searchable keywords that Nebula/Knossos already supports.

I'm next working on a mockup for a mod Details page. This will be the area where you can choose mod settings, see the version number, description and a few other things that I'm going to wait explaining until I have the mockup ready to show off. But I think you'll really like it.

Mouseover to select Play, Details, or Upgrade.

Clean mockup first.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Nebula%20Design_zpsv4b0hqkl.jpg~original)

Now with explanations.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Nebula%20Design%20E1_zpsdkk5osjc.jpg~original)
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Nebula%20Design%20E2_zpsynfquhtz.jpg~original)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 18, 2017, 12:31:17 am
Can't fault it. That's exactly what I'd have done if I had the artistic talent to make a mockup. I assume Home shows what you have installed and Nebula shows what you can download, right?

I agree fully with not worrying about supporting existing installations.

Can you mock up the Details page too?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: AdmiralRalwood on February 18, 2017, 12:33:16 am
...Wow.

I'd write more words, but all that comes to mind is :yes:.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 12:35:02 am
Yes, I'm working on the details page. Given that the above took me um... more time than I'd like to admit... the Details page will be up some time tomorrow, I think.

I'll also say that I envision the Nebula page to be pretty similar to the above except instead of a Play button, you get an Install button.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: karajorma on February 18, 2017, 12:38:34 am
Yep. That's fine. The two should look almost exactly the same.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 02:54:30 am
Eh, screw it. Who needs sleep? Here's a lot of things.

Knossos Mouseover Play
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Play_zpskwxe5nen.jpg~original)

Knossos Mouseover Update
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Update_zpsucyrufsh.jpg~original)

Knossos Mouseover Updating
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Updating_zps89tifkrb.jpg~original)

Knossos Mouseover Error
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Error_zpsw73qpjt8.jpg~original)

Knossos Nebula (Where players can download new mods. Ideally Knossos will be smart enough to hide mods the player already installed from the list. This is also where we'll scroll campaign release highlights across the top instead of errors and notifications.)
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Nebula_zpsytg1mlys.jpg~original)

Knossos Development Version (So far, the biggest difference is that it shows FRED and Mod Path buttons instead of Update. Will need to go into Details to Update mods with this view. Other details can be added, I just couldn't think of any. I was going to list the Current Build somewhere visible, but since each mod should be able to run the required build like a dependency, that's no longer important or relevant like in current launchers.)
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Development_zpsbzqqukmr.jpg~original)

Finally, here's what I'm thinking for the Details pages. Can show a slideshow of screenshots. The Settings button will lead to where you can see the FSO build it will run (with an override option, perhaps), the flags for the mod with both "Mod Recommended" flags and user overrides, and any other mod specific settings that might need to be changed. In general, this stuff will be set to auto defaults by User, Mod, or Knossos in that priority. The Forum button opens the mod's forum or release thread in the user's default browser. Videos will play YouTube videos right inside Knossos (if Knossos could support that).
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Details_zpsithrj4r8.jpg~original)
Video Window Open
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Details%20Video_zpsdinlfypy.jpg~original)

Here's a version where the mod is errored.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Details%20Error_zpsljvyc5vf.jpg~original)

Here's a version where the mod needs an update.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Details%20Update_zps5br2zb4z.jpg~original)

Here's a version where the mod is currently updating.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Details%20Updating_zpsu82dtxqw.jpg~original)
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 03:06:31 am
Oh, and ngld.. I'm going to work with qt and see if I can figure out how to actually start building such an interface. Mostly I don't want you to think I'm just posting these and expecting you do just do all the work! :) I'm fairly handy with HTML/CSS, so I'm gonna try and give it a go.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: AdmiralRalwood on February 18, 2017, 03:11:10 am
All of my :yes:.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: X3N0-Life-Form on February 18, 2017, 03:54:57 am
mjn, that looks positively awesome.

Quote
Players should almost never have to deal with selecting a build. Mod installation will treat the required build as a dependency and make sure it's downloaded.

Agreed, some mods & TCs have in the past come out with their own .exe or required a nightly, which is an extra hurdle in playing those mods that would be nice to get rid of.


This is the most exciting thread I've seen on HLP in a long time, keep it up  :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: niffiwan on February 18, 2017, 04:22:18 am
Completely awesome mockups Mjn, love your work
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Grizzly on February 18, 2017, 06:01:07 am
With the most recent Knossos 0.4.3 update, I have been able to succesfully launch and play a mod! In this case, the last stand, which is a rather neat thing. However, the settings menu finds itself unable to save settings and the 7.4 build that I am currently using finds itself unable to register my joystick.

Code: [Select]
INFO:MainThread:launcher.main: Running Knossos 0.4.3 on PyQt5.
INFO:MainThread:_code_cache._create_comtypes_gen_package: Imported existing <module 'comtypes.gen' (<pyimod03_importers.FrozenImporter object at 0x007CA230>)>
INFO:MainThread:_code_cache._find_gen_dir: Using writeable comtypes cache directory: 'C:\Users\joshu\AppData\Local\Temp\comtypes_cache\Knossos-35'
INFO:MainThread:integration.init: Activating Windows integration...
INFO:MainThread:api.get_fso_profile_path: Using profile path "D:\GoG Games\Freespace 2".
ERROR:MainThread:windows.write_config: Failed to save the configuration!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\knossos-release\knossos\windows.py", line 1034, in write_config
ValueError: invalid literal for int() with base 10: ''
INFO:MainThread:api.get_fso_profile_path: Using profile path "D:\GoG Games\Freespace 2".
INFO:MainThread:api.run_mod: Starting mod "The Last Stand" with cmdline "['-nomotiondebris', '-missile_lighting', '-3dshockwave', '-post_process', '-soft_particles', '-fxaa', '-fb_explosions', '-enable_shadows', '-snd_preload', '-mod', 'TheLastStand,Mediavps_2014']".
INFO:Thread-11:api.get_fso_profile_path: Using profile path "D:\GoG Games\Freespace 2".
INFO:MainThread:api.get_fso_profile_path: Using profile path "D:\GoG Games\Freespace 2".
ERROR:MainThread:windows.write_config: Failed to save the configuration!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\knossos-release\knossos\windows.py", line 1034, in write_config
ValueError: invalid literal for int() with base 10: ''
ERROR:MainThread:windows.write_config: Failed to save the configuration!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\knossos-release\knossos\windows.py", line 1034, in write_config
ValueError: invalid literal for int() with base 10: ''
ERROR:MainThread:windows.write_config: Failed to save the configuration!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\knossos-release\knossos\windows.py", line 1034, in write_config
ValueError: invalid literal for int() with base 10: ''

Keep up the good work though! This is rather exciting.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 18, 2017, 12:26:34 pm
 :eek:  Wow! I can't wait to see these mockups become real!

This assumes we get the ability to launch FSO Execs from subfolders (which I hear is a newish FSO feature). Mods should be able to optionally require a specific build. Players should almost never have to deal with selecting a build. Mod installation will treat the required build as a dependency and make sure it's downloaded.
Knossos already launches the nightlies from a subfolder and it seems to work. Required builds are already treated as dependencies but Knossos can't automatically select the right build for each mod. I'm still working on that.

Videos will play YouTube videos right inside Knossos (if Knossos could support that).
The embedded browser is based on Chromium so it should be possible.

Oh, and ngld.. I'm going to work with qt and see if I can figure out how to actually start building such an interface. Mostly I don't want you to think I'm just posting these and expecting you do just do all the work! :) I'm fairly handy with HTML/CSS, so I'm gonna try and give it a go.
I think the easiest path would be to realize most of the UI in HTML/CSS because the Qt Widgets try to provide a native look&feel and aren't as easy to style as HTML.
I could make a dev build of Knossos which would allow you to directly change the HTML, CSS and JS files. Would that help?

I have to make a few internal changes before the new UI can work. I'll work on those first but don't hesitate to ask if you have any questions or need help!
If several mods are installed at the same time (because of dependencies or other reasons), they will all have the same progress percentage due to the way Knossos tracks progress.
I have one final nitpick: It would be nice if the user could see the installation / update progress even if they don't hover over the mod's tile. Maybe a tiny progress bar above the mod's title?

@Joshua: Go to the Network page (in the Settings window) and put any valid port in the "Force valid port:" field. That should work as a workaround until the next release.
Regarding you joystick problems: Could you go to the "Game settings" page, click on "Open FS2's config folder" and check what the "CurrentJoystick" setting in the fs2_open.ini is set to.
Is Knossos detecting your joystick?

Keep up the good work though! This is rather exciting.
Thanks! I just hope that I won't introduce too many new bugs while implementing the new UI. :D
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 12:38:32 pm
:eek:  Wow! I can't wait to see these mockups become real!

This assumes we get the ability to launch FSO Execs from subfolders (which I hear is a newish FSO feature). Mods should be able to optionally require a specific build. Players should almost never have to deal with selecting a build. Mod installation will treat the required build as a dependency and make sure it's downloaded.
Knossos already launches the nightlies from a subfolder and it seems to work. Required builds are already treated as dependencies but Knossos can't automatically select the right build for each mod. I'm still working on that.
Glad you like it! This would be a really great feature to prevent players from having to muddle in builds and their crazy names sometimes. Additionally, as I thought about it more, I added the following dropdown to the mockup. Dunno if it would be possible, but it would be handy if Knossos could auto-select the Debug or Fast Debug of the same build number as the mod dependency.

(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20All_zpsmk3dytya.jpg~original)

Quote
Videos will play YouTube videos right inside Knossos (if Knossos could support that).
The embedded browser is based on Chromium so it should be possible.
Awesome!

Quote
Oh, and ngld.. I'm going to work with qt and see if I can figure out how to actually start building such an interface. Mostly I don't want you to think I'm just posting these and expecting you do just do all the work! :) I'm fairly handy with HTML/CSS, so I'm gonna try and give it a go.
I think the easiest path would be to realize most of the UI in HTML/CSS because the Qt Widgets try to provide a native look&feel and aren't as easy to style as HTML.
I could make a dev build of Knossos which would allow you to directly change the HTML, CSS and JS files. Would that help?
Yes, that would be awesome!

Quote
I have to make a few internal changes before the new UI can work. I'll work on those first but don't hesitate to ask if you have any questions or need help!
If several mods are installed at the same time (because of dependencies or other reasons), they will all have the same progress percentage due to the way Knossos tracks progress.
I have one final nitpick: It would be nice if the user could see the installation / update progress even if they don't hover over the mod's tile. Maybe a tiny progress bar above the mod's title?
Excellent idea!

Lastly, I redesigned the "Development" tab based on feedback to make it much easier for developers to have access to the launcher tools the use most often. I'm not quite sure how the Mod Path section would be handled since Knossos does most of that automatically, but that's something mod creators use a lot. I was also considering a Mod Dependency Add/Remove button. These mods are probably not linked to Nebula, so perhaps that will make that section easier. The rest is just copied/duplicate access to what's already in each mod's settings page (normally accessed through the Details page). Take a look.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Development_zpsbmxd4qwu.jpg~original)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: AdmiralRalwood on February 18, 2017, 12:46:33 pm
Regarding you joystick problems: Could you go to the "Game settings" page, click on "Open FS2's config folder" and check what the "CurrentJoystick" setting in the fs2_open.ini is set to.
Well, he said he's using 3.7.4, which uses the registry on Windows, not fs2_open.ini.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: m!m on February 18, 2017, 01:16:17 pm
Also, the joystick selection has changed a bit since the SDL2 merge since it's now possible to identify joysticks better when using SDL2. If you set the "CurrentJoystickGUID" option in your ini then FSO will use that to determine the correct joystick. You can retrieve this GUID with SDL_JoystickGetGUID. I'll try to add support for this to Knossos when I find the time to implement it.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: Hellzed on February 18, 2017, 01:23:18 pm
@ngld: First, awesome job fixing and extending Nebula!

The changes you mentioned regarding Knossos UI, I guess it's a rework of the Javascript API, exposing features required by the new UI proposal (which is awesome, @mjn !) ?
Are you aiming at fully separating a mostly Javascript + HTML + CSS display code, and system features (installation an removal of mods...) ?

Given the added complexity of the new UI, I'd say it would be time to move away from jQuery and pick a proper framework to handle widgets and the UI state.
This would allow to handle design tasks separately, with mjn only having to care about the main layout and widgets. Much less work for him!
This would also be useful if the mod library in Nebula and in Knossos end up sharing the same appearance and code.

My personal choice for this would be React + Redux, with a Knossos/Nebula middleware to talk to the required APIs.
Also, to handle all the asynchronous things going on in the new UI (installations, checksums...), it would be super interesting to support Promises/A+ in Knossos API.

Thoughts?

PS: I'm also thinking about rationalising Nebula API, especially regarding the library, so it's more convenient to use in Knossos. So much stuff I didn't know when I started this, since it was my first Symfony project, time to make things right!
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: krevett62 on February 18, 2017, 01:44:25 pm
Hello I got a little problem with knossos.
The previous version (0.4.1 iirc) installed correctly, launched correctly, but I was not able to do anything with it (when I click on the button to select my FS2 install, nothing happens)
The new version installs correctly, but won't launch. I get a fatal error "Failed to execute script _main_"

By the way I'm on win7 pro x64

Edit: md5 of knossos.exe downloaded ABED4121C086C75DB48E9414F829E0D3
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: 666maslo666 on February 18, 2017, 03:40:38 pm
This looks great! I have some suggestions:

- show download speed, download size, estimated time to completion, ability to pause downloads and limit download speed
- ability to discover/add already downloaded mods
- mod details should include rating, news, update changelogs
- link to IRC / real time chat maybe?
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: ngld on February 18, 2017, 05:17:28 pm
Sorry for the long delay (and post)!

Additionally, as I thought about it more, I added the following dropdown to the mockup. Dunno if it would be possible, but it would be handy if Knossos could auto-select the Debug or Fast Debug of the same build number as the mod dependency.
I can do that but recent nightlies only offer Fast Debug builds. Do we hide the Debug option in the case it's not available or should we display it as disabled?

Quote
Oh, and ngld.. I'm going to work with qt and see if I can figure out how to actually start building such an interface. Mostly I don't want you to think I'm just posting these and expecting you do just do all the work! :) I'm fairly handy with HTML/CSS, so I'm gonna try and give it a go.
I think the easiest path would be to realize most of the UI in HTML/CSS because the Qt Widgets try to provide a native look&feel and aren't as easy to style as HTML.
I could make a dev build of Knossos which would allow you to directly change the HTML, CSS and JS files. Would that help?
Yes, that would be awesome!
Here you go (https://dev.tproxy.de/knossos/develop/html_test.7z)

Lastly, I redesigned the "Development" tab based on feedback to make it much easier for developers to have access to the launcher tools the use most often. I'm not quite sure how the Mod Path section would be handled since Knossos does most of that automatically, but that's something mod creators use a lot. I was also considering a Mod Dependency Add/Remove button. These mods are probably not linked to Nebula, so perhaps that will make that section easier. The rest is just copied/duplicate access to what's already in each mod's settings page (normally accessed through the Details page). Take a look.
*snip*
If the user changes the Mod Path, I could move the mod.json file to the new directory. If you had several copies of your mod folder, this would allow you to switch between these copies. I'm not sure if that's very useful, though.
I'm wondering if we should add an additional field "Mod Folders" which would allow you to specify several folders if your mod folders are in more than one folder. The "Mod Dependencies" field is supposed to contain only a list of mods.
All the BTA1_* entries from you example would be in the "Mod Folders" list instead. This would also allow Knossos to automatically pack each folder as a .vp before uploading to Nebula if/when we implement that later.

I agree that editing the mod dependencies should be possible. For every dependency, Knossos needs a mod ID and instead of asking for the mod ID, I'd rather ask the modder to pick from the list of available mods.

Well, he said he's using 3.7.4, which uses the registry on Windows, not fs2_open.ini.
Sorry, I keep forgetting that the SDL2 builds aren't released as stable, yet.
@Joshua: In that case it would be HKEY_LOCAL_MACHINE\Software\Volition\Freespace2\CurrentJoystick in the registry.

Also, the joystick selection has changed a bit since the SDL2 merge since it's now possible to identify joysticks better when using SDL2. If you set the "CurrentJoystickGUID" option in your ini then FSO will use that to determine the correct joystick. You can retrieve this GUID with SDL_JoystickGetGUID. I'll try to add support for this to Knossos when I find the time to implement it.
Thanks for telling me about that. If I want to keep compatibility with the pre-SDL2 builds, would it be possible / make sense to set both CurrentJoystick and CurrentJoystickGUID?

@ngld: First, awesome job fixing and extending Nebula!
Thanks! :D

The changes you mentioned regarding Knossos UI, I guess it's a rework of the Javascript API, exposing features required by the new UI proposal (which is awesome, @mjn !) ?
Are you aiming at fully separating a mostly Javascript + HTML + CSS display code, and system features (installation an removal of mods...) ?
The JS API is a part of the internal changes but most of the changes are related to additional data I need to store (the new mod settings and additional fields for the mod metadata).

Given the added complexity of the new UI, I'd say it would be time to move away from jQuery and pick a proper framework to handle widgets and the UI state.
This would allow to handle design tasks separately, with mjn only having to care about the main layout and widgets. Much less work for him!
This would also be useful if the mod library in Nebula and in Knossos end up sharing the same appearance and code.
I'm not sure about using React. It feels like overkill because we only have 3 different screens (the mod lists, the details screen and the development screen) with mostly simple interaction (modals and hover effects). The complicated actions (installing, updating, etc.) are handled in Python.
React would make it easier but it would also require me to use a bundler (most likely Webpack), a compiler (Babel) and the minified JS code would probably be much larger than the current ~110KB.
With the currently planned UI it seems more work to add React than to use jQuery.

My personal choice for this would be React + Redux, with a Knossos/Nebula middleware to talk to the required APIs.
I don't think Redux is neccessary because we don't need a centralized state here. Instead of writing middleware or reducers, I'd just use React's this.setState() to update the UI.

Also, to handle all the asynchronous things going on in the new UI (installations, checksums...), it would be super interesting to support Promises/A+ in Knossos API.
The JS API can't support promises (unless I write a wrapper) because the browser interface is too simple to do that. Also, I don't use the API to retrieve data instead I provide the neccessary data whenever I trigger an event to update the UI.

PS: I'm also thinking about rationalising Nebula API, especially regarding the library, so it's more convenient to use in Knossos. So much stuff I didn't know when I started this, since it was my first Symfony project, time to make things right!
It's great that you want to help! Please take a look at my fork because a lot has changed (https://github.com/Hellzed/hlp-nebula/compare/master...ngld:master?expand=1). I've updated Symfony, scrapped the ACL system and switched back to using Voters and made quite a few changes to the forms (file uploads are now possible!).
The only API that Knossos uses is the repository JSON file which contains the mod metadata and a single endpoint which I added to track mod installations. If you're talking about the API between Nebula and knossos-server (I should really give it a proper name), I've made a few changes to it and it's fine the way it is.

Important changes that are still missing would be a WYSIWYG editor for the mod description, resizing for uploaded images (+ thumbnails), an integrated help guide (something like this (https://easelinc.github.io/tourist/)) and translations.

The previous version (0.4.1 iirc) installed correctly, launched correctly, but I was not able to do anything with it (when I click on the button to select my FS2 install, nothing happens)
That bug is fixed in 0.4.3.

The new version installs correctly, but won't launch. I get a fatal error "Failed to execute script _main_"
Can you please check if "%APPDATA%\Knossos\log.txt" exists? If it does, please post its contents here.

- show download speed, download size, estimated time to completion, ability to pause downloads and limit download speed
Download speed: Not sure where
Download size: Will be shown in the install dialog
Estimated time to completion: This is HARD since several files are downloaded at the same time which often leads to fluctuating download speed. Also, the currently downloading progress and still queued files have to be taken into account. If I implement this, it will most likely only be after 1.0.0.
Ability to pause downloads: Maybe
Limit download speed: Once again, kinda hard since the library I'm using doesn't support this and implementing this myself will cause additional overhead during downloading (more CPU load) which I'd like to avoid.

- ability to discover/add already downloaded mods
This is planned.

- mod details should include rating, news, update changelogs
Not sure about news and changelogs because those could be part of the mod's description.
Ratings are planned.

- link to IRC / real time chat maybe?
Or Discord? I think we can put that as well as a link to the "Getting started" forum on a help page.

Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 05:36:19 pm
Do mod authors write a change log when they update their mod to a new version? We could just grab and display that data somewhere.

I have thoughts on the mod folders when I'm not typing on a phone.

Super excited to start trying to build the UI when the kids are in bed. :)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 18, 2017, 05:48:12 pm
mjn.mixael, that is incredible work on the UI.  I finally got to look at it on my desktop instead of my phone.  It does exactly what I've been suggesting with keeping the words to a minimum, and the experience as intuitive as possible.  I am only really not sure about the news scroller, it seems dated compared to the rest of the design.  I would suggest a News tab on the main screen for general news, and possibly under the Mod details, another News button/tab for news specific to that mod, or just the ability to scroll down below the details for mod-specific news.  But all in all, yeah, wow.  I'm just not sure we have the bandwidth to keep up with how many more installs it will get when it becomes this easy to get into!
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 05:51:42 pm
That's great feedback, Chief. I'll see what I can do about that.

And yes, bandwidth would be an awesome problem to have. :)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: Phantom Hoover on February 18, 2017, 06:33:46 pm
I think the first-time install process is arguably the most important part of Knossos, and the hardest to explain -- particularly when you have to explain to users that they have to separately buy and provide a copy of FS2 retail. I am absolutely sure that if you try to remove words from the process you'll just make it more confusing. Do you have an idea for how that should look?
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 18, 2017, 06:54:20 pm
Strictly speaking, you only need it to play FS2 mods.  If you installed it for Diaspora, FotG, TBP, etc, you wouldn't even need to point it to FS2.  I think it should probably be handled upon attempting to install MediaVPs, etc, the first time.  Hopefully a dialogue with a minimal verbosity can make it clear what needs to be done.  I think a combination of scanning for it in expected locations (Steam install), dropping the GOG installer into a drop target, scan button, file explorer to point to the FS2 install folder, etc could make it as painless as that can be.  And I am hoping that finding FS2 can be one of the only pain points that has to exist in the design.  I am hoping we can solve the rest by not worrying about backwards compatibility.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: Goober5000 on February 18, 2017, 07:00:14 pm
Awesome UI mockups. :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: Phantom Hoover on February 18, 2017, 07:05:31 pm
Strictly speaking, you only need it to play FS2 mods.  If you installed it for Diaspora, FotG, TBP, etc, you wouldn't even need to point it to FS2.  I think it should probably be handled upon attempting to install MediaVPs, etc, the first time.  Hopefully a dialogue with a minimal verbosity can make it clear what needs to be done.  I think a combination of scanning for it in expected locations (Steam install), dropping the GOG installer into a drop target, scan button, file explorer to point to the FS2 install folder, etc could make it as painless as that can be.  And I am hoping that finding FS2 can be one of the only pain points that has to exist in the design.  I am hoping we can solve the rest by not worrying about backwards compatibility.

Yes. I think a good starting point from downloading Knossos and launching it for the first time is to present the user with mjn-style options for "Freespace Open + mods" and then, separately, all the standalones. If they select FSO then the launcher needs to explain to them that Step 1 is buying a copy of Freespace 2 and that we recommend using GOG to do so. Probably it should give them a direct link to the store page. Don't **** around trying to explain this exclusively with pictures; human language exists for a reason.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 07:14:14 pm
ngld, I've got the HTML build and I'm tracking with everything so far. What I can't seem to find is what's defining the buttons' color and shape (Install, Play, FRED, etc.), though I can see how they are placed and how they work.

I also can't seem to find what has defined the mod list as a single column. Are these in qt?
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: ngld on February 18, 2017, 07:28:03 pm
The current HTML is using Bootstrap (https://getbootstrap.com/) which defines the btn, btn-primary, btn-success, etc. classes. Those classes define the button shape and color.

I also can't seem to find what has defined the mod list as a single column. Are these in qt?
I'm not sure what you mean. To display the mod list, the update_mods function (in js/modlist.js) is called which calls render_row() for each mod entry. render_row() creates a copy of one of the #tpl-something divs (which one depends on the current tab). That copy is then appended in update_mods to the #mods div. Every row is a div and divs are displayed below each other unless you apply CSS.
Qt doesn't influence the displayed web page. It should look the same if accessed through Chrome (although you would need to remove the hide classes to see anything because the JS won't run).

EDIT: @Phantom Hoover: Did you see this? https://dev.tproxy.de/knossos/guide_test/guide_test.html It was an experiment if I could make a short but intuitive guide. Any thoughts on that?
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 07:44:43 pm
Derp.. I missed the btn classes in bootstrap. WALL OF CLASSES

Aha, I understand now about the rows. I don't know java very well, but that explanation makes sense. I can follow it from there, I think.

So the main UI buttons at the top essentially change which div is rendered? I guess I'll worry about the mod display first and then we can see about dealing with the UI above the HTML window.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: ngld on February 18, 2017, 08:07:37 pm
I don't know java very well, but that explanation makes sense.
It's a common misconception but Java and JavaScript are very different kanguages.

So the main UI buttons at the top essentially change which div is rendered?
Yes. Everytime you click a tab, a filtered mod list is generated and passed to update_mods() along with the name of the clicked tab. The JS function then clears the #mods div and calls render_row for each mod in the passed list.

I guess I'll worry about the mod display first and then we can see about dealing with the UI above the HTML window.
I think it's easier to code the new UI in HTML than to style the current UI.
Title: Re: PUBLIC BETA: Knossos 0.4.1 (launcher / mod installer)
Post by: Spoon on February 18, 2017, 08:10:14 pm
but I'll wait and see what mjn brings up as suggestions so I can hook in on that.
Yeah lol no, nothing to hook in on. Everything I might have said or suggested have been completely blown away by these awesome looking ui mockups :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 18, 2017, 08:28:54 pm
I'm sure some explanatory text will be necessary when fs2 is being located, unless it autolocates, but I am hoping a full guid won't be _necessary_ to understand the process enough.  Providing good documentation for those interested in what is going on would be great though, as people filing bug reports will often be the types to try to understand the system in a little more detail.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 09:22:20 pm
I guess I'll worry about the mod display first and then we can see about dealing with the UI above the HTML window.
I think it's easier to code the new UI in HTML than to style the current UI.

So you want to completely remove the qt stuff and do it all in HTML/CSS/JS? Sounds good to me. I'll need some help getting things like the search function, filter function to work.

Is there a way to remove the OS default title bar so we can do something that looks nicer like what I have in the mockups? (Would need to add minimize, maximize, close options.. and I'm not sure about cross platform.)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 18, 2017, 09:25:08 pm
Since the OS window wrapper already provides those things, is there a good reason to suppress it?  This is one area where I'm not sure doing it the steam way is really useful to us.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 10:37:28 pm
Because it looks nicer? (I think)

In other news...
(https://ibin.co/3CtOV57CHyCy.jpg)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 18, 2017, 11:41:58 pm
I love the Mantis sandbox, create a quick mod that can reproduce a bug, and then have something easily distributed to others to reproduce it right?
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 18, 2017, 11:56:14 pm
I love the Mantis sandbox, create a quick mod that can reproduce a bug, and then have something easily distributed to others to reproduce it right?

Yup!
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 19, 2017, 12:07:59 am
I have done that by hand on several occasions, automating that could be a real time saver.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 12:35:41 am
This is still fully functioning. Mouseover events work and everything. I need to do the "available" page which is mostly copying what I just completed. ngld, to go beyond that I'll probably need a little direction from you and/or help with the JS files to get access to the mod properties I need to build the Details pages.

(https://ibin.co/3CtxKh4Yt4ts.jpg)
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: chief1983 on February 19, 2017, 12:40:36 am
Is "Update List" actually supposed to update what is displayed based on changes you might have made to the drive outside of Knossos?  I thought the update button was going to be a 'check for updates' function, if so "Update List" seems a little confusing to me.  Although if you still plan on replacing most of those buttons with more stylized icons and such, I guess the wording isn't as important.  Unless it will display on a hover event.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 12:49:30 am
I haven't touched that top area because it's not currently done with HTML, so I have no way to touch it. But yeah, I think Update List checks for updates and/or new available mods to download. Might also check for new mods in the Freespace2 directory.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 12:55:12 am
Muahaha IT WORKS.


The CSS is a mess though.. I need to clean it up a bit.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: niffiwan on February 19, 2017, 01:07:18 am
Awesome work; and so quick!  :pimp:

I haven't touched that top area because it's not currently done with HTML, so I have no way to touch it.

I'm pretty sure the rest of the window is configurable in QT Designer; using the ui/hell.ui config file (not that I have a clue about qt-designer I'm afraid, I'll have to read the doco). 
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: krevett62 on February 19, 2017, 01:20:28 am
Hi, here's the log file with my error as requested

Code: [Select]
INFO:MainThread:launcher.main: Running Knossos 0.4.3 on PyQt5.
ERROR:MainThread:launcher.my_excepthook: UNCAUGHT EXCEPTION!
Traceback (most recent call last):
  File "C:\Users\packager\Downloads\knossos-release\knossos\__main__.py", line 123, in <module>
  File "C:\Users\packager\Downloads\knossos-release\knossos\launcher.py", line 303, in main
  File "C:\Users\packager\Downloads\knossos-release\knossos\launcher.py", line 150, in load_settings
  File "C:\Users\packager\Downloads\knossos-release\knossos\api.py", line 243, in read_fso_cmdline
  File "C:\Users\packager\Downloads\knossos-release\knossos\api.py", line 232, in get_fso_profile_path
  File "C:\Users\packager\Downloads\knossos-release\tools\win\py-env\lib\genericpath.py", line 19, in exists
TypeError: stat: can't specify None for path argument
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: AdmiralRalwood on February 19, 2017, 01:20:55 am
I know I'm repeating myself a bit... but absolutely fantastic work, mjn.
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 09:48:44 am
Awesome work; and so quick!  :pimp:

I haven't touched that top area because it's not currently done with HTML, so I have no way to touch it.

I'm pretty sure the rest of the window is configurable in QT Designer; using the ui/hell.ui config file (not that I have a clue about qt-designer I'm afraid, I'll have to read the doco).

I think the idea is to recreate most of that in HTML/JS. So I just need to figure out how the buttons and the search bar are talking to JS from qt and then recreate that in the HTML page. Once I figure that out, I can start to build the rest of the UI... while I learn JS on the fly, I guess.  :lol:
Title: Re: PUBLIC BETA: Knossos 0.4.3 (launcher / mod installer)
Post by: ngld on February 19, 2017, 10:12:54 am
Muahaha IT WORKS.
Nice! That was quick! :D

ngld, to go beyond that I'll probably need a little direction from you and/or help with the JS files to get access to the mod properties I need to build the Details pages.
I will need to change a few things in Knossos to make that work. I might be able to give you something to work with in a few hours.

Is "Update List" actually supposed to update what is displayed based on changes you might have made to the drive outside of Knossos?  I thought the update button was going to be a 'check for updates' function, if so "Update List" seems a little confusing to me.  Although if you still plan on replacing most of those buttons with more stylized icons and such, I guess the wording isn't as important.  Unless it will display on a hover event.
It does both. It downloads the new list from the Nebula and then checks the mod directories.

[...]
I'm pretty sure the rest of the window is configurable in QT Designer; using the ui/hell.ui config file (not that I have a clue about qt-designer I'm afraid, I'll have to read the doco).

I think the idea is to recreate most of that in HTML/JS. So I just need to figure out how the buttons and the search bar are talking to JS from qt and then recreate that in the HTML page. Once I figure that out, I can start to build the rest of the UI... while I learn JS on the fly, I guess.  :lol:
The buttons and search bar are both calling update_mods(). Switching the tab or triggering a search from JS is not possible, yet. That's one of the changes I have to implement.

@krevett62 and Joshua: I've released 0.4.4 which hopefully fixes the bugs you found.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 10:33:48 am
I'm obviously motivated... I'll use whatever tools you offer! :)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: krevett62 on February 19, 2017, 10:35:24 am
I installed it, and I'm back to the 0.4.1 problem, this time the program runs but I still cannot choose my FS2 install path, the button does nothing. The other two buttons seem to work (install from gog/install a TC) but that's not what I need ^^

Code: [Select]
INFO:MainThread:launcher.main: Running Knossos 0.4.4 on PyQt5.
INFO:MainThread:_code_cache._create_comtypes_gen_package: Imported existing <module 'comtypes.gen' (<pyimod03_importers.FrozenImporter object at 0x00539230>)>
INFO:MainThread:_code_cache._find_gen_dir: Using writeable comtypes cache directory: 'C:\Users\Steeve\AppData\Local\Temp\comtypes_cache\Knossos-35'
INFO:MainThread:integration.init: Activating Windows integration...
INFO:MainThread:api.get_fso_profile_path: Using profile path "C:\Users\Steeve\AppData\Roaming\HardLightProductions\FreeSpaceOpen\".
INFO:MainThread:api.get_fso_profile_path: Using profile path "C:\Users\Steeve\AppData\Roaming\HardLightProductions\FreeSpaceOpen\".
INFO:MainThread:api.get_fso_profile_path: Using profile path "C:\Users\Steeve\AppData\Roaming\HardLightProductions\FreeSpaceOpen\".

Nothing special in the log it seems...
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 19, 2017, 10:52:14 am
@krevett62: Can you please go to Settings > Game settings and set your FS2 path there?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: krevett62 on February 19, 2017, 11:06:50 am
Well sorry I looked through the settings and did not see it the first time (although I saw again the option to install from Gog!!)
It works now thanks!
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Grizzly on February 19, 2017, 01:05:51 pm
It seems to work properly now, thank you!
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 02:24:38 pm
Does the version of chromium in Knossos not have webkit? I can't seem to style the scroll bar! :o

I'm dumb.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Mongoose on February 19, 2017, 02:32:59 pm
Just wanted to add my voice to the praise of mixael's mock-ups.  That looks like something straight out of Steam or GOG Galaxy in the best possibly ways, and it's super-clear how to get things downloaded and playing.  Huge :yes:

And great work ngld.  I downloaded and installed Knossos yesterday, and it displayed my existing mod installs without needing to touch anything.  Settings are now saving just fine after the latest patch too.  One very minor quibble: as of right now, the default folder creation in the Start menu's programs list has the version number tacked onto the end of the folder name.  It'd probably be better to leave it at "Knossos," so that no one accidentally thinks they still have an outdated version installed.  Looks great so far otherwise!
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 19, 2017, 03:01:06 pm
@Joshua and krevett62: Great to hear!
@mjn: Here's the new build (https://dev.tproxy.de/knossos/develop/html_test.7z). I've reimplemented the top UI in HTML and added the details page. The "Development" button at the top doesn't do anything, yet.
The details page is still VERY simple, it displays the mod's title and description as well as a dump of all the information Knossos has about the selected mod. A few additional fields have been implemented (tile, first_release, last_update, release_thread, videos) but all of them are empty because I haven't implemented them on Nebula.
I hope this helps while I work on the remaining changes.
Do you have anything in mind for the installation dialog or should we leave it the way it currently looks?

@Mongoose: Thanks! Having the version number as part of the start menu folder was an accident which I'll fix in the next release. I just wanted to display the version number on the welcome page but it seems that I changed more than just that.  :lol:
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 04:03:19 pm
Awesome! Definitely helps. :)

I had a thought about Last Played. I was thinking instead of having a separate Last Played page, that the Home page defaults to sorting by "last played". Obviously that means that Knossos will need to save this data to the json for each mod. Various other sorts would be alphabetical, last updated, last released. I should also think about how to incorporate keywords that you already have on Nebula and allow players to search based on those.

I hadn't thought about the Installation dialog. Lemme give that some though. My innitial thought is to just have that be similar to the Details page with a basic title and back button at the top. Another thought would be slightly more complex. If the player selects Install right from the Nebula page, it doesn't ask any other than "are you sure?" and installs all dependencies. Inside Nebula > Details (would be Details 2 because unique layout) would allow the player to see dependencies, notes, etc. Dunno though. Needs more thought.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on February 19, 2017, 08:38:07 pm
I think that touching the mod's own json file would be unnecessary here, we just need to store a list of played mods somewhere in knossos' own configuration data.  Or the last played times for any mod.  That could be merged with other mod data in memory if it helps on the code side to do so, but mod.json files should probably be left alone by knossos itself.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 08:47:20 pm
My understanding so far is that the JSON files are very different from the mod.inis we're all used to. Modders shouldn't even have to make them. They upload their mod to Nebula and it handles the rest. Knossos touching the JSON files should be inconsequential because no one needs to even look at them, generally.

That said, I wouldn't really care how it's done. The JSON just seems like the most obvious place.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on February 19, 2017, 08:57:54 pm
I think it's more reason not to.  As knossos will periodically overwrite it with updates from nebula, storing other settings in it would be a bad idea I think.  Much easier to store that stuff in knossos' own settings location.  But yeah that's probably too much a technical discussion that doesn't really affect whether the launcher can do the sorting feature or not.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 08:59:53 pm
I'm no coder, but JSON seems custom built for appending data?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on February 19, 2017, 09:01:49 pm
It could possibly be done but I feel like it would be saner for the file on a machine to be a byte for byte match to the one on the server.  Much easier to do comparisons, etc.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 09:06:16 pm
Aha, I hadn't considered. That's a good point.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 19, 2017, 11:40:18 pm
(https://ibin.co/3D0iCzUBIxAg.jpg)

What can we do about changing the header design (I can provide image files) and change the border frame color to match the rest of the design? (Hex #1c1c1c, if you were wondering.)

Here's the files (https://dl.dropboxusercontent.com/u/6681376/html.7z) so far so that we don't have to keep merging HTML/CSS/JS docs. You'll need to change the image references to dynamic links for your build environment, but otherwise should be pretty easy to use. The only JS change involves changing "mod-logo" to "mod-logo-legacy". As you continue to add the new required data types, I'll be able to add mod-portrait so that it gracefully displays where needed.

EDIT: Oh, and I haven't added the filter button yet... but it wouldn't have any function anyway. Except I did add the help button, sooo... whatevs. :)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 20, 2017, 04:57:05 pm
Thanks! I've integrated your files but I made a few changes. I hope you don't mind.
(https://dev.tproxy.de/knossos/images/kn_new.png)

What do you think? You can download the files (https://github.com/ngld/knossos/archive/develop.zip) from GitHub and copy the html folder into your existing installation to take a look.

I've managed to remove the border but changing the titlebar will require more (and platform-specific) work. I might work on that once the more important stuff is done.

BTW, why did you use "content" on spans? I didn't know that would work (and it doesn't in other browsers) because it's against the CSS spec. According to the spec you're only allowed to use that on ::before and ::after pseudo-elements.

It could possibly be done but I feel like it would be saner for the file on a machine to be a byte for byte match to the one on the server.  Much easier to do comparisons, etc.
Actually... The mod.json files are generated on every installation or update. There are several reasons for that: The mod.json list contains a list of installed packages which needs to be updated whenever the user installs or removes a package (i.e. MV_Advanced). Most of the contents of the mod.json file are copied from the list of available mods (which the client already has during installation).
For comparisons I use the version numbers. The Nebula server enforces that once a version has been published, it can't be changed, only deleted. Any change requires a new (higher) version number.
That said, I'm already storing stuff like the mod settings in Knossos' configuration because mod.json files should only contain mod-specific information not player configuration. I'll probably do the same with the "Last played" data.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 20, 2017, 05:56:16 pm
Thanks! I've integrated your files but I made a few changes. I hope you don't mind.
I definitely don't mind. :)

Quote
I've managed to remove the border but changing the titlebar will require more (and platform-specific) work. I might work on that once the more important stuff is done.
Awesome. I'm gonna add a border with the CSS.

Quote
BTW, why did you use "content" on spans? I didn't know that would work (and it doesn't in other browsers) because it's against the CSS spec. According to the spec you're only allowed to use that on ::before and ::after pseudo-elements.
Because I'm not a real web developer. I'm just good enough to use things like Drupal and fix them up as needed... and I'm really good at Google searches!  :lol:
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 20, 2017, 06:03:53 pm
Hmm, I actually can't get my Exposed-HTML version to work with these files. (Loads up the UI with no mods, and crashes on exit.) Did you change anything else that might cause that? Any chance you could send me a new version of the Exposed HTML version?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 20, 2017, 06:18:12 pm
Did you copy anything besides the html folder? Anyway, here's you new build (https://dev.tproxy.de/knossos/develop/html_test.7z). It still has the border because I didn't update the Python code.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 20, 2017, 06:25:37 pm
Thanks. Not sure what the deal was.. I was pretty sure I only copied the HTML files, but it probably was my own error.

Also, what do you think of changing the default window size to more of a landscape size? I'm thinking a default view that shows 6 mods across x 2 mods down.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 20, 2017, 06:30:01 pm
Sounds good to me.  :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: deathspeed on February 20, 2017, 07:23:52 pm
I step away from a topic for a few days, and when i return I see GOG Galaxy-quality mockups and test builds!  Keep up the great work!!
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 20, 2017, 11:15:16 pm
Added the Debug menu and Filter icon, both with semi working roll-out lists onclick.

(https://ibin.co/3D7aFt0Q6kGf.jpg)

Had to add a couple javascript functions for those rollouts, except I couldn't get them to close the rollout on mouseleave/out properly. Had to use onclick. However the filter rollout doesn't even obey that. So I dunno, perhaps you can fix that up.
Additionally, I couldn't get the debug rollout to work for any mod except the first mod. I'm hoping you can help on that part. :)

Files (https://dl.dropboxusercontent.com/u/6681376/html.7z)

Quote
EDIT: Notes for me.. things I want to think about and/or add.

News stuff
mjn.mixael, that is incredible work on the UI.  I finally got to look at it on my desktop instead of my phone.  It does exactly what I've been suggesting with keeping the words to a minimum, and the experience as intuitive as possible.  I am only really not sure about the news scroller, it seems dated compared to the rest of the design.  I would suggest a News tab on the main screen for general news, and possibly under the Mod details, another News button/tab for news specific to that mod, or just the ability to scroll down below the details for mod-specific news.  But all in all, yeah, wow.  I'm just not sure we have the bandwidth to keep up with how many more installs it will get when it becomes this easy to get into!

NGLD asked about the update stuff

I think there needs to be a small header/title just about the first mod row in the scrollable area. "Here's a list of your installed Freespace Open Games" (Games because this should support TCs as well as mods.) "Here's a list of all the Freespace Open Games you can install."
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: AdmiralRalwood on February 21, 2017, 10:16:45 pm
Attempting to upload a mod to Nebula is resulting in a 500 error.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on February 21, 2017, 11:35:58 pm
I was wondering if your develop branch on github is up to date with the latest changes from Mjn & yourself? I tried running it last night and got the new background colours + icons, but no mods showed up.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 22, 2017, 11:24:11 am
@mjn: Thanks, I'll work on that but it might take a while (RL is keeping me busy).

@AdmiralRalwood: Sorry, should be fixed now. I made a mistake while adding the new fields.
@niffiwan: It is. How did you try to run it and what did it print to the console?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 22, 2017, 11:44:57 am
@mjn: Thanks, I'll work on that but it might take a while (RL is keeping me busy).

No worries. I know I tend to move pretty quickly on projects when I'm motivated and have inspiration. (What else am I supposed to do when the kids are in bed and my wife's at work?)

You keep making awesome with this thing and I'll keep working on the UI as you get features added.

I should get a build environment setup for this. Might need to ping niffiwan on IRC for help on that. :)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Hellzed on February 22, 2017, 01:30:24 pm
@ngld: I have cloned the repository for hlp-nebula, but I'm running into an issue while trying to dump the assets with Assetic:

Code: [Select]
$ php app/console assetic:dump

[RuntimeException]                             
  Path to node executable could not be resolved.

I have added this to add/config/config.yml
Code: [Select]
# Assetic Configuration
assetic:
    ...
    node: /usr/bin/node
(I checked, the binary is there)

Any idea what's wrong here ?

Also, I may be missing the appropriate node modules, which ones do I need, and does Assetic play better with globally or locally installed modules?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 22, 2017, 02:38:14 pm
You also need /usr/bin/uglifyjs and /usr/bin/lessc. Both can be installed through packages (nodejs-less and uglify-js for Arch Linux) or npm (use -g to install globally).
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: OverDhill on February 22, 2017, 03:49:49 pm
I just installed the latest version and ran it. It has a button to Select FS2 directory but that does not seem to do anything. I don't want a fresh install so how do I tell it where I have FSO already installed using the Installer app?

Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Hellzed on February 22, 2017, 03:50:45 pm
@ngld: The resources are now ok, but not loaded by the browser, because somehow /js/b60b8a8.js redirects to http://localhost:8080/js/b60b8a8.js/workshop (which contains the full HTML for the home page).
Something I'm forgetting with security, maybe?

EDIT: Sorry, my bad! It all works fine! (I was trying to run Symfony like Silex - I've been working with Silex for the past few days, got mixed up)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 22, 2017, 04:55:22 pm
OverDhill, can you please go to Settings > Game settings and set your FS2 path there?
The button is broken and won't be fixed because we're working on the new UI. I've added a note to the first post in case anyone else runs into this problem.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on February 22, 2017, 05:49:08 pm
@niffiwan: It is. How did you try to run it and what did it print to the console?

I ran "make run"; I'll have to get you a copy of the console output when I'm back home.

edit: and here is it

Code: [Select]
$ make run
/usr/bin/python3.5 knossos/__main__.py
INFO:MainThread:launcher.main: Running Knossos 0.5.0-dev on PyQt5.
ERROR:MainThread:api.enable_raven: Failed to import raven!
Traceback (most recent call last):
  File "/home/mememe/src/knossos/knossos/api.py", line 558, in enable_raven
    from raven import Client
ImportError: No module named 'raven'
ERROR:MainThread:integration.init: Failed to specify Unity version.
Traceback (most recent call last):
  File "/home/mememe/src/knossos/knossos/integration.py", line 218, in init
    gi.require_version('Unity', '6.0')
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 102, in require_version
    raise ValueError('Namespace %s not available' % namespace)
ValueError: Namespace Unity not available
INFO:MainThread:integration.init: Activating generic Linux integration...
QXcbWindow: Unhandled client message: "_GTK_LOAD_ICONTHEMES"

And a pic!

(http://i.imgur.com/KxdHUsN.png)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on February 23, 2017, 05:40:40 pm
re: possible future bandwidth issues (flashback to FSO Installer being down due to overloaded server bandwidth for the month), is it remotely feasible to back any of the larger bits with P2P (specifically, bittorrent protocol) and have that as an option for users to enable / disable?  I know Blizzard installers, and heck, even the Windows update service use some variant of the same idea.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 24, 2017, 12:46:39 am
re: possible future bandwidth issues (flashback to FSO Installer being down due to overloaded server bandwidth for the month), is it remotely feasible to back any of the larger bits with P2P (specifically, bittorrent protocol) and have that as an option for users to enable / disable?  I know Blizzard installers, and heck, even the Windows update service use some variant of the same idea.

If you're referring to the actual mod files, those don't have to be hosted on Nebula. Nebula keeps a record of URLS and mirrors which is the better way to handle this.

Also, side note. NGLD, we'll need to create a nice user-interface (probably in the Details area) for installed mods and the ability to add/remove Recommended or Optional files. Also, Delete Mod should be in there, too.

I'm also starting to think that for Mod Installations, it would be better to have it go from Explore > Details (as the ONLY option) > Install. In the details section, near the Install button would be the checklist of what mod packages to install. This removes a popup or transition to a third screen for users, hopefully to keep things simple. It does mean that Explore > Details needs to be a different page than Home > Details. What do you think?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on February 24, 2017, 01:05:02 am
re: possible future bandwidth issues (flashback to FSO Installer being down due to overloaded server bandwidth for the month), is it remotely feasible to back any of the larger bits with P2P (specifically, bittorrent protocol) and have that as an option for users to enable / disable?  I know Blizzard installers, and heck, even the Windows update service use some variant of the same idea.

If you're referring to the actual mod files, those don't have to be hosted on Nebula. Nebula keeps a record of URLS and mirrors which is the better way to handle this.

A list of server URLs and mirrors to other server URLs will still quickly run over capacity if we get popular again.  I remember us literally telling people to wait a few weeks for the end of the month to roll around back when Turey came out with the original Installer.  I don't want to see that happen again as I'm pretty sure most don't bother posting to see what the problem is, they just go play more (insert popular AAA title here).
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on February 24, 2017, 01:17:02 am
well - in theory anything is possible with code; a bittorrent client could be added, it's simply a matter of time & priority. And probably motivation...
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 24, 2017, 01:36:12 am
It's really going to depend on the mod and it's popularity. IMO, if a mod is popular enough to run out of bandwidth in 2017... then we can bother with it, but I really don't see that happening. For one, we just aren't popular enough and that's not going to happen overnight. And for another, it's 2017. Bandwidth is just not the problem it used to be.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on February 24, 2017, 02:03:58 am
It's really going to depend on the mod and it's popularity. IMO, if a mod is popular enough to run out of bandwidth in 2017... then we can bother with it, but I really don't see that happening. For one, we just aren't popular enough and that's not going to happen overnight. And for another, it's 2017. Bandwidth is just not the problem it used to be.

I do hope so, for our sake.  I mean, I suppose if it came down to that we could all chip in for more bandwidth.  Why didn't we do that before?  I can't remember.  Long time ago. (ish)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Hunter on February 24, 2017, 03:47:31 am
If bandwidth is an issue, use FreeSpace Files for mirroring. It doesn't have any limits and you can use all the bandwidth you like. DL speed might not be great if 100x people are using at once, but that's not very often. The private accounts are always fairly active and use a ton of traffic.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 24, 2017, 08:29:26 am
@niffiwan: That's not an error, what you're seeing are the remains of the "Last Played" page. Did you try to click on "Home" or "Explore"?
@jr2: I'd love to integrate something like that but I simply don't have the time. To make P2P work you have to solve the following problems: You'd need a tracker (either use an open tracker or we could setup a tracker on fsnebula.org which would be limited to uploaded content). You need to integrate a BitTorrent client into Knossos and finally: It should work without having to setup port forwarding. The last one seems to be the biggest obstacle to me.

If you're referring to the actual mod files, those don't have to be hosted on Nebula. Nebula keeps a record of URLS and mirrors which is the better way to handle this.
I agree. Also, all uploaded mods are mirrored on dl.fsnebula.org which has a 1 Gbit/s uplink and has a quota of about 30 TB per month. If we ever reach that limit, I can still increase it.

Also, side note. NGLD, we'll need to create a nice user-interface (probably in the Details area) for installed mods and the ability to add/remove Recommended or Optional files. Also, Delete Mod should be in there, too.
In the old UI I displayed a checkbox for every package and a button "Apply" which would then uninstall or install the packages according to the users selection. Maybe we could do something like that?

I'm also starting to think that for Mod Installations, it would be better to have it go from Explore > Details (as the ONLY option) > Install. In the details section, near the Install button would be the checklist of what mod packages to install. This removes a popup or transition to a third screen for users, hopefully to keep things simple. It does mean that Explore > Details needs to be a different page than Home > Details. What do you think?
Can we use the checklist for both installed and available mods? That would solve both problems at once and it should make it easier to understand.

If bandwidth is an issue, use FreeSpace Files for mirroring. It doesn't have any limits and you can use all the bandwidth you like. DL speed might not be great if 100x people are using at once, but that's not very often. The private accounts are always fairly active and use a ton of traffic.
Thanks for the offer! Would you mind if I automatically mirror every uploaded mod? (Whenever a user adds a new mod, I would upload the files to FSFiles and link them in addition to dl.fsnebula.org and the links the user entered?)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 24, 2017, 09:29:42 am
Also, side note. NGLD, we'll need to create a nice user-interface (probably in the Details area) for installed mods and the ability to add/remove Recommended or Optional files. Also, Delete Mod should be in there, too.
In the old UI I displayed a checkbox for every package and a button "Apply" which would then uninstall or install the packages according to the users selection. Maybe we could do something like that?

I'm also starting to think that for Mod Installations, it would be better to have it go from Explore > Details (as the ONLY option) > Install. In the details section, near the Install button would be the checklist of what mod packages to install. This removes a popup or transition to a third screen for users, hopefully to keep things simple. It does mean that Explore > Details needs to be a different page than Home > Details. What do you think?
Can we use the checklist for both installed and available mods? That would solve both problems at once and it should make it easier to understand.

Yeah, I would definitely do something like that. I'll poke around with some visual ideas applied to the Details page and see what I come up with. :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: m!m on February 24, 2017, 12:41:58 pm
@ngld IIRC, we discussed randomly selecting a mirror at some point since that should ensure that the server load is distributed evenly across all available mirrors. Would that be a suitable strategy for managing server load balancing?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on February 24, 2017, 12:45:48 pm
Short of an actual API to track mirror load, I'm not sure what else you could do.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 24, 2017, 12:49:46 pm
I've implemented that and it seems to work well. The only downside I've discovered is that the download speeds can be very random since the mirrors have different download speeds. Depending on which mirror Knossos uses I can get a download speed of 700 KiB/s, 3 MiB/s or 11 MB/s for the same file.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on February 24, 2017, 05:36:30 pm
@niffiwan: That's not an error, what you're seeing are the remains of the "Last Played" page. Did you try to click on "Home" or "Explore"?

Yes, no matter what button I click on nothing changes (i.e. help, refresh, settings, home, explore, development).  If I click on Play, my "Last selected mod" plays, but that's the only change I currently get :)  (and if that's expected, no worries! I was just hoping to marval a bit at the awesome UI :))
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Hunter on February 24, 2017, 06:29:55 pm
Thanks for the offer! Would you mind if I automatically mirror every uploaded mod? (Whenever a user adds a new mod, I would upload the files to FSFiles and link them in addition to dl.fsnebula.org and the links the user entered?)

Sure.. just be sure to place them in the right sections and check if they already exist. If the mods aren't finished or are just test builds, just pop them in the WIP folder.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on February 24, 2017, 06:55:10 pm
IIRC if you wish to automatically port forward, you use UPnP, which of course might be disabled (link (http://superuser.com/questions/952061/why-does-bittorrent-not-require-port-forwarding) to discussion on that).

Looks to be a how-to on requesting a UPnP port forward in Python here (http://mattscodecave.com/posts/using-python-and-upnp-to-forward-a-port.html).

Of course, it might be a lot more trouble than it's worth, I don't know.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 25, 2017, 06:24:48 pm
@niffiwan: I think you've found a WebKit related bug, I'll look into it. (Ubuntu doesn't package QtWebEngine which Knossos uses on most platforms so it has to fallback on QtWebKit which is deprecated.)
@mjn: I've integrated your last changes and I managed to do the dropdown toggle using CSS only which solves the JS problems and is a nicer solution IMO. :)



I need to decide how (and where) to store the installed files considering the proposed concepts, I've come up with the following:
Knossos has one "content directory" which is where installed content will be placed. The first time you start Knossos, it will ask you for this location and will offer a default which should be fine for most users.
On Windows that default will be C:\Users\<user>\My Documents\Knossos, on Linux and macOS it'll be ~/Documents/Knossos. Afterwards, the user can use Knossos to install TCs and FSO. If they try to install a mod (which depends on retail files), a dialog will be shown which tells them as much and allows them to select the GOG installer or an existing FS2 directory. If they already have installed FS2 through either GOG or Steam, Knossos should be able to detect it and will offer to copy the neccessary files.

The content directory will contain a subdirectory for every TC installed and one directory for FS2. All mods which depend on a TC will be installed into the TC's folder (i.e. Aerilon is Burning would be installed into Diaspora's folder).
Another subdirectory will be "bin" which contains a folder for every installed FSO build (official releases, Nightlies, custom builds).

To allow for more specialized installations and to support existing FSO or TC installs, Knossos will allow the user to specify a list of additional base directories. Each directory is assumed to contain a TC unless it contains the retail files at which point it's assumed to contain FS2 mods.

If you don't use the additional directories, your content directory will look something like this:
Knossos_content
 -bin
  --3.8\
  --nightly_YYYYMMDD\
 -FS2
  --retail .vps
  --BPC
  --BtA
 -Diaspora
  --Diaspora_mod1
 -TBP
  --Zathras

If you want to use your existing FSO installation and have Diaspora installed, the directories could look like this:

Knossos_content
 -bin
  --3.8\
  --nightly_YYYYMMDD\
 -TBP
  --Zathras

FS2
 -retail .vps
 -BPC
 -BtA

Diaspora
  -Diaspora_mod1

I hope this makes initial setup simple while still allowing for custom configurations. Any thoughts or suggestions?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on February 26, 2017, 12:22:20 am
@niffiwan: I think you've found a WebKit related bug, I'll look into it. (Ubuntu doesn't package QtWebEngine which Knossos uses on most platforms so it has to fallback on QtWebKit which is deprecated.)

Doh! How do you distribute Qt on other platform? Do you bundle it into Knossos? Is it possible to consider the same approach on Linux?

I hope this makes initial setup simple while still allowing for custom configurations. Any thoughts or suggestions?

Seems like a good layout to me.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 26, 2017, 01:41:30 am
Sounds good to me to. The only thing I might add is a first-run prompt. (with better wording than the following) "Do you want to install the base Freespace2 game right now?" Yes/No.

Given that option.. we should add a filter to the filters list... "Doesn't require FS2" (Not Total Conversion because that's a non-intuitive title)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: m!m on February 26, 2017, 04:47:30 am
If you don't use the additional directories, your content directory will look something like this:
Knossos_content
 -bin
  --3.8\
  --nightly_YYYYMMDD\
 -FS2
  --retail .vps
  --BPC
  --BtA
 -Diaspora
  --Diaspora_mod1
 -TBP
  --Zathras
How would this work with different versions of the same mod (e.g. Mediavps 3.6.12 and 2014)? Would it require that these different versions are separate mod entries or would it put the different versions into different subfolders?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on February 26, 2017, 08:48:35 am
The MediaVPs are a special case. I treat the two versions as separate mods because a) most people here would be confused if they were displayed as a single mod and b) 2014 is a horrible version number.

For other mods the current installation logic checks if the mod folder exists (only happens if you install more than one version) and then appends _kv_<version> to the new folder. If you install a mod called Example, then install versions 1.0.0 and 1.0.2 of that mod, you'd get:

Knossos_content
 -FS2
   --Example
   --Example_kv_1.0.0
   --Example_kv_1.0.2

I've thought about subfolders before but that can become complicated unless I always use subfolders.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on February 26, 2017, 09:20:11 am
This is another reason why I feel like trying to work with existing installs as anything more than a source to copy VP files from, is going to make this project complex to the point of likely failure.

I'll reiterate that, I think that for the success of this launcher/installer, it needs to work with an ecosystem built from the ground up.  Any support for existing installs needs to be minimal, like I said, maybe we scan for VP files we need to download and copy them into the new structure if necessary, but beyond that, the added complexity seems to me to outweigh any benefits.

The MediaVPs are not really an exception here, I don't think.  They need to be manually converted into a Knossos style dependency format just like any other mod.  But as there are different major revisions of the mediaVPs, I think we might need a concept of slots.  Or at least, as stated, we don't treat 3.6.12 and 2014 as the same mod with different versions, but yeah, different mods.  They could both be selected as primary mods, or individually be a dependency of other mods.

We will probably run into the need for this with other mods as well, so I am hoping there is a framework for this that can be applied as necessary.  If people want to play "Media VPs FS2" they probably shouldn't be provided with multiple versions by default, just the latest.  But there would be cases where someone might need to launch an older 'slot' of a mod, maybe someone wants to launch Diaspora R1 after R2 is released, an old MediaVPs version, etc.  That might be better kept under the developer section or something.  But to keep the initial interface clean, we need to ensure we don't overflow it with deprecated slots of mods.

I agree that 2014 is a bad version number, which is why I think each mod needs to be brought into Knossos with entirely new versioning where possible.  We may not even be able to go that far back in time to find mods that currently work in the new ecosystem without some work cleaning them up, so reusing old VP files, and worrying about old version numbers is something I think we can avoid.

My main hope is that this new system looks so promising that it reinvigorates the Campaign Restoration Project and other people to start updating mods to the point of at least getting them running on recent builds so they can be added to Knossos and made available.  It would be a significant undertaking perhaps, but that's what the CRP was created for.  Karajorma has been working on TBP for instance, and may be interested in using Knossos for its next release.  I would still very much love for this to be the platform for FotG when it is publicly released (hopefully very soon), and I keep hearing that Diaspora is approaching R2 (seen the new eyecandy shots?).  There's three different total conversions that could very possible be on the coattails of the 3.8 release.  If all of this can fall together it would be a huge incentive to get FS2 mods updated to working with recent FSO releases for inclusion in Knossos.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 26, 2017, 09:49:05 am
So, the MediaVPs versioned the way we did precisely because something like this installer/tool did not exist. We needed it to be absolutely clear that mods built for MediaVPs 3.6.12 probably wouldn't work well with MediaVPs 2014 until that mod was updated. Basically, because of what the MediaVPs does, it made more sense that each release be it's own mod to ensure the broadest compatibility, both forwards and backwards, so that people would keep both versions around.

However, if Knossos treated the MediaVPs as a single mod and could handle using older versions as a dependency (using version'd subfolders or whatever) without displaying that older version as a primary playable mod.. then there's no reason for the MediaVPs to continue on as such. Mod X that uses MediaVPs 3.6.12 can run, because Knossos knows how to handle that gracefully and the player doesn't even need to know or care. The only "MediaVPs" that should be selectable on the Home tab is the latest version.

If this becomes the case, then I'll recreate the MediaVPs mod on Nebula so that it includes versions as early as 3.6.10 ensuring broad compatibility with older mods going forward. (We could add those old mods to Nebula by simply making sure their mod meta data is updated to fit into Nebula's newer standards, minimizing the work to make these mods accessible.)

EDIT: To clarify... since versions would be essentially invisible to the average player, I would re-version MediaVPs 2014 to 3.6.14 for the sake of Nebula's graceful handling of it. Nebula would have 3.6.10, 3.6.12, and 3.6.14 available for mods. (I don't have 3.6.9 or anything prior to that... Zeta3.6.8?, but 3.6.10 should be enough for backwards compatibility.)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: m!m on February 26, 2017, 01:41:17 pm
IIRC, the new mod format supports restricting which version of a mod it depends on. Furthermore, it allows to specify a dependency that says "everything that is compatible with version x" where "compatible" means that the major version of the dependency must be the same. If mods follow the Semantic Versioning (http://semver.org/) theme then a mod could specify a dependency on version 4 (which could stand for the 2014 version) of the MediaVPs and Knossos would use the most recent 4.x release of the MediaVPs but not the 5.x version.

This probably sounds very complicated to people who don't know about semantic versioning but IMHO it would be a great way to ensure that mods always use the most recent version of a dependency that works with this mod.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on February 26, 2017, 03:56:20 pm
Pretty much what I was trying to say but you did it more clearly.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on March 02, 2017, 12:04:49 am
ngld, a note about the rollouts.. they currently only close when the user clicks anywhere outside of them. They should probably also close under theses other two conditions..

1. The user clicks on the rollout button again.
2. The user's mouse leaves the rollout for a few seconds.
3. The user's mouse is no longer hovering over the mod. (Currently, you can open a rollout, mouseover a different mod, then mouseover the previous mod and the rollout will still be open.)

These are things I'm not quite sure how to do with CSS only, but they are also small nitpicks that can be dealt with later. It's more important to start getting the meat of Knossos Nebula working. :)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: pim on March 04, 2017, 08:59:42 am
Hi ngld.
 How about us with two GPUs on Linux? Playing at 4 fps with integrated card is more painfull than watching Fifty Shades Darker with own ex:-).
 Is there any way to use primusrun (https://wiki.archlinux.org/index.php/bumblebee#Primusrun) for running fso from within Knossos?

In any case - Knossos looks promising. Good luck with further development.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Phantom Hoover on March 04, 2017, 10:21:19 am
Have you tried running Knossos itself with primusrun?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: pim on March 04, 2017, 10:29:13 am
Sure. Didn't help.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Phantom Hoover on March 04, 2017, 11:03:10 am
OK, well, if you need a stop-gap, launching FSO from Knossos, quitting, then directly running 'primusrun <your FSO binary>' from the command-line should work.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: pim on March 04, 2017, 11:50:36 am
No problem. I'm used to start fso from shell. I just thought that public beta is here to find possible issues so I reported the only problem I've encountered:-). Bye.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: karajorma on March 04, 2017, 09:57:29 pm
That's exactly what it's for.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on March 10, 2017, 11:36:42 pm
Sorry for the long delay; I was busy writing exams...

@niffiwan: I just pushed a new commit which should fix the bug on Ubuntu.
@mjn: You're right, that's impossible with CSS only but it should be easy to do in JS.
@pim: Thanks for the report! I think I already know the cause for this: Knossos overrides the LD_LIBRARY_PATH. Should be a simple fix...

Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on March 11, 2017, 12:05:12 am
Sorry for the long delay; I was busy writing exams...

@niffiwan: I just pushed a new commit which should fix the bug on Ubuntu.

No worries, from current experience I know how real life can get in the way!

And I saw new commits in the repo & tested them even before seeing your post; it's working as expected now, thanks!!!!
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: OverDhill on May 24, 2017, 02:55:29 pm
Avast says Knossos.exe is a virus. Is this a false flag?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: The E on May 24, 2017, 03:15:21 pm
Yes.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on May 24, 2017, 03:20:09 pm
It is probably heuristics detecting an unsigned app that will request elevated permissions to make changes to your hard drive (installing files to Program Files, etc).  It should give you an idea on _why_ it raised the virus if you click around the warning to get the details, can't give you the exact steps as I don't use Avast.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 26, 2017, 05:25:09 pm
So... I've finally implemented most of the mockups and the new directory scheme.  :)

The current state is still a bit rough. The settings page and the development tab are missing and you can't actually launch FSO because the code for the -mod flag is still missing. The new images are also missing because fsnebula.org doesn't allow the upload of any images beside the logo. I'll get to that once Knossos itself is closer to the next beta.
That said, you can install, uninstall and check your mods. Dependency handling still works.

(http://i.imgur.com/KH5KH6a.png)
^ Here you can see Knossos install BtA.

If there's interest, I'll provide a preview build despite its rough state.

@Mjn: You've designed most of the new UI. Could you please create a mockup for the settings screen?
Here's the current list of options:

I need some suggestions for the installation status. Currently, the user can only see a small progress bar on the mod box. I'd like to add more details to that (i.e. whether it's currently downloading or extracting archives). In a previous post someone asked for an ETA. I can't do that because I can't figure out a way to calculate a (reasonable) ETA for parallel (and serial) downloads.

Finally, I've completely replaced the previous build system which should allow me to make new releases much faster (it took up to 2 hours in the past because I had to manually launch VMs, copy files and test on each platform).
The new system should be able to automatically build packages for Windows, Ubuntu (through the PPA), ArchLinux (AUR).
I won't provide new macOS builds because I can't run it on Vagrant (http://vagrantup.com/) (which the system is based on). However, building these should be straightforward if you have access to a Mac and Homebrew (https://brew.sh/). I'll provide a guide if neccessary.

@chief1983: I got Knossos to build on FreeBSD with the new system. If you can tell me how to package it, I'll add it to the list.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on May 26, 2017, 05:42:00 pm
How are we packaging for Linux?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 26, 2017, 06:24:42 pm
On Arch Linux Knossos is installed as a normal python module (in /usr/lib/python3.4/site-packages/knossos), a shell script with 'exec python -mknossos "$@"' is placed in /usr/bin/knossos and /usr/share/applications/knossos.desktop is created which associates it with fso:// links and adds it to the program menu.

Here are the files: https://aur.archlinux.org/cgit/aur.git/tree/?h=fs2-knossos

The Ubuntu package places the program files in /usr/share/knossos instead due to their packaging guidelines. Otherwise it's the same.

Arch has the AUR for user submitted packages and Ubuntu has PPAs. Is there an equivalent for FreeBSD? Maybe Ports?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 26, 2017, 07:20:21 pm
Quote
@Mjn: You've designed most of the new UI. Could you please create a mockup for the settings screen?
Here's the current list of options:
Data path: This is the directory the user selects on first run and where Knossos stores all the downloaded mods.
Concurrent downloads: This limits how many files Knossos downloads at the same time (default: 3)
Anonymous error reports: Knossos automatically sends error reports if this is enabled (enabled by default at least during development)
FSO settings: Pretty much what wxLauncher does (resolution, joystick, flags, ...). I think most of these fields are already covered by the development tab but we need a place to set the global default.
Path to SDL2 and OpenAL: Allows the user to specify the OpenAL and SDL2 libraries (DLLs on Windows) (these are normally autodetected and should only be changed when troubleshooting)
Language
Repositories (maybe): Here users could add additional mod repositories besides fsnebula.org.

Sure.

This is in addition to the Explore page, Development page, and Mod Details page? Those are designed but not implemented. (Looks like VUE.js basically still uses CSS/HTML? Point me the right direction and I can continue to contribute as soon as I setup a dev environment for Knossos.)

This is what comes up when the user clicks the gear in the top right of Knossos (currently missing from your build)?

Quote
I need some suggestions for the installation status. Currently, the user can only see a small progress bar on the mod box. I'd like to add more details to that (i.e. whether it's currently downloading or extracting archives).

Could you add more info on mouseover? Alternatively, the design for the mod details page has a button/area for Updating.. clicking that could lead to more info in a pop (mod specific) or a general install status for all current mods.. this option would be a global entry in the UI as well on the home page, too, though. Hmm. Lemme think while I make the settings mockup.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 26, 2017, 10:02:59 pm
OK, first up.. the settings mock-up.

Settings pages, by their very nature, are terrible from a UI perspective. So many options, so many words. So the solution is to group options together and only display a few at a time. There are many ways to do this, but I went with more of a one-page design because we don't really have all that many options and most of these should be filled in by Knossos automatically.  Click anywhere on the title, HR, or arrow to rollout/rollup groups.

(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpscao7jm1g.jpg~original)
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpsbw4ywg5x.jpg~original)

I'm wary on Flag Defaults because in order for user simplicity, these should come from the mod on a per-mod basis (especially since mods will be able to list an FSO build as a dependency). But having Flag defaults for mods that don't list flags is good. This could also be changed to more of a "Flags Addendum" for the user to specify flags they ALWAYS want appended to the commandline for every mod. But then Knossos needs to be able to check those flags against the launched mod's FSO Build and take appropriate actions.

Additionally, the Details page has a Settings button.. that was intended to display popup window where a user can change mod-specific settings and flags for that mod. I never mocked up that smaller window, but I would use a similar layout to this one, but showing only Flags and maybe Exec. Unsure if end-users really need that. I'm currently of the opinion that Video/Audio/Joystick are global enough that they don't need to be mod specific settings really ever (outside of the Development tab).



Now for the installation details.

So, everywhere in the UI I designed, there is an Action button and a Sub-Action button. This includes the Home tab, Explore tab, Development tab, and Details page. There are a few exceptions which I'll get to in a moment.

The Action button can be Play, Install, Error, or Updating depending on context. Install, for example, is only ever visible on the Explore tab and it's in the place of the Play button that's on the Home/Development/Details tabs. If a mod has an error it switches from Play to Error (and Development tab needs to, in this case, remove the FRED button as well). Clicking on Error gives you a small pop up describing the error.

(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Error_zpsw73qpjt8.jpg~original)

If a mod is updating the Play button switches to Updating...
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpset6v4vld.jpg~original)
Continuing on the contextual design of the UI then I'm thinking that you can click the Updating button (no matter what tab you're in) and it displays a pop up similar to the error one. Except here it shows the progress of each download pack in a simple list.

Quote
PACK 1 ----------------50% Downloaded
PACK 2 -----------------------------------75% Downloaded
PACK 3 ---------------------------------------Installing
PACK 4 ---------------------------------------Installing
PACK 5 ------------------------------------------Complete

We could also display this same list in a separate view (like Steam) with the install progress of each mod sublisting each download pack. This view would be accessible by a contextually visible button top right next to the Filter button "Installation Status" or something. If nothing's currently installing, this button is not visible.

Quote
MOD 1 LOGO/MOD1 NAME
  • PACK 1 ----------------50% Downloaded
  • PACK 2 -----------------------------------75% Downloaded
  • PACK 3 ---------------------------------------Installing
  • PACK 4 ---------------------------------------Installing
  • PACK 5 ------------------------------------------Complete
MOD 2 LOGO/MOD 2 NAME
  • PACK 1 ----------------50% Downloaded
  • PACK 2 -----------------------------------75% Downloaded
  • PACK 3 ---------------------------------------Installing
  • PACK 4 ---------------------------------------Installing
  • PACK 5 ------------------------------------------Complete
MOD 3 LOGO/MOD 3 NAME
  • PACK 1 ----------------50% Downloaded
  • PACK 2 -----------------------------------75% Downloaded
  • PACK 3 ---------------------------------------Installing
  • PACK 4 ---------------------------------------Installing
  • PACK 5 ------------------------------------------Complete

The Sub Action button is usually Details, but on Details page it changes to Settings for that particular mod. The one exception to the Action/Sub-Action rule is if a mod has an update available.
(http://i282.photobucket.com/albums/kk264/mjnmixael/Private/Knossos%20Home%20Update_zpsucyrufsh.jpg~original)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 27, 2017, 10:59:03 am
This is in addition to the Explore page, Development page, and Mod Details page? Those are designed but not implemented. (Looks like VUE.js basically still uses CSS/HTML? Point me the right direction and I can continue to contribute as soon as I setup a dev environment for Knossos.)

Vue.js is basically a template engine for HTML/JS. Here's an introduction (https://vuejs.org/v2/guide/index.html#Declarative-Rendering).
The Explore page and the Details pages are implemented however the Details page isn't finished, yet.

This is what comes up when the user clicks the gear in the top right of Knossos (currently missing from your build)?
Yes.

The mockups look great! I agree that the default flags should only apply if the mod author didn't provide their own flags.
I could also allow the user to force specific flags (which would then apply for every mod) however that sound like it could cause too much trouble.

I'll skip mod-specific settings for now (at least until I've finished the Development tab). Maybe advanced users could use the Development tab instead to tweak mod-specific settings... Though that might complicate updates.

For simplicity's sake, Knossos will only install one mod (and its dependencies) at a time. Due to this a new tab wouldn't make much sense, instead the download progress should be displayed on the mod's detail page.

Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 27, 2017, 11:08:53 am
What do you think of displaying the progress in the pop up when a user clicks "Updating" regardless of where in the UI?

EDIT: Updating would say "Installing" for first time installs, but clicking it would do the same thing.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 27, 2017, 11:20:19 am
Sounds good to me. It's better than displaying it on the details page directly.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 27, 2017, 01:30:57 pm
I'm thinking something like this.
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpsccjp2uor.jpg~original)

It also occurred to me that if Knossos only does one install at a time, it should at least be able to queue up sequential installs. (I'm sure it does this already, or is at least planned). So graphically, the user needs to be shown that. I think it's as simple as..

On the Home/Details/Development pages, "Updating..." or "Installing..." simple says "Queued..."

On the Explore page, when an install begins, just switch "Install" to "Installing..." or "Queued" as appropriate.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 28, 2017, 02:21:13 pm
I got it up and running. A few thoughts...

Excellent thinking with "Uninstall".. I completely forgot about that. However, I'm wondering what you (and others) think about putting Uninstall in the dropdown menu under "Upload Debug Log"? The idea here is to keep "Play" being the most central option. Uninstall shouldn't happen so often as to need front-and-center placement.
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpsl3yplblj.jpg~original)

Additionally, we need to add that dropdown menu to the Details page, probably bottom right of the image or something.
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpstu7wzuym.jpg~original)

On the details page, Return and Details in the header should be centered, I think. It helps differentiate visually (subconsciously) that we're in a sub-view/menu. This is probably something I can fix and learn Vue.js at the same time. (I'm also learning git so I can actually contribute in a meaningful way. The idea is to lighten your workload!)

Last thing for now, I think the default window size looks better being wide enough for 6 mods listed horizontally.
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpsfozdtajs.jpg~original)
(http://i282.photobucket.com/albums/kk264/mjnmixael/imagebin_zpsun5pbr5a.jpg~original)

EDIT: Some UI bugs.

The debug dropdown needs to close on mouse out or mouse click off.
The debug dropdown for mods on the very right of the window needs to dropdown left instead of right to avoid a horizontal scroll bar.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 28, 2017, 06:13:45 pm
Excellent thinking with "Uninstall".. I completely forgot about that. However, I'm wondering what you (and others) think about putting Uninstall in the dropdown menu under "Upload Debug Log"? The idea here is to keep "Play" being the most central option. Uninstall shouldn't happen so often as to need front-and-center placement.
Makes sense, I didn't think of that menu when I added the button.

Additionally, we need to add that dropdown menu to the Details page, probably bottom right of the image or something.
Placing just the dropdown icon there seems a bit awkward. Maybe we can add a button labeled "Advanced" or "Options" there? The button would still have the dropdown icon.

(I'm also learning git so I can actually contribute in a meaningful way. The idea is to lighten your workload!)
Thanks a lot! Your mockups have already contributed so much. Without them Knossos might still look like this:  :)
(https://dev.tproxy.de/knossos/images/screen6.png) (http://dev.tproxy.de/mirror/kn_s1.png)

On the details page, Return and Details in the header should be centered, I think. It helps differentiate visually (subconsciously) that we're in a sub-view/menu. This is probably something I can fix and learn Vue.js at the same time.
This probably won't involve Vue.js since it doesn't change anything related to the control flow / logic. I guess you will only need the change the CSS. I'm not sure if you're familiar with the Chrome DevTools (https://developers.google.com/web/tools/chrome-devtools/) but you can use them with Knossos: If Knossos is running in Debug mode (the default if you use windows_run.bat), you can open Chrome and point it to http://localhost:4006/ (http://localhost:4006/) which should then display the DevTools. I've found this to be very helpful.

Last thing for now, I think the default window size looks better being wide enough for 6 mods listed horizontally.
You're right, I think the current window size is more or less a left over from the previous UI.

The debug dropdown needs to close on mouse out or mouse click off.
The debug dropdown for mods on the very right of the window needs to dropdown left instead of right to avoid a horizontal scroll bar.
Those bugs are limitations of the current implementation (I was trying to implement them using only CSS). I'll redo them using JS which should fix these issues.

I've implemented the new progress display. It works fine but there are a few issues left: The percentage text on the blue button is misplaced for some reason. I haven't yet figured how to fix it.
The list doesn't list packages but files instead because a package can have several files (i.e. CB Anis from MediaVPs 2014) and it was easier to display the progress status per file. The alternating background colors will be added during the next round of polishing.

Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: Spoon on May 28, 2017, 06:15:29 pm
I'm glad you guys are still being productive on this  :yes:
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: AndrewofDoom on May 28, 2017, 06:55:14 pm
Yeah, me too! I thought this project had died and I was worried.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 28, 2017, 07:09:44 pm
Quote
Placing just the dropdown icon there seems a bit awkward. Maybe we can add a button labeled "Advanced" or "Options" there? The button would still have the dropdown icon.
Works for me. Or we have those buttons on the left 'Play', 'Settings', and then add 'Options' there as a grey button like Settings?


Quote
This probably won't involve Vue.js since it doesn't change anything related to the control flow / logic. I guess you will only need the change the CSS. I'm not sure if you're familiar with the Chrome DevTools (https://developers.google.com/web/tools/chrome-devtools/) but you can use them with Knossos: If Knossos is running in Debug mode (the default if you use windows_run.bat), you can open Chrome and point it to http://localhost:4006/ (http://localhost:4006/) which should then display the DevTools. I've found this to be very helpful.
Oh, awesome! On the same subject, I was trying to modify some CSS (in html/css and html/index.html) and poke around with things for testing, but the changes never were reflected when I ran Knossos with windows_run.bat. What's the process for making those changes affect Knossos?

Quote
You're right, I think the current window size is more or less a left over from the previous UI.
I figured. Your latest commit increases it, but it needs to be just a hair bigger at 1129px on my machine. This is probably because of the scrollbar. I would do 1133px for various OCD design reasons.. but that's just me. :p

Quote
Those bugs are limitations of the current implementation (I was trying to implement them using only CSS). I'll redo them using JS which should fix these issues.
:yes: Would it be more helpful to submit these sorts of things as issues on GitHub instead of the thread?

Quote
I've implemented the new progress display. It works fine but there are a few issues left: The percentage text on the blue button is misplaced for some reason. I haven't yet figured how to fix it.
The list doesn't list packages but files instead because a package can have several files (i.e. CB Anis from MediaVPs 2014) and it was easier to display the progress status per file. The alternating background colors will be added during the next round of polishing.
Tried taking a look, but couldn't see an "Updating" or "Installing" button when I tried. But listing files instead of packages is fine, really. Just so long as the user gets a sense of "something is happening". I did notice that the "Install a mod" dialog needs to be skinned. I'll work up something.

I'm glad to help with such a worthy project.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 28, 2017, 08:33:35 pm
Works for me. Or we have those buttons on the left 'Play', 'Settings', and then add 'Options' there as a grey button like Settings?
That sounds even better.

On the same subject, I was trying to modify some CSS (in html/css and html/index.html) and poke around with things for testing, but the changes never were reflected when I ran Knossos with windows_run.bat. What's the process for making those changes affect Knossos?
As it turns out there were a few bugs with the debug mode on Windows. I've fixed them, once you update your files it should work. If you only change the files in the html folder, you don't have to restart Knossos, you can just right-click on the web page and select "Reload".

I figured. Your latest commit increases it, but it needs to be just a hair bigger at 1129px on my machine. This is probably because of the scrollbar. I would do 1133px for various OCD design reasons.. but that's just me. :p

:yes: Would it be more helpful to submit these sorts of things as issues on GitHub instead of the thread?
I'm not sure. Issues give a better overview but a post in this thread will be read by more people.

Tried taking a look, but couldn't see an "Updating" or "Installing" button when I tried. But listing files instead of packages is fine, really.
After you click "OK" in the install dialog, Knossos should switch to the Home tab. If you then hover over the mod, it should display the "Installing..." button. Here's a screenshot:
(http://i.imgur.com/5uWtpRD.png) (http://i.imgur.com/dBpXzC9.png)


Yeah, me too! I thought this project had died and I was worried.
Eh, this project has been going for over 3 years at this point (first commit (https://github.com/ngld/knossos/commit/975fedff3752ba02) was January 2014). I had to take a few breaks but I think we are finally getting close to a stable release and I'll keep working on this as long as I can.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: AdmiralRalwood on May 29, 2017, 02:30:44 am
I'm always excited to see progress on Knossos; I think a combined installer and launcher could be very useful for new players, and I hope to see what the next version looks like when Mjn is done graphic-ing all over it. :P
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: karajorma on May 29, 2017, 07:37:28 am
Long time members will have some idea how happy I am to see all my dreams finally come true (http://www.hard-light.net/forums/index.php?topic=66064.msg1303459#msg1303459).

And it definitely looks better than my 2009 mock up.
(http://fs2downloads.com/Misc-Pics/Installer2.png)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 29, 2017, 03:12:05 pm
Most of what I've been working on is cleaning up the UI to help it feel polished and less photoshopy.

I tried moving the Uninstall button (easy), but it didn't actually function in the dropdown. I assume that's a limitation of the current non-js implementation of that dropdown.

Sometime soon I'm going to recreate the button.pngs because the outerglow effect is not working design wise, IMO. Also it makes the Details button looks blurred out. I noticed in a commit a while back you  "fixed color profiles" of those PNGs. What color space does libpng want?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on May 29, 2017, 04:48:05 pm
libpng only complains if you embed the sRGB profile. Not embedding it or using a different color space works. Here's an explanation (https://wiki.archlinux.org/index.php/Libpng_errors).

I've looked into the problem you had with the shadows and the scroll bar but I haven't managed to fix it, yet. I've also started implementing the settings screen.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on May 29, 2017, 05:27:53 pm
Excellent. The shadows is very minor. We can worry about that later.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 16, 2017, 08:11:21 am
(http://i.imgur.com/S3dzlUb.png)

The settings page is nearly finished I just need to implement the save logic for the default flags. I added a save button because I didn't want to re-generate the fs2_open.ini on every change.
The Network setting is coded but hidden because I couldn't get the widgets to align correctly. Most of the Joystick section is disabled because it's not implemented, yet.
It's not finished but it's functionial which was my goal because I want to finish 0.5.0 as soon as possible. The only remaining tasks after this are: Fix a bug with path during mod installation, fix the formatting of the mod descriptions and properly handle the case where retail files are missing.



In other news: macOS is supported again because I found a box for Vagrant.
Someone brought up P2P mirroring again so I investigated BitTorrent again. libTorrent (http://libtorrent.org) (which is also used by Deluge, qBittorrent and WoT launcher) has Python bindings which should make it easy to integrate. Using this I could generate .torrent files automatically on the server, Knossos would use libtorrent to download those. Each torrent would have the existing link on dl.fsnebula.org listed as a web seed which means that downloads will always work (even if noone seeds) and should be at least as fast as they are now.
If people then want to mirror files, they'd only need to run a torrent client and seed these torrents either on their own PC or on a server.
What are your thoughts on this approach?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: m!m on June 16, 2017, 08:58:34 am
I just checked the development files and the new settings page looks very good. Is it supposed to be functional yet? When I open the page all the settings panels are hidden by default and clicking the buttons doesn't do anything.

In other news: macOS is supported again because I found a box for Vagrant.
Someone brought up P2P mirroring again so I investigated BitTorrent again. libTorrent (http://libtorrent.org) (which is also used by Deluge, qBittorrent and WoT launcher) has Python bindings which should make it easy to integrate. Using this I could generate .torrent files automatically on the server, Knossos would use libtorrent to download those. Each torrent would have the existing link on dl.fsnebula.org listed as a web seed which means that downloads will always work (even if noone seeds) and should be at least as fast as they are now.
If people then want to mirror files, they'd only need to run a torrent client and seed these torrents either on their own PC or on a server.
What are your thoughts on this approach?
It sounds like a good idea but torrent seeding will be disabled by default, right? Enabling it by default will cause issues for some users so it would be best to make it opt-in for the more advanced users.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 16, 2017, 09:53:19 am
I just checked the development files and the new settings page looks very good. Is it supposed to be functional yet? When I open the page all the settings panels are hidden by default and clicking the buttons doesn't do anything.
It's functional but you found a bug (hooray for automatic error reporting). It should be fixed now.

It sounds like a good idea but torrent seeding will be disabled by default, right? Enabling it by default will cause issues for some users so it would be best to make it opt-in for the more advanced users.
I'll add an option to disable seeding in the settings screen. I might add another option to disable torrent downloading, too. In that case Knossos would fall back to HTTP downloading.
I'm curious, what issues are you referring to? Would it be problematic beacuse of the (potentially) high upload traffic or because it's BitTorrent?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: m!m on June 16, 2017, 10:27:49 am
If an application starts uploading stuff without my approval then it's a reason to uninstall that software, at least for me personally. That's specific to the seeding part but I guess enabling torrent download by default would be ok if that doesn't also require seeding. Also, seeding might cause issues if people only have limited data per month and automatic seeding would effectively double the data usage of a download (depending on how fast the connection is).
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 16, 2017, 10:38:00 am
Fair enough. I'll also have to think about how long a given client seeds if the option is enabled.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: chief1983 on June 16, 2017, 10:45:26 am
When a game is running all seeding activity would need to pause as well, and resume after exiting the game.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 16, 2017, 06:06:02 pm
I've fixed the mod installation, mod description and Knossos can finally launch FSO again! There are only two problems remaining: The prompt for missing retail files is still missing and I need to repackage most mods on fsnebula.org because of the recent changes. The latter is annoying because the current website can't handle the task since it doesn't know about the newer fields. I don't want to update the website because I plan on replacing most of it with the new developer page in Knossos itself. That's still unfinished, though.
As a temporary solution, I'll probably edit the JSON file on fsnebula.org by hand.

Given the current progress, I guess that I'll be able to release 0.5.0 either this weekend or the next. However, I won't add new mods (or update existing ones) until 0.6.0 is done (which will have the developer tab).
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on June 16, 2017, 06:53:40 pm
:yes:

EDIT: Hmm, something with the recent commit broke windows_run.bat. "Add missing os.path.isdir() check".
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 17, 2017, 03:44:23 am
Delete the build.ninja file and try again. That file contains a list of all important files including the images. Since you renamed some of the images, the build.ninja file needs to be regenerated.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on June 17, 2017, 09:02:13 am
Delete the build.ninja file and try again. That file contains a list of all important files including the images. Since you renamed some of the images, the build.ninja file needs to be regenerated.

Aha.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jg18 on June 18, 2017, 01:37:52 am
IMO direct download should be default and torrent should be opt-in, possibly without the option to disable seeding. Here's why:

According to Wikipedia (https://en.wikipedia.org/wiki/BitTorrent#Throttling_and_encryption), ISPs have been known to detect and throttle customers using torrenting. When I tried seeding Diaspora R1 when it was first released, my ISP nearly cut off my Internet connection seconds later, particularly bad since I shared the connection with my landlord :eek:  Thankfully the ISP restored the connection shortly after I stopped seeding. (Yay lack of net neutrality.) It's not inconceivable that an ISP would punish a customer for using BT just to download.  IMHO We shouldn't risk players having problems with their ISPs caused by their using our software using torrenting without their prior consent.

As for not allowing disabling seeding, I dunno if we should be encouraging leeching. The whole point of BT is to make download faster for everyone by having everyone upload the chunks they've already received. As such the player could choose to use torrent in thehopes of getting higher download speeds at the cost of a bit of uploading.

I can't find a reference for this now, but I thought in some cases torrent users who don't upload at all or "enough" get punished by having throttled download speedor conversely be rewarded with higher download speed for providing higher upload speed although now I can't find something to back that up.

As I remember you can configure a BT client to limit your maximum upload speed. We could offer a list of maximum upload speed options (e.g., low/medium/high with medium as default) so that downloaders have to upload at least a little bit. Although since I think a given chunk is downloaded from just one peer at a time, a slow upload speed for one player means a slow download speed for other players trying to get that chunk from that peer? In that case don't make the chunks super-big.

Since it isn't obvious to me, why should seeding be disabled while the game is running?

Alternatively, maybe we should just accept that torrent leeching is a fact a life and allow for disabling seeding? :doubt: But even in that case I still think torrenting should be opt-in for the reason I mentioned about the possibility of ISPs punishing customers for using BT. Or if we really wanted players to consider using torrent, we could make it a decision for the player to make on first Knossos startup and allow them to change it later if they want, like how wxL on first launch asks the userwhether wxL should download the news/highlights.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: mjn.mixael on June 18, 2017, 08:56:51 am
I'm honestly curious if torrenting is even worth all of that. Specifically, what problem does it solve on our more modern, non-90s internet? Is it something that could more easily be solved with additional mirrors?

Now.. I fully realize I'm saying this as a Google Fiber customer. But it's still an honest question. Back when I was on Time Warner with a measly 25 down 5 up, I still didn't have issues downloading mods with relative ease.

Do we have enough people who might seed the torrents to make the torrents less of a slog than straight downloads?

If ya'll say, it really is worth it then, I'll believe you! It just sounded like a lot of overhead and I was curious.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 18, 2017, 12:33:42 pm
My main concern isn't speed (which should be fine as-is) but bandwith. Torrents were suggested several times and chief asked if there was a way to use several VPS with small hard drives as mirrors.
I found a way to implement them and it seemed like a simple solution to chief's suggestion (each VPS could run a torrent client and seed). Before implementing or testing anything I wanted some feedback which is why I suggested this in my last post.

Of course, additional mirrors could solve this just as well. It isn't even a real problem right now. I'm just wondering how much traffic Knossos will generate once people start actually using it.
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on June 18, 2017, 04:52:06 pm
I think it'd help, it provides a simpler way to deal with peak bandwidth issues. The biggest stress on FSMods & the current installer that I recall is when Steam released FS2. The demand on the installer smashed FSMods & caused lots of failed downloads. If there was an option to torrent then HLPers could pretty much straight away contribute to reducing that demand while other mirrors are setup, or existing mirrors bandwidth is increased.

This is presuming that we don't have people willing to run mirrors all the time and eat the extra cost when the bandwidth isn't strictly needed.

And lastly, from a purely selfish point of view I like torrents because they're usually faster :) I've got a 100MB down ISP connection and I can't max it out except by using a torrent (or if the data is mirrored within Australia, which is OK for mainstream stuff like my OS updates, but not much else)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 18, 2017, 05:05:07 pm
That was the main reason I've considered torrents.

And lastly, from a purely selfish point of view I like torrents because they're usually faster :) I've got a 100MB down ISP connection and I can't max it out except by using a torrent (or if the data is mirrored within Australia, which is OK for mainstream stuff like my OS updates, but not much else)
I'm curious, what download speed do you get with this link (https://dl.fsnebula.org/mods/bta_complete/1.0.8/BtA1_1080Movies.7z)?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: niffiwan on June 19, 2017, 06:00:36 am
Looks like I got around 2.5MBytes/sec; I've got similarly sized CD ISOs in about ~1 min using a torrent. OK OK, 1st world problems here!  :D This only took < 7mins which is still very good (and I ran out of disk space which is why it stopped @ 94%). Speed started much slower & ramped up, it was saying 30-40 mins estimated duration for the 1st ~30 secs I watched the download.

Code: [Select]
$ wget https://dl.fsnebula.org/mods/bta_complete/1.0.8/BtA1_1080Movies.7z
--2017-06-19 17:24:59--  https://dl.fsnebula.org/mods/bta_complete/1.0.8/BtA1_1080Movies.7z
Resolving dl.fsnebula.org (dl.fsnebula.org)... 138.201.54.161
Connecting to dl.fsnebula.org (dl.fsnebula.org)|138.201.54.161|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 953291171 (909M) [application/x-7z-compressed]
Saving to: 'BtA1_1080Movies.7z’

BtA1_1080Movies.7z                                          94%[==============================================================================================================================>        ] 855.33M  2.53MB/s    in 6m 39s 
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on June 19, 2017, 11:03:01 pm
If an application starts uploading stuff without my approval then it's a reason to uninstall that software, at least for me personally. That's specific to the seeding part but I guess enabling torrent download by default would be ok if that doesn't also require seeding. Also, seeding might cause issues if people only have limited data per month and automatic seeding would effectively double the data usage of a download (depending on how fast the connection is).

Windows 10 (https://redmondmag.com/articles/2016/08/16/windows-10-p2p-update-controls.aspx), as well as Blizzard (https://www.dhnet.ufl.edu/getconnected/tutorials/p2premoval/blizzard/) (at least in the past (https://us.battle.net/forums/en/bnet/topic/16283439122)), use P2P to install their software.  Not saying if this is good or bad, just that it works and helps (helped?) them and others (http://p2peducation.pbworks.com/w/page/8897427/FrontPage) a lot with bandwidth issues.

With all of that said, I'd put the option as a prompt, recommending the user allow P2P, but having the option to disable at launch.  Also, I know that Deluge and others have an option to use a random port, as well encrypt their data stream
Hidden Text: Show
(http://i67.tinypic.com/2h4almw.jpg)
, and I would recommend enabling that if it's possible using libTorrent.  Some ISPs do indeed punish their subscribers for P2P (better hope you're not using Win 10's new update method or Blizzard's updater then).

As far as upload speed, it's recommended as a rule of thumb to max out seed speed at 10% of max upload speed (and while playing or otherwise using the computer, probably limit it to something like 10 or even 5 or 2 Kb/s, not much, but enough to add up over time).
And for seed ratio (how much you upload), Deluge defaults to 2.00, but I'd also give the option to be a seeder (seed infinitely) for those that want to help out, as well as an option to help out a little but not that much (1.1?), or metered connection (only seed until download is done).

Reason I always bring up P2P is it's the only solution where maxing out your bandwidth literally can't happen, the more people download, the faster they download: your problem becomes it's own solution (vs mirrors ceasing to work when they hit the monthly quota due to massive demand, or similarly, slowing to a crawl if too many are downloading at once).

My 2c, anyways (and I've seen the above happen more than twice with FSO, so it's something that has happened to us before, and during spikes of popularity, the last thing you want is inaccessibility)
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: ngld on June 21, 2017, 05:34:14 pm
@niffiwan: Interesting. This is what I get:
Code: [Select]
wget https://dl.fsnebula.org/mods/bta_complete/1.0.8/BtA1_1080Movies.7z
--2017-06-22 00:04:10--  https://dl.fsnebula.org/mods/bta_complete/1.0.8/BtA1_1080Movies.7z
Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
Resolving dl.fsnebula.org... 138.201.54.161
Connecting to dl.fsnebula.org|138.201.54.161|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 953291171 (909M) [application/x-7z-compressed]
Saving to: 'BtA1_1080Movies.7z'

BtA1_1080Movies.7z                                                  100%[==============================================================================================================================>] 909.13M  10.5MB/s    in 91s     

2017-06-22 00:05:41 (10.0 MB/s) - 'BtA1_1080Movies.7z' saved [953291171/953291171]

I didn't expect there to be such a difference. I guess the the connection between Australia and Germany (where the server is) limits the available bandwidth. I guess this is why companies like to use CDNs for downloads.

With all of that said, I'd put the option as a prompt, recommending the user allow P2P, but having the option to disable at launch.
I agree, this sounds like the best option so far.

I know that Deluge and others have an option to use a random port, as well encrypt their data stream, and I would recommend enabling that if it's possible using libTorrent.
Deluge uses libTorrent itself (and Deluge is written in Python) which means I should be able to implement most of Deluge's features. Though (obviously) I will only implement the features I actually need.
Regarding the encrypted data stream, are you talking about SSL torrents (http://libtorrent.org/manual-ref.html#ssl-torrents)?
Title: Re: PUBLIC BETA: Knossos 0.4.4 (launcher / mod installer)
Post by: jr2 on June 24, 2017, 11:14:02 am
Regarding the encrypted data stream, are you talking about SSL torrents (http://libtorrent.org/manual-ref.html#ssl-torrents)?

Not sure, I only know I was able to get around my connection being limited by enabling encryption before.  I assume enterprising ISPs would be able to look past even that with traffic analysis or whatever, but if it's simple enough to implement, it'd be nice to have for those that run into this type of situation.

Even if some aren't able to use P2P, because of their ISP, however, P2P will help free up traditional server downloads for them.