Author Topic: [Preview] Knossos 0.5.3  (Read 23090 times)

0 Members and 1 Guest are viewing this topic.

Offline ngld

  • Administrator
  • 29
  • Knossos dev
[Preview] Knossos 0.5.3
There's a new thread for version 0.6.0!



Here's the next release. The main purpose of this release is to test the new UI designed by Mjn.Mixael.

What works
  • listing, downloading, (un)installing mods
  • settings screen
  • search
  • launching FSO
  • the new folder structure (read the old thread for details)

What doesn't
  • playing mods (currently FSO is always launched without the -mod flag)
  • changing flags (the flag section on the settings screen doesn't save)
  • sorting
  • the dropdown menus on the Home tab
  • the Development tab

Download and package links

During the first launch, Knossos will ask you to select a directory which it will use to store mods. Please select an empty directory.

I'll work on the Development tab next. Once that's done most of the functionality I want Knossos to have will be implemented. Here's a complete list of unfinished tasks.
« Last Edit: October 29, 2017, 10:19:10 am by ngld »

 

Offline m!m

  • 211
Re: [Preview] Knossos 0.5.1
I hate to start this thread with a bug report but whenever I try to launch the application on Windows it crashes with the error "Failed to execute script __main__". When I launch it from a terminal, this is the output:
Code: [Select]
Traceback (most recent call last):
  File "C:\knossos\knossos\__main__.py", line 122, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
  File "C:\knossos\knossos\launcher.py", line 70, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
  File "C:\knossos\knossos\util.py", line 31, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
  File "C:\Python35\lib\site-packages\requests\__init__.py", line 89, in <module>
  File "<frozen importlib._bootstrap>", line 969, in _find_and_load
  File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 664, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 634, in _load_backward_compatible
  File "C:\Python35\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
  File "C:\Python35\lib\site-packages\requests\utils.py", line 42, in <module>
  File "C:\Python35\lib\platform.py", line 1095, in system
  File "C:\Python35\lib\platform.py", line 990, in uname
  File "C:\Python35\lib\platform.py", line 571, in win32_ver
  File "C:\Python35\lib\platform.py", line 527, in _get_real_winver
  File "C:\Python35\lib\site-packages\PyInstaller\loader\pyiboot01_bootstrap.py", line 153, in __init__
  File "C:\Python35\lib\ctypes\__init__.py", line 347, in __init__
OSError: [WinError 126] The specified module could not be found

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.1
This is the first release to use a 64bit build of Python and it seems that might've caused this.
I'll make a new build using 32bit Python and we'll see if that fixes it.

 

Offline niffiwan

  • 211
  • Eluder Class
Re: [Preview] Knossos 0.5.1
Sorry - still encountering this error despite the recent changes to include nodejs & handle fallback to PyQt5.QtWebKit :(
(Mint 18.1 / Ubuntu 16.04)



Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.1
@m!m: I managed to track the problem down. Python tries to load a version.dll (which should be in C:\Windows\system32) which seems to fail on Windows 10 (it works on Windows 7). Updating Python to 3.5.3 fixed that.
@niffiwan: It was a simple copy&paste error.

Both are fixed in 0.5.2 which is building right now. I'll update the link once it's uploaded.

 

Offline m!m

  • 211
Re: [Preview] Knossos 0.5.1
The new version works fine on Windows :yes:

 

Offline chief1983

  • Still lacks a custom title
  • Moderator
  • 212
  • ⬇️⬆️⬅️⬅️🅰➡️⬇️
    • Minecraft
    • Skype
    • Steam
    • Twitter
    • Fate of the Galaxy
Re: [Preview] Knossos 0.5.2
The Mac build won't start, saying it can't find 7z.  But it looks like the Contents has it included, so I'm not sure where it's trying to look.  Maybe the search path got messed up during the dmg assembly?
Fate of the Galaxy - Now Hiring!  Apply within | Diaspora | SCP Home | Collada Importer for PCS2
Karajorma's 'How to report bugs' | Mantis
#freespace | #scp-swc | #diaspora | #SCP | #hard-light on EsperNet

"You may not sell or otherwise commercially exploit the source or things you created based on the source." -- Excerpt from FSO license, for reference

Nuclear1:  Jesus Christ zack you're a little too hamyurger for HLP right now...
iamzack:  i dont have hamynerge i just want ptatoc hips D:
redsniper:  Platonic hips?!
iamzack:  lays

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
I've just released 0.5.3 which should fix the macOS builds.

@niffiwan: Can you please confirm that 0.5.2 fixed the Ubuntu builds?

 

Offline niffiwan

  • 211
  • Eluder Class
Re: [Preview] Knossos 0.5.3
yes, 0.5.2 fixed the Ubuntu LTS issues - thanks!
Creating a fs2_open.log | Red Alert Bug = Hex Edit | MediaVPs 2014: Bigger HUD gauges | 32bit libs for 64bit Ubuntu
----
Debian Packages (testing/unstable): Freespace2 | wxLauncher
----
m|m: I think I'm suffering from Stockholm syndrome. Bmpman is starting to make sense and it's actually written reasonably well...

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
I've finally gotten to the development tab.

This is what I've implemented so far:


Here's mjn's mockup:

Obviously, I still have to add a few options but while I'm working on that I want some feedback since I think the mockup is still incomplete.

Ideally this is how I imagine a modder would create a mod in Knossos 1.0.0:
  • Go to the development tab and click "Create" or "New mod".
  • Enter the title and folder name
  • Add the dependencies (i.e. Media VPs)
  • Click "Browse" (next to "Mod Path") to open the mod folder and add files like models, textures, etc.
  • Select a FSO build
  • Launch FSO or FRED through Knossos
  • Once everything is done: Package (as .vp) & Upload to fsnebula.org

There are a few things missing to enable that workflow (i.e. a widget to select the dependencies). Before I start working on those parts I want your opinions on this: As a modder, tester or dev, what would you like to see here?
@mjn: I'd like to hear your take on this, too.


Eventually this interface should support TCs and adding FSO builds as well. I'm still working on the details so I'm not sure how those will look. Feel free to offer your opinions/suggestions though.


 

Offline Cyborg17

  • 29
  • Life? Don't talk to me about life....
Re: [Preview] Knossos 0.5.3
This may be beyond the scope of Knossos, but a list of files in the mod directories and dependencies, sorted by type could be pretty useful.

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
The file listing is fairly simple to implement. Do you mean dependencies on other mods (as specified by the mod's author) or dependencies on other mod files (generated automatically)? The former is already visible in the mockup and will be implemented.

 

Offline Axem

  • 211
Re: [Preview] Knossos 0.5.3
I think the way you have it makes sense to me... at least in general.

Just a few things to cover off first. In mod dependencies, are these going to be actual mods or just folders (or both)? Some larger mods (like BtA, BP and even JAD) have a complex web of folders that we use to keep things separate for later packaging to VP. For example, in mjn's mockup, he has a bunch of BTA folders, which aren't really mods, just folders, but the main mod.ini refers to all of the paths to make them into a whole functioning mod. Maybe some way to select and indicate mod paths and actual mods?

Also how would things like add on packs be handled in development? Like optional high res textures or movies?

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
I'm splitting dependencies into two parts. Knossos uses mods (which represent mod folders) and packages (which refer to individual files like MV_Advanced.vp).
The idea is that you tell Knossos about the mods you require (which is then used to build the -mod flag) but don't have to worry about the packages until you decide to upload.
When you want to upload your mod, you have to split it into packages. For each package you select which folders and files it contains and which packages of other mods it requires. You also have to select which package depends on which mods (and which of their packages are required). Knossos then builds an archive per package (.7z) and uploads that to fsnebula.org.

I'm not sure if it's feasible but I'd like to integrate .vp file generation into the whole process. I'm just not sure how or where to implement it (is creating one .vp file per package a good idea?).

To demonstrate how mods and packages work, here's the current install window:

BtA and MediaVPs are mods every other option is a package. Each package can be required, recommended or optional. Required files are disabled because you can't deselect them. Recommended files are selected by default and optional packages are unchecked by default.


Also how would things like add on packs be handled in development? Like optional high res textures or movies?
Honestly, I haven't considered how to handle them in development. When you upload them you would put them in seperate packages and mark them as recommended or optional as explained above. Would it make sense to have packages during development which you could then disable or enable?

 

Offline Axem

  • 211
Re: [Preview] Knossos 0.5.3
I think I sort of get it. So mods are like things Knossos can find, use and launch with, but aren't handled by Nebula's auto updating or versioning. Mods can be turned into packages through the magical process of *magic*. And packages are solidly handled by Nebula and come with dependencies, versions and the other fun stuff. (Correct me if I'm not getting it)

So what happens when I have a package released, but I need to work on it for patches and stuff? (Personally I have 2 FreeSpace folders, a playing one where its just released packaged mods, and a production/development one where I have a bunch of misc mod folders and svn directories, so that's how I handle that now)

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
Not exactly. A mod has a version, title, description, etc. A mod is what shows up in lists.
Each mod has at least one package but can have as many as a modder wants. A package always belongs to exactly one mod (and version). A package has a title, included files and dependencies.
A package serves to seperate mod files into groups as seen in the last screenshot.

Knossos currently can't install several versions of the same mod (I had implemented support for that in the past but it got pretty complicated and due to suggestions in the last thread, I've taken it out simplify the relevant code.).

However, you could have 2 folders: The "base folder" which is where Knossos installs mods and a second folder where you keep the mods you're working on. The mods in the second folder would still be able to use dependencies from the first (i.e. Media VPs) so you'll only have to install those once.
I'm not sure how I'm going to handle duplicates (i.e. if you have JAD installed in your base folder and a dev version of JAD in the second folder). I could either have the dev version replace the released version in the UI or display both but somehow mark them (different color?). I bet someone else has a better idea regarding this.

EDIT: You could also use a single folder but then you wouldn't be able to have the released version and the dev version of your mod installed at the same time.
« Last Edit: June 27, 2017, 07:55:06 pm by ngld »

 

Offline Axem

  • 211
Re: [Preview] Knossos 0.5.3
Yeah, it's sort of complex. I guess we've all come up with our own idiosyncratic methods to organize ourselves. Maybe we need to show you our modding development environments and see if you can find some magic point to unite us all. :p

How do other systems like this work? Like steam workshop? I've never used it that much so I don't know...

 

Offline ngld

  • Administrator
  • 29
  • Knossos dev
Re: [Preview] Knossos 0.5.3
I have no idea how steam workshop works since I've never used it myself. However, AFAICT it doesn't handle dependencies which makes the whole thing much easier.
Most package systems I know of only allow one version of a package to be installed.
Nexus Mods Manager / Mod Organizer don't handle dependencies, either. Hell, they can't even search for mods. You need to use the website to start a download.

The simplest option so far would be to have two mods: JAD and JAD_dev. Knossos could easily tell them apart and handle them as two seperate mods. Only when you upload would Knossos have to remember that JAD_dev is actually JAD and upload it as such. Maybe I can implement an option which does exactly that.


 

Offline Axem

  • 211
Re: [Preview] Knossos 0.5.3
Maybe when you do the upload submission, you have an opportunity to finalize certain things such as "development mod" or change the name so it could go from something like "JAD - DEV" to "JAD"?

In my in-development folder, my mods are typically done like "JAD - Dev" or "Vassago-NOVP". When I export the files from SVN, and create the VPs, I take the mod.inis and modify them so they reflect the way things will look in production.

For example in \JADNOVP\ the mod.ini's secondary list is
Code: [Select]
secondarylist = JADNOVP\JAD2-2\JAD222,JADNOVP\JAD2-2\JADXA,JADNOVP\JAD2-2\JAD221,mediavps_2014;The JAD2.21 files and JAD2.22 files were separated out because of episodic releases, and each episode has its data divided into 3 VPs so patches can be applied to just the small text data files instead of the giant assets. I have a batch script that does all this for me right now.

So when I go to do a real release, \JAD2-2\'s mod.ini secondary list is just
Code: [Select]
secondarylist = mediavps_2014;Because its all meant to play together.

Blue Planet has a huge mess of svn folders everywhere. But everything important is in BP Complete, and each VP that would be made has its own mod folder (no mod.ini inside) and its secondary list looks like...
Code: [Select]
secondarylist = blueplanetSVN\BP Complete\bpc-fs2blue,blueplanetSVN\BP Complete\bpc-core,blueplanetSVN\BP Complete\bpc-visuals4,blueplanetSVN\BP Complete\bpc-visuals3,blueplanetSVN\BP Complete\bpc-visuals2,blueplanetSVN\BP Complete\bpc-visuals1,blueplanetSVN\BP Complete\bpc-audio1,blueplanetSVN\BP Complete\bpc-audio2,blueplanetSVN\BP Complete\bpc-audio3,mediavps_2014;
and likewise the final release mod.ini would just have mediavps_2014 in the secondary list.

I don't know if this helps you or not, I'm just trying to tell you how I've seen things done, so maybe a way can be found that doesn't throw all of us into confusion.

 

Offline Cyborg17

  • 29
  • Life? Don't talk to me about life....
Re: [Preview] Knossos 0.5.3
My thought would just be a list of whatever files are in the packets used in the chosen mod and the mods that the chosen mod is trying to depend on.

It would be a way to quickly check what ships, scripts, tables, etc., are in use, especially if your mod is larger and you're not sure if you got around to adding that last civilian station for that new mission you're about to fred, or its tbm, or the custom cockpit glass texture, etc.