#Installer and Third-party Launchers
1061 messages · Page 2 of 2 (latest)
So for most situations, it's just generating or updating a profile
Question is: do we want to do the second thing or not? Should we go to a full runtime model?
I think if we're already using graal native we could probably put the patch and deobf inside it too
No, patch and deobf are a mess of code. They'd make native generation much harder
I'd say separate. That way you can eventually move towards a model where you, say, install FMLOnly once per MC version and not have to reinstall for each forge version
Yes
Now, clean new installer code or try and fix up existing?
I wrote most of existing and it's gross
It only uses swing tho, so that's a positive
And if Orion's progress through dealing with it is any indicator it's fairly painful to deal with
Yes it's gross
But I'd say keep what makes sense to keep and toss the rest
Lots of overloading of stuff in there
Especially if the goal is to use a graal native build of it
Something I really want is a proper window. The current window handling is so borked
That means you want to prioritize design that lets GraalVM shrink it well
fabric loader does the remapping and patching on first load
Yeah that's something we might move to tech
We should move to
I had all the hooks in modlauncher to support doing that
And with early window, it can generally be communicated
Doing it on first load allows the "install FMLOnly once per MC version" model which is a Good Thing™️
You could also distribute your server as a .jar (download the mc jar on first startup), when we did this it helped server owners a lot. Using the installer and trying to copy all the files over was a pain for some.
Yeah that too. A server bootstrap setup of some sort is always super helpful
And should be comparatively easy to set up too, in the grand scheme of things, if the infrastructure for first launch remapping and patching already exists
Yeah, using the fabric-installer/launcher jar was pretty convenient for me, though it was a bit confusing having an additional version number (for the installer jar itself)
The long term goal was always that a specific version of neo is just a mod jar in your mods folder or other locator
Fmlonly does the hard work of setting up an Mc version to load it
Or foxlauncher as we dubbed it
I don't see the point personally
Only have to run the installer once per MC version
The installation is the most annoying part of setting up forge. Adding mods is trivially easy by comparison
Forge will always be a special citizen though
Yes-ish. It should still be easy to install a new neoforge version. And separating that out helps make it easy
It's special but not that special, as it were
The patches still need to change
Yes? That doesn't require an installer
At least in theory there's nothing requiring an installer to do that
If you've moved to an on-first-launch scenario that is
The simple case should still be a single download though
Of course
A good installer would probably offer to grab a selection of neos
Latest, recommended etc
Single download yes, but you should only have to run an installer once
Downloading a neo version and shoving it in the mod dir isn't exactly hard
I thought with the new versioning system that wouldn't really matter? With all builds after the first stable build automatically being stable?
You'd just always install latest and call it a day
Somewhat. It's still something that I think we need to define for the longer term.
Given that the latest version is almost always less buggy than the recommended version, due to bugs being fixed post recommended build...
yeah, this whole thing is a bad bikeshedding thing
imma write a quick POC installer
so, this (not quite working) POC is about 15megs
-rw-r--r-- 1 cpw cpw 14914849 Oct 5 21:23 neo.7z
compressed
tho a 7z sfx would probably make a bit of sense anyway for bundling stuffs
Iirc, there was a bunch of faf with graaling something which used swing, the awt/desktop native libs had to be shipped in parallel, unless they have fixed that already. That was the case in j17.