Software freedom is actually not an all-or-nothing property and can always be improved even it the program is already open-source! The more people are able to use the software and the more dissatisfied people can modify the program to suit their needs, the more free it is!
Free software proponents seem to know this ONEist truth subconsciously, seeing that they call their software FOSS (Free and Open-Source Software) instead of just FS (Free Software), but sadly they don't really act on the knowledge of this wonderful truth.
What I mean is this: open-sourceness of a program is completely lost to you if you can't modify it or modifying it would take so much time that it's not worth it.
Common things that diminish the freedom of open-source programs:
- Asinine build systems (like autotools and grunt), build systems where you have to manually install/compile missing dependencies.
- Asinine programming languages (the only remotely sane programming language I've actually seen is Elm).
- Having to deal with barley understandable framework pileups (like npm + bower + grunt + ...).
- Having to fiddle with HTTP and database server configurations to even run an app.
- Lack of a stable add-on API (so you have to merge your modifications with every new version of an app).
- Lack of developer documentation.
Multiplayer games occupy a very special category here: a multiplayer game without a good support for modifications is basically as proprietary as a program that is protected by EULA and 10 layers of world's most potent DRM for the vast majority of people, and a game with a mod support is basically the same as a proprietary game with the same level of a mod support.
So let's go on to the suggestions:
- Support small modifications that can be used together.
- Modding API in Elm or anything else that is sane.
- In-game modification and map "store".
- Player-centric model.
Basically, what Battle for Wesnoth already does, but in first person shooter context. The goals:
- Make small modifications (a single weapon, item, alien, structure or a class) more practical.
- Allow non-technical players to play modifications that are not hosted on any server.
So here's what you need to do to make such a modification:
- Make the model. There's an all-in-one open-source solution for this, Blender, but it has no usability (a great proposal has been made, but has been ignored) and getting the model from Blender and into the game is painful...
- Program the behavior. However, C++ is basically unfit for any kind of use.
And it would still be a lot of work even if Blender was usable and the modding API were in Elm or another sane language, given the Unvanquished's graphics quality standards... just for a single item! But it gets even worse!
Now you have to run a public server so that you can test and play your modification with actual people! And that means dealing with routers and port forwarding...
Also, I doubt it'd be worth it to run a 24/7 non-test server for a single alien or weapon... With support for small modifications, it'd be possible to mix and match items and classes, so it would be worth it to make just one alien at a time.
And even then, if no server hosts a modification you want to play, you can't! Does not help to encourage potential modders...
I'll now explain what I mean by player-centric model.
What that means is that there are no "servers", just games created by players. Anybody can create a game and the main lobby allows everybody who has Unvanquished opened (even if outside the game) to chat with one another. Here's a picture from my Xonotic proposal.
Under this model, actual physical servers would simply host player's games, downloading the server-side parts of the mods as necessary, though I'm afraid that fewer people would host servers because of that because the servers would lose their identities.
Another option would be to switch to peer-to-peer model. I've read somewhere that WebRTC does something to avoid the need for dealing with routers and port forwarding nonsense. But I don't think this option is remotely realistic...
So there's that. Please don't ban me over this proposal.