#Installer and Third-party Launchers

1061 messages · Page 2 of 2 (latest)

edgy root
#

My thinking is that we'd have a small graal native that can do the core task: creating a profile. It should have the ability to do a second task as well: download or find a regular jre and launch it to do patch and deobf generation

#

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?

merry belfry
#

I think if we're already using graal native we could probably put the patch and deobf inside it too

edgy root
#

No, patch and deobf are a mess of code. They'd make native generation much harder

willow knot
#

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

edgy root
#

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

willow knot
#

And if Orion's progress through dealing with it is any indicator it's fairly painful to deal with

edgy root
#

Yes it's gross

willow knot
#

But I'd say keep what makes sense to keep and toss the rest

edgy root
#

Lots of overloading of stuff in there

willow knot
#

Especially if the goal is to use a graal native build of it

edgy root
#

Something I really want is a proper window. The current window handling is so borked

willow knot
#

That means you want to prioritize design that lets GraalVM shrink it well

edgy root
#

Yup

#

I'll try throwing something together later today

minor scroll
#

fabric loader does the remapping and patching on first load

edgy root
#

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

willow knot
#

Doing it on first load allows the "install FMLOnly once per MC version" model which is a Good Thing™️

timber haven
#

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.

willow knot
#

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

azure sluice
#

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)

edgy root
#

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

minor scroll
willow knot
#

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

minor scroll
#

Forge will always be a special citizen though

willow knot
#

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

minor scroll
#

The patches still need to change

willow knot
#

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

minor scroll
#

The simple case should still be a single download though

edgy root
#

Of course

#

A good installer would probably offer to grab a selection of neos

#

Latest, recommended etc

willow knot
#

Downloading a neo version and shoving it in the mod dir isn't exactly hard

willow knot
# edgy root Latest, recommended etc

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

edgy root
#

Somewhat. It's still something that I think we need to define for the longer term.

willow knot
#

Given that the latest version is almost always less buggy than the recommended version, due to bugs being fixed post recommended build...

edgy root
#

yeah, this whole thing is a bad bikeshedding thing

edgy root
#

imma write a quick POC installer

edgy root
#

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

storm hull
#

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.

gaunt grail
#

In fact shipping them separately was the fix

#

for linker issues