FAF(default) mode alternative

Please create a proper (default) version in the list of available options when creating a game. It doesn't even matter if it is the steam version or some older version from a few years back. All it has to be is stable. Modders can always add in new stuff from FAF's patches if they want it in their mods or host in the currently named FAF(default) mod version if they want all the features and files to be automatically applied.
Reason:
Every time the game team (mostly) is modding around with FAF(default) it always risks to break every other sim mod. This creates a lot of work for modders who do not want the extra work especially when extensive patches like the recent one are released. They add new files that were never there before and automatically merge into mods. These files cannot be anticipated and are not coded in a way that will prevent them from becoming activate in mods where they are not intended to have an influence.
An unknown amount of mods have stopped working (f.ex. Equilibrium to name a more extensive body of work) because the authors no longer update them. FAF will keep losing valuable content as long as there is no stable version for mods.

This is not really achievable and would not really benefit mod developers, nor players, nor FAF base game developers.

I understand your point and it is a shame to see mods break due to these changes. Still, I don't think there is an actual solution to this problem in any way.

Let's assume we introduce a new featured mod "stable" (better name would be legacy as it will never be able to change again).

Splitting the ecosystem

Your suggestion implies that we have mods that would run against this stable version. They will not be able to run against the latest FAF version. So eventually we will split the mod ecosystem into 2. Apart from the implications that we would need to manage mod metadata which version works where, it would get confusing from user experience:

Is a mod working for stable or latest? How do I install one or the other? How do I delete or the other? How do I activate one or the other in a game? How do I rate or comment one or the other version?

As a mod uploader you also need to consider the same on uploading of mods.

Let's assume we overcome this. The next problem is

Version conflict with GPGnet protocol

Please note that changes to the GPGnet protocol have been done. These are required for further having working game results

Thus, no older version would work flawless with FAF. Somewhere the result parsing or some other aspect of the game would break with regards to the FAF backend.

Also introducing a stable version would mean that it must never be touched again or backported to stable at all costs.

I don't think the game team will ever agree to this, as this causes an unforseeable amount of complexity and work in the future. We have barely enough manpower to test current features, no we'd need infrastructure and manpower to test another stable branch.

The damage is already done

Let's assume we pick any* version as the main version.
All current mods would be broken again, as they don't work. All mods created before that version are most likely broken too.

So only continuously updated mods of a certain age have a chance to find a working upload for that version. But: It's highly likely that these mod authors already arranged with the process of continuous uploads...

(* also must be any with the recent gpgnet protocol)

Also if you consider going back to the Steam version there are other places where mods are uploaded already.

Alternative approaches

A stable API

Why can't FAF just offer a stable API like other games?

Writing a good API is really, really difficult ans has many disadvantages. There is an open source project with hundreds of full time contributors that has a similar problem: The Linux kernel. You can read up there, why the don't support a stable API and I think it can be mapped to FAF almost 1:1.

TL;DR: Not happening

Compatibility version tagging

Why don't we just tag mod (versions) with compatibility metadata and pick a matching FAF version?

Ok. That is a first step. Let's ignore the technical challenges and assume we have a list of compatible FAF version to each mod version.

Now what? You launch a game and select a mod - woosh to late! - the mod must be downloaded in the right version before you launch the game. So effectively this means mod selection moves into the client. Huge tasks, many benefits, let's assume we did it.
Hmm now depending on the mod you get a "random" FAF version with random balancing.
Now what happens if you select another mod? Sure. Okay soo maybe there are some overlapping supported versions, but now you play potentially some old versions of the mods.
And again now you run into the problem of a potential outdated GPGnet protocol version.

TL;DR: Huge effort, little benefits.

However! Compatibility tagging would at least help users not to play broken versions and get disappointed. It might also be helpful notifying mod developers that something broke.

Incorporating fafdevelop

We already have a "stable" and a "development" branch.
faf and fafdevelop.

There is currently no way to publish and test mods against fafdevelop only under the same mod. Except from doing this alone on your PC which sucks ofc. Not sure if tagging mod versions for fafdevelop would help the development flow.

Eventually this might help interested mod developers to keep pace. But this does not solve the original issue of mods breaking after the developer stops keeping up.

Summary

As said before I see no solution to this problem except for stopping development to FAF game forever. Or mod developers just publish for Steam again and not use FAF.

Some mods follow a dual publish model for latest FAF and vanilla like e.g. BlackOps.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

In addition to what @Brutus5000 wrote, which are good points.

@evildrew said in FAF(default) mode alternative:

Modders can always add in new stuff from FAF's patches if they want it in their mods or host in the currently named FAF(default) mod version if they want all the features and files to be automatically applied.

This is not true because some changes are outside of the reach of a mod. For example: assembly changes, lobby changes, shader changes, etc. You can't pick and choose these - they either apply or they don't.

@evildrew said in FAF(default) mode alternative:

Every time the game team (mostly) is modding around with FAF(default) it always risks to break every other sim mod. This creates a lot of work for modders who do not want the extra work especially when extensive patches like the recent one are released.

The average sim mod does not break and is still functional. As an example: even after a decade worth of changes roughly 90% of the features of BlackOps is fully functional. It received a few patches, sure. The same applies to other mod packs that people play with on a daily basis. We're even looking into maintaining mods to some degree. One exception is Equilibrium, which is a very extensive mod that does not only hook functions, but also overwrite various functions. And that is where the trouble starts.

I agree that the system is not perfect. But what matters at the bottom line is how a mod is structured. If you hook files and/or functions gracefully then you can avoid 95% of the problems. I assume that you are talking about the mod Superior FAF Experience and when I review it then it overwrites not just a little of code - it overwrites almost all of the base classes for units, weapons and projectiles. With that setup the mod is extremely fragile to changes that assume something about those base classes. Because of that, any significant patch will 'break' the mod. This is not something the game team can take into account in a reasonable fashion. It is up to the author to use the best practices instead. And if the author does not, then you either keep maintaining it or it will eventually break.

Of course - you can't 'prevent' new features and/or (unit) stat changes from sneaking into your mod. One example of this is the changes to the Tractor Claw of the Colossus. But in my opinion that is part of the package when your mod lives in the vault of FAForever. The featured mods take precedence.

A work of art is never finished, merely abandoned

-1

Well since you brought it up, I really want to know then if it is also FAF's official stance that featured mods take precedence. If so then I'll have nothing more to add.

The first definition of featured is: "Given special prominence, attention, or publicity."

So, yes, featured mods will get special attention. If they're not going to do that for a mod, it should not stay in that list.

@arma473 Not talking about special prominence, attention or publicity... You are missing the point of the discussion.

I don't think it's an official stance, it just the way it has been forever.
The featured mod faf is the baseline (later on alternatively fafbeta/fafdevelop).
Then comes optionally ONE additional featured mod (e.g. coop or phantomx) overlaying on top of it.
And then come all other regular mods on top.

There were times we had featured mods that didn't need to be featured mods, but were just there for visibility. It was a bad idea and we're not doing it anymore. So unless you need special technical features of a featured mods, regular mods is the way to go.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

Precedence means it comes first compared to non-featured mods

By extra attention, I mean it gets extra attention from the developers/administrators to make sure that they won't break it, and to fix things if they do break it

-1

Well the way I see it, almost no one ever plays fafbeta so I have to assume the wider community does not support or at the very least does not really care about what the balance team is working on. I cannot understand why FAF has allowed it to be this way for this long when their mod only panders to maybe 50 people at most. The way it is implemented creates a monopoly and I do not feel the need to have to link to posts of people whining about why the more competent echelon of the player base has disappeared while only casual players with no ambition to improve remains as a means to justify that just about the only people who still play do not notice how bad it is or are responsible for the deterioration.
Forged alliance still has the best fundamentals for any RTS platform out there and one would think with several key improvements that were made over the years FAF would have become better and attract more players but there are just so many things that were changed for the worse and so much crap that has been added that more than offsets the value of the improvements made.
It's like some of the FAF teams want FAF to fail so they can escape the burden of their responsibilities and not making their failure and the damage they caused apparent to everyone by denying anyone else to bring FAF back from the demise it is currently in according to their own words while throwing up smoke screens about irrelevant causes for player churn like name changes...
Anyway my conclusion then is that FAF's main mod could be layered on top of a default version like phantom is and while the default version might have to change for API or other technical reasons it is possible to have key folders for mods such as the projectiles, units, and others be unaffected by what the FAF teams want to modify.
Further. as it is "tolerated" being this way, I can only interpret it as a hostile stance towards any contributors who have their own ideas and do not want to give up their vision by having to be part of their amalgamated mod.

The reason people do not play that often on the development branches (FAF Beta Balance and FAF Develop) is because they are A, prone to bugs and B all existing replays desync the moment the branch is updated.

I know this because it's been a topic during two game team meetings that were open to the public, there were even Discord events šŸ™‚ ! You can find the minutes on Discord (1, 2) too.

@evildrew said in FAF(default) mode alternative:

Further. as it is "tolerated" being this way, I can only interpret it as a hostile stance towards any contributors who have their own ideas and do not want to give up their vision by having to be part of their amalgamated mod.

I don't get it.

I have personally helped you on various occasions in the past. I've also previously mentioned that the way 'Superior FAF Experience' is setup is not according to the best practices.

With almost every change mods (and external tools in general, such as the unit viewers) are constantly on our minds. A lot of changes did not happen because it would break (unmaintained) mods. And a lot of changes will never happen because it would break (unmaintained) mods. We're even trying to see if we can maintain some of them, such as Total Mayhem. And I hope to eventually extend this to other mods, if any of the authors happen to be reading it. We just need you to license it so that we can.

In general the eco system of (ui) mods is fairly healthy and a lot of them are as functional as they were half a decade ago.

And then here you call us hostile šŸ™‚ ?

A work of art is never finished, merely abandoned

@jip This is not personal, I respect you and many of the FAF people, I will say not all though. It is just an observation based on actions whether intentional or not and the only word that comes to mind to describe it is in fact hostile or lets say unfriendly if that's less pejorative, after all we are on the list of unfriendly countries in Russia's eyes.
My understanding is every time the game team f.ex. adds a new function like the 'display of how long it takes to capture an enemy unit' f.ex. I would have to change the file affected if I merge it or hook it in the correct way. Every time you add a new file for a new function I have to add an empty one to prevent it from passively hooking into the mod.
You cannot deny that it is impossible for anyone to anticipate new files affecting their mod and FAF does not implement a structure that would make modders have the option to use a setting that prevents additional files from slipping in (if I am wrong then please do correct me). Maybe I am not describing this well but since you have to import a bunch of files into unit scripts to access functions f.ex., why is it not that there is a file called XYZ that says "this version only uses this list of files" and FAF teams could add to this list and modders could have their own list to prevent it.

It is correct that you did help me, and I wish I could have helped you more than I did in return but it was not meant to be. I think though you do understand why I can not be part of FAF as explained privately long ago and the reasons are still the same.

If you want to get the word out about this licensing thing, make a pinned post in the modding & tools section explaining what exactly it entails. I doubt hardly anyone is going to read through this thread and find that crucial information hidden in post 9.

Also the only video to follow along how to mod stuff is this one which does not really explain much especially in regards to more advanced mods. https://www.youtube.com/watch?v=SYfb_XhH25s
I know there are some documents to read through but reading those just takes too long and it's also inferior to seeing it actually be done with your own eyes.

@evildrew said in FAF(default) mode alternative:

My understanding is every time the game team f.ex. adds a new function like the 'display of how long it takes to capture an enemy unit' f.ex. I would have to change the file affected if I merge it or hook it in the correct way. Every time you add a new file for a new function I have to add an empty one to prevent it from passively hooking into the mod.

I would not really call what you are describing here as modding. Since you are talking about overriding every function in base FAF effectively to avoid it being used by your mod. Mods are expected to build on top of the base mod of FAF and the way the game team attempts backwards compatibility builds off that line of thinking.

What you describe is more akin to writing a mod that wholesale replaces FAF and then just using FAF's mod vault as a distribution mechanism, which is fine, but that then breaks all the assumptions of backwards compatibility and is just not something the FAF game team can support as has been previously stated.

This thread has my head spinning already.

I cannot understand why FAF has allowed it to be this way for this long when their mod only panders to maybe 50 people at most.

You don't understand why a beta branch of the game is available? Seriously?

FAF has no obligation to make major changes to itself to support other overhaul mods. It's sole purpose is to allow people to play FAF the mod, and mods built on top of FAF. What you want is for FAF to become an entirely different project than what it already is and has been. It's its own mod that owes no other non-FAF mods anything. But you seem to think it should become a platform for other mods instead.

Which isn't even a terrible idea of a thing to have, but the way you come about asking for it is just completely absurd.

Jesus just fork faf already like gaf/rufaf has done already or smth

Skill issue

@evildrew said in FAF(default) mode alternative:

The way it is implemented creates a monopoly and I do not feel the need to have to link to posts of people whining about why the more competent echelon of the player base has disappeared while only casual players with no ambition to improve remains as a means to justify that just about the only people who still play do not notice how bad it is or are responsible for the deterioration.

The official FAF game development team has a monopoly on how the game is developed. This is a fact. And then there is the FAF balance team who has a monopoly on balance related changes.

Seems like we live in a duumvirate where everybody can join any of the teams in power. Crazy times, eh?

The changes causing top level players to leaven seem to be more related to the balance team as far as I have understood most of their "final words".

There were attempts to reset balance (BH balance) as well as alternative game meta (Equilibrium). None of them gained much momentum amongst players. The majority of players seems to be happy with the current model.

@evildrew said in FAF(default) mode alternative:

It's like some of the FAF teams want FAF to fail so they can escape the burden of their responsibilities and not making their failure and the damage they caused apparent to everyone by denying anyone else to bring FAF back from the demise it is currently in according to their own words while throwing up smoke screens about irrelevant causes for player churn like name changes...

To this point I tried to take your feedback serious, but this is just outright delusional. People are free to leave FAF anytime. And they did, in multiple places, for multiple reasons. Your example even comes from a team with zero competence overlap to game development..

@evildrew said in FAF(default) mode alternative:

Further. as it is "tolerated" being this way, I can only interpret it as a hostile stance towards any contributors who have their own ideas and do not want to give up their vision by having to be part of their amalgamated mod.

You can interpret it in any, doesn't make it right though.

FAF carries a heritage of ~10 years of development decisions. We still suffer from some very bad ideas and implementations and many of them revolve around featured mods and how they are build and applied. The result is a vault that is centered around your so called monopoly. That is something that is not easily changed. And independent from that it is a model we lived with for 10 years and you are the first one making a fuzz out of it.

There is some valid points in your initial request and I tried to explain to you why it is not easy to change.

But then your start throwing shit around , accusing people of weird stuff and show absolutely no interest of the reasons we gave you.

You are the one behaving hostile, not the game team.

"Nerds have a really complicated relationship with change: Change is awesome when WE'RE the ones doing it. As soon as change is coming from outside of us it becomes untrustworthy and it threatens what we think of is the familiar."
ā€“ Benno Rice

On top of what Brutus said, how do you expect this to become a serious discussion when you are telling us outright that you don't want to learn modding best practices?

@evildrew said in FAF(default) mode alternative:

I know there are some documents to read through but reading those just takes too long

-1

@brutus5000 If you re-read with an open mind you will notice I am not saying the game team is hostile. What I am saying is FAF as an organization or more as a platform is setup in a hostile manner the way things are implemented. The point though is that you are right, it was never envisaged to be setup with what I am asking for in mind. You said it was this way forever which means no one prior had ever brought this up in public discourse so it was presumed to be a non-issue but now the topic is on the table. I have asked what FAF's official statement is, Jip gave his opinion but didn't say he was speaking for FAF, so there is still no answer on this question.

I don't think I am being hostile, I am complaining and have read enough conversations here on the forum and discord to justify my impressions based on those observations. There is opinion and fact. I think I navigate in a fair way between the two and am clear when it is in fact an opinion or a fact. I can understand you do not like some of my opinions because you take it personally, but my criticisms do not target you personally. I try to understand your arguments but at the same time, I think certain elements can be split between the base version and a mod on top. You said it would be difficult to do, ok, maybe we are both right maybe I am wrong. How would anyone know? So many things that were considered impossible and tossed aside years ago have been overcome with the right people showing up. Maybe one day such a person will take charge of the balance team too and those top level players will stop leaving and more will be excited by the game that is a 30 minute U-shape of excitement, time will tell...

@blackyps Maybe the way I said it did not come across correctly. I have tried reading the documents related to FAF by Balthazar, I do not understand it all, and probably it is not covering everything either relevant to the conversation. I have even read other stuff related to lua coding just to manage to do up my skills enough to do the things I have done myself in my mod. However, I cannot dedicate years of learning coding full time to become savvy on all the matters relevant to the topic at hand. I did my masters in business management, not IT management or computer sciences. Besides, there are so many files relating to the game and how it is structured in those files is not so easy to oversee.
You can believe me when I say I have done a big effort to learn as much as I did already and I believe my accomplishments speak for themselves on this matter.

@evildrew said in FAF(default) mode alternative:

You can believe me when I say I have done a big effort to learn as much as I did already and I believe my accomplishments speak for themselves on this matter.

You are here complaining cus u don't want to make your mod correctly then u go on about how your accomplishments speak for themselves?! Write your mod the way it is meant to be written then you can close this post and let your accomplishments speak for themselves.