#Launcher

1 messages · Page 1 of 1 (latest)

kind urchin
#

I am interested. Why?

random agate
#

Several reasons. Some are related to wanting to keep ancient/lost mod packs alive; some are related to my own narcissistic injuries around mods I've released without aggressively protective licenses.

kind urchin
#

So basically because you aren't happy with the features of the mod portal?

#

I had a custom launcher for automatic mod downloads before the portal became a thing and game.connect_to_server before that or the RCE version of that became a thing so I can see advantages

random agate
kind urchin
#

Have you seen that you can provide a custom mod portal URL to the game?

random agate
#

That's interesting, admittedly, but I think it introduces a potential liability problem.

#

I'd like the ability to mix and match mods from multiple portals as part of joining a server.

kind urchin
#

Just make your portal proxy mods it doesn't have locally

random agate
#

Including what I called 'plugins' - things that alter the game executable environment in unauthorized ways.

#

'My portal'? I don't want to run a portal, unless it's a local proxy that's part of the launcher.

kind urchin
#

I'd assume you would want a way to download non-portal mods from the server you are connecting to

#

Only good way to do that is write a proxy and have it call the server you are attempting to join for any mods it can't find on the portal

random agate
#

I could see the idea of running an index of non-public mods, but that's rather different from a portal.

#

And I genuinely believe that a server should offer direct, off-portal download of its mod-set.

#

My experiences have been... shall I say, significantly coloured by my experiences as a Minecraft modder...

kind urchin
#

I agree, and I believe the only way to achieve this is by writing a proxy for the mod portal api

random agate
#

You might not be wrong here. I just think any such proxy needs to be serverless, as part of the local operation of the launcher.

kind urchin
#

Where you place the proxy doesn't matter - it needs to talk to the server no matter what

#

The advantage of doing it local is that you can sync before launching

random agate
#

I absolutely fully expect that should I actually host a proxy I open myself up to a flak-spam of takedown requests and other legal weaponry if it's not purely local.

kind urchin
#

Don't see why

random agate
#

Are you familiar with the Creative Commons ND-restriction?

kind urchin
#

No

random agate
#

It allows a work to be copied freely so long as absolutely no edits whatsoever are made to it.

kind urchin
#

I don't see the issue yet

random agate
#

It's quite often I've seen that private servers must edit such a mod, if nothing else because Factorio's per-mod Lua contexts prevent invasive alteration/correction of a different mod's control.lua context.

#

Therefore, such an edited mod may never be posted to mods.factorio.com, as doing so is publishing an edited version of a mod in violation of its license.

kind urchin
#

Of course.

random agate
#

For example, I've been working with a 1.1 Morningstar Collective mod pack that incorporates both AAI and Space Exploration... but there are bugs in AAI that can cause desync crashes, and trying to fix those on the server privately and directly is in violation of the AAI licenses.

#

(Apologies for the abject disrespect, but as a relative outsider to Eärendel's team ... I'd be willing to work with them, but not under conditions where I do the work and they own the results. Thus, a measure of antipathy.)

kind urchin
#

I suppose the correct way to respect the license would be to create a patch and apply it through your launcher

random agate
#

Exactly... and patches are something I don't know that any current launcher supports, but those would effectively make such things Somebody Else's Problem™ and therefore much less of a concern.

kind urchin
#

How are you planning to distribute patches?

random agate
#

Ideally? Indirect github diff links, or something of that nature.

kind urchin
#

So hardcode the links into your distribution?

random agate
#

Not so much.

#

Maybe multiple indices; that might not even be avoidable, if the intent is to give a private server a way to allow a new player to join without going through public permissibility-of-distribution checks.

#

Most of my public mods on mods.factorio.com are patches against other mods during the data.lua phase in order to try to bandage problems that happen during prototype construction, for example; I count myself lucky that there's no constraint on doing so.

#

(Those are the reason my nametag is orange here. 😜)

#

I think the ideal case is one where it's pointed to a server- or modpack-root inventory, and any instructions there are just followed.

#

I've been investigating various bill-of-materials syntaxes lately, and there seems to be a synergy there.

kind urchin
#

My name isnt orange because my mod distribution already doesn't go through the portal :P

random agate
#

I recognize your nick well enough to know that you've been digging into the problem.

#

I also have one or two actually distinct mods that aren't patches so much as from-scratch reimplementations of prior concepts.

#

That said... I feel as though the default server-join mechanism, where the mod list is a catalogue of mods from the official portal, is ... deficient.

kind urchin
#

Just add stuff to the list that isn't on the official portal ¯_(ツ)_/¯

random agate
#

For example, last year when I was attempting to batter my way through a SE playthrough with my friends, there were enough broken mods that I ended up creating a parallel private chat channel for non-public mods, without which nobody would have been able to join.

#

And I never did resolve the AAI problems. Some part of me wants to approach Eärendel's group... but with an aggressive, bordering-on-hostile attitude, asking that if they truly want me to resolve the AAI mutliplayer desync problems and I do so, they totally cede control of the copyright to me.

kind urchin
#

Yeah, thats pretty normal - licenses become very complicated otherwise.

random agate
#

I feel as though Xorimuth is my best option to contact the group, if only because of their track record in successful creations and fixes.

#

(I also find it passing strange that nobody else actually uses the diaeresis in the name 'Eärendel', even though it's a non-ASCII thing.)

#

It's very, very obviously a Tolkien-derived name.

#

Seriously folks... diaeresis is not exactly hard to pronounce... I'd even argue it's the opposite. If you find diaeresis on some random vowel, drop a sylllable break right there and keep going.

#

The most common example? "Naïve", denoting that the i does not merge into the a as a diphthong.

#

Apologies if I'm annoying you, though. I'm just sort of ranting at this point.

#

I honestly feel as though I need the collaboration of an extrovert to manage connections.

nocturne hamlet
random agate
nocturne hamlet
#

It is for Factorio

random agate
#

Oh?

nocturne hamlet
#

It's more for modifying engine behaviour than for improving integration between mods

random agate
#

Well, then that sort of doubles down on reasons to take interest. I haven't had a truly motivating reason to drill down into Rust yet.

nocturne hamlet
#

and idk how complete it is. The author doesn't seem to be planning to work on it any further, and it only works in 1.1 anyway

random agate
#

Maybe less so then... but it's worth a look.

#

Over half of my modding effort has been directed toward forcing mods to work together that refuse to acknowledge one another's updates, so... yeah.

nocturne hamlet
#
Leverage existing modding infrastructure: Rivets' design goal is to not reinvent the wheel. Mods written in Rust can be hosted on the offical Factorio modding website. Rivets is also designed to easily allow both Lua and Rust in the same Factorio mod.

(This isn't true, the devs will not allow mods containing random executable binaries on the mod portal)

random agate
#

From my conceptual viewpoint, it's certainly worth a look, though if it's unmaintained it's probably only useful for retro-packs.

nocturne hamlet
random agate
#

The overall policy is actually quite similar to that of Space Engineers: a mod that doesn't restrict itself to integrating via the officially supported API isn't a mod, but instead something else: a 'plugin' that is entirely unsupported and carries no implied protection from being entirely hostile malware.

nocturne hamlet
random agate
nocturne hamlet
random agate
#

While I might be convinced otherwise...

nocturne hamlet
#

I can't help but wonder why this AAI (presumably prog-vehicles?) desync isn't more widespread? Do you know the circumstances in which it occurs?

random agate
#

It really depends on how much control — and public credit — I feel I have as a result of my effort.

#

Actually, the desync is not in prog-vehicles but in prog-structures.

#

I think very, very few players at this point use prog-structures to direct their vehicles.

nocturne hamlet
#

ah yeah I bet that is true

random agate
#

I've found that any setup that uses a structure to read a vehicle's state -> some circuit mess -> uses another structure to direct that vehicle... desyncs.

#

At least in 1.1

#

There are also a few issues in prog-vehicles at this point that really grind my iron_gear_wheeliron_gear_wheel, like the way bounding boxes (and therefore vehicle entity subtypes) dynamically shift depending on navigation mode ... which is great for navigating forests, but catastrophic when navigating coastlines since it can lead to a bounding box intersecting non-traversable tiles.

#

I guess, with all of these issues... that's why I've been an odd mix of cooperative and combative. I want to see them fixed... but if I do the fixing, then I'd like to fix them on my own terms.

#

Admittedly, I consider the root-cause of the problem to be the absence of a mechanism in the Factorio engine to apply patches against another mod's control context... but that's kinda neither here nor there at this point.

nocturne hamlet
#

Well as you're probably aware, Earendel has long since stopped working on Prog Vehicles and Prog Structures, and most contributors don't care much about them either. Trex has done the work of porting them to 2.0, and @fresh flower has also been doing some 2.0 compatibility testing and fixes on Prog Vehicles.
I think you'd find you have free-reign to do fixes, and I can't see there'd be any objections to genuine improvements either. For credit, that can happen too, especially if you ask for it: #781891491827286068 message

random agate
#

So I'd need to take time-sensitive advantage of the 2.0 breakpoint to establish any kind of authority? ...

nocturne hamlet
random agate
#

Sorry, I'm just trying to form an understanding of the real policy underpinning the whole 'no unauthorized public derivatives' terms.

#

I've been on both sides of that particular blade edge, so I understand some reasons to have such terms.

nocturne hamlet
random agate
#

On one side, my own decision for my original work in Minecraft modding was to not be the one to restrict derivatives, and it led to rebundle mods that incorporated 80% of my own into their structure; on the other, I'm not sure if I want to try to patch up existing work without some sort of carte blanche in advance.

nocturne hamlet
# random agate Sorry, I'm just trying to form an understanding of the *real* policy underpinnin...

I obviously cannot speak for Earendel but I'm pretty sure it is some combination of the usual reasons:

  • Wanting control/authority over his own creative work
  • Protecting him and his mod's 'brand'/reputation
  • Protecting users from unauthorised (and probably out-of-date, incompatible) copies of his mods
  • Reducing the number of invalid bug reports and complaints from people playing those unauthorised copies
random agate
#

And... don't take this as a hard line position either, I'm kinda just spitballing here... just saying I've dealt with both sides.

#

And I greatly appreciate your willingness to engage with me here.

#

I think there are two different layers of discussion going on ...

#

my own concerns with mods that have broken for me; and a desire to see a way to have private servers be able to have their own private mod-sets not subject to moderation.

#

Those might have two different solutions.

#

Am I just spewing nonsense here?

#

Or are one or both of them invalid in some way?

nocturne hamlet
#

this is outside my area of expertise and interest 😄

random agate
#

Fair enough. I have a bit of a legalistic tendency lurking, somewhat after the fashion of a dog that takes hold of a bone and won't let go even after being admonished. 😂

#

And my apologies if I suddenly stop responding... sleep may take me at any moment now.

#

Do you mind if I try to pick some of these threads up later?

random agate
#

Pardon the ping @nocturne hamlet, is this a good time to bounce a few thoughts around?

#

I think I might have gained some further perspective playing in 2.0, though for better or worse is unclear. 😅

nocturne hamlet
#

Feel free to bounce ideas all you like

random agate
#

Why thank you! hat tip

#

So I've been exploring 2.0 for the past few weeks, and learning quite a few things.

#

It's quite clear a significant cross-section of the modding community is having trouble with the transition.

#

Some have other priorities, some have lost interest, some just have had their whole conceptual space reshaped such that adaptation probably can't be rapid.

#

I'm also thinking back to private multiplayer games I'd been in one to several years ago, and dealing with various problems that had no clean solution.

#

There's a SE+ game I'd played with a friend a while ago, and even resurrecting it properly looks like it could be a challenge given that some of the component mods were revised in such a way that their migrations were catastrophically destructive.

#

So... the only way to keep a game like that going is to rev-lock everything to a point in time. If using the built-in mod manager, that would require downgrading mods as part of the sync process when loading mods on the host instance, even if they look fine based on versioning information.

#

There was also a bonus problem mod in that pack, where I had to create an unofficial revised version of a portal released mod while subsuming its mod identifier in order to resolve a bug.

#

Going back further... some of my other friends want to continue to play rev-locked games tied to versions <0.17.35 and the exact datestamped images of the mod lists of the time, because they genuinely dislike subsequent releases and would rather abandon the game in its entirety than use newer versions. This has a secondary effect on me because it crosses a shared interest off the list, so to speak.

#

We've been able to keep it alive ... to an extent ... using non-Steam versions of the game downloaded from factorio.com and local snapshots of the mods folder.

#

More recently, a lot of the things I've wanted to do have been blown up by mods not being ported, or not well-ported, to 2.0. A surprising fraction of those have been Klonan's old work that he can't prioritize updating.

#

If I were to consider a "minimum viable product" concept for a launcher... it would be to recreate an exact environment for a specific game version and mod set version, including continuing to use old versions of mods that have since received minor and allegedly compatible updates and mods that (for whatever reason) are not on the portal, and managing side-by-side installations of different, mutually incompatible configurations.

#

So I could join my friends in an 0.17.24 (or whichever - memory is fuzzy) AngelBob+ game, or return to a Space Exploration game with a friend, or play the latest vanilla with or without the expansion pack, all with a couple clicks and not have to fuss overmuch with manually creating multiple instances and side-channels to share unofficial mod folders.

nocturne hamlet
random agate
# nocturne hamlet Yes... however my pov is that that is a pretty niche usecase, and even for the p...

Not saying it isn't. Thinking of my friend though... he might be an outlier to the point he's exited Wube's target audience. Presumably due to overload of external stressors, if he has to actually stop, think, use online accounts outside of something like Steam single-sign-on, and generally put in time to make an instance work... he'd rather just walk away entirely. I couldn't even get him to reasonably try Minecraft because Microsoft account and the default launcher missing support for modpacks.

#

Hell, I couldn't get him to spend more than 20 minutes trying to get Starbound to work.

#

I ended up banished from his life (barring the odd phone call or shared dinner) for 51 weeks.

nocturne hamlet
random agate
nocturne hamlet
#

although even for him, if he only wants to play 0.17, it isn't even complex at all. He can just delete all his factorio installs, download 0.17 from factorio.com and disable update checks (or select the 0.17 'beta' from steam), and when he opens the mod manager ingame, it will only show him 0.17 mods.

random agate
#

I mean, he literally wants to never see updates relative to 0.17 that were released beyond a specific point in time; maintaining a very literal time capsule.

#

Updates both of mods and of the core game/content mods.

#

It might be a little weird, but when Angel updated angelsrefining with new art for its custom ores... that triggered a spectacular squick on his wife's part, and he really doesn't want to engage with that... and I'm not sure I can blame him. (Though I did mention the startup option to avoid the most problematic change: to wit, Angel's new assets for stiratite triggering a reaction somewhere between trypophobia and 'no, no way, real minerals just don't look like that'.)

#

I guess what I'm getting at is that I think there's a target audience for what I'm thinking of.

That said, it might be more than a little bit weird because, as I understand it, a key portion of the target audience I'm thinking of consists largely of those who at the end of the day either don't want to put in the effort to keep up or expressly dislike creators' changes (be those from Wube or mod creators).

#

The nearest point-of-comparison I can think of is Minecraft mod packs, which specify exact binary versions of every component including the point release of the game engine.

random agate
#

I just ran into another case where 'going around the rules' would be helpful. I just patched up a bunch of issues in the 2.0 port of Transport Drones, but if I re-release under a different mod ID, everything in script.data goes out the window, the depots stop dispatching trucks, and the trucks that are already on the road just drive around randomly like lost tourists. As an interim fix for games started with the existing mod, I basically created an unofficial edited version under the original mod ID.

random agate
#

At this point I kinda feel bad about how necessary it feels to create ways to 'go around the rules' ... but the rules as they exist seem to mess things up for ... not a majority, not even a plurality, but enough people that not providing a low-effort bypass to the rules leaves them in an uncomfortable position, with a combination of unsolved problems and broken games in progress.