Anuken / Mindustry-Suggestions

Repository for Mindustry suggestions and feedback
130 stars 58 forks source link

Planetary Multi-Player #2072

Closed dheld closed 3 years ago

dheld commented 3 years ago

Describe the content or mechanics you are proposing.

This feature introduces "hives", which are basically a guild/faction/clan mechanic. Each player can be a member of at most one hive. A new multiplayer mode would be introduced in which the planet is partitioned into 12 "regions". Each region contains a "hive citadel" which is just a starting sector with all resources but at a moderate density. This sector is surrounded by low/medium yield sectors which may be missing multiple resources, and are initially defended by low/medium-threat AI. The next ring of sectors are medium/high threat with correspondingly more resources. The remaining sectors are threaded between the regions and consist of high/extreme threat AI defending significant resources (not every sector will have thorium, but they will all have generous resource patches). Every sector will be an attack map with a base. The low/medium threat sectors will have small to medium bases, while the high+ sectors will all have bases covering the map except for the starting core area. Also, every sector except the citadels will be procedurally generated at the start of a "season". The citadel will be a wave map, but the AI will never take over a citadel.

The game is played over a season, which lasts 1-4 weeks (at designer/server admin discretion). The winner is the hive with the most sectors by season end. Ties are broken by cumulative resources harvested (including power) over the season. Winners and hive stats are posted on a server Leaderboard. Ideally, a global leaderboard which combines all server data would also be maintained.

Hives can be open or closed, just like typical clans/guilds/etc. They can have ranks and permissions, but it would probably be easiest to have very coarse-grained permission groups.

During a season, any hive may select any citadel to occupy, unless it has one. If the citadel is already occupied by another hive, the new hive will land on the AI side of the map, using AI invasion rules (all buildings in the build exclusion zone are obliterated).

Technology is shared across the entire hive. If a player switches from one hive to another, they lose the tech from their old hive and gain the tech from the new one. Every hive starts with the campaign minimum tech and must purchase their way through the tech tree. Obviously, purchasing tech would be an important hive permission controlled by officers.

Since most servers can only host one running game at a time, multiple servers would need to cooperate to provide a true MMO-style experience. I realize that this is a non-trivial implementation task, but given that the only cross-sector information is launch pad statistics, sector and hive ownership, I think that maintaining this data across servers should not be too difficult. One server can be designated the DB master, and all other servers would communicate with that one for updates.

There would be both PvP and PvE modes. In PvP mode, the rules are obviously Free-For-All (or All vs. All). Any alliances made between hives would be informal and not enforced by the game. In PvE mode, all hives are allies, but each sector can only be controlled by a single hive. Since PvE is more complicated, here are additional rules:

Describe how you think this content will improve the game. If you're proposing new content, mention how it may add more gameplay options or how it will fill a new niche.

This feature would turn Mindustry into a kind of strategic MMO. The persistence would make players invested in the outcome of each map, and add strategic layers to sending resources between sectors, fighting off other hives, etc.

Before making this issue, place an X in the boxes below to confirm that you have acknowledged them. Failure to do so may result in your request being closed automatically.

    • [x] I have done a quick search in the list of suggestions to make sure this has not been suggested yet.
    • [x] I have checked the Trello to make sure my suggestion isn't planned or implemented in a development version.
    • [x] I am familiar with all the content already in the game or have glanced at the wiki to make sure my suggestion doesn't exist in the game yet.
    • [x] I have read README.md to make sure my idea is not listed under the "A few things you shouldn't suggest" category.
Sector171 commented 3 years ago

İt looks that you didn't see my suggestion, I support such ideas even though I prefer mine. I can see the future of this game in two fields: Logic, Clans https://github.com/Anuken/Mindustry-Suggestions/issues/2066

itcannotbe commented 3 years ago

How much resources does a server need even to run one map?

Literally 1 CPU CORE. Now do the math.

Unless you're running a threadripper I see multiple problems straight out of the gate.

Humanoid-X commented 3 years ago

When you write wall of text only to realise that there is a template hinting you that this suggeestion is suggested before

itcannotbe commented 3 years ago

When you write wall of text only to realise that there is a template hinting you that this suggeestion is suggested before

Not lazy enough to write a wall of text ✔️ Not lazy enough to do a quick search using the search function github has provided ❌

Bohaska commented 3 years ago

How much resources does a server need even to run one map?

Literally 1 CPU CORE. Now do the math.

Unless you're running a threadripper I see multiple problems straight out of the gate.

Don't services like Amazon AWS fix this problem?

itcannotbe commented 3 years ago

AWS isn't magic. And for the number of CPU Cores you will be using, it's gonna be costly as fuck.

And running a server on a 1GHz processor is just stupid to be honest, mid game might as well be struggling to run at least 15TPS

Bohaska commented 3 years ago

AWS isn't magic. And for the number of CPU Cores you will be using, it's gonna be costly as fuck.

And running a server on a 1GHz processor is just stupid to be honest, mid game might as well be struggling to run at least 15TPS

I know it isn't magic... but it can solve the problem, if you don't care about cost

dheld commented 3 years ago

İt looks that you didn't see my suggestion, I support such ideas even though I prefer mine. I can see the future of this game in two fields: Logic, Clans

2066

I browsed the last several weeks of suggestions beforehand, but it looks like we may have been writing ours around the same time, so no, I didn't see it.

dheld commented 3 years ago

AWS isn't magic. And for the number of CPU Cores you will be using, it's gonna be costly as fuck.

And running a server on a 1GHz processor is just stupid to be honest, mid game might as well be struggling to run at least 15TPS

I don't understand your objection. There are less than a dozen commonly used public servers right now, so far as I can tell. The only difference between current status quo and my proposal is that I am proposing the servers be linked together to play on the same planet. Of course, servers would need to opt in, but the player base isn't that huge. And since players themselves can host a map, they can participate in the planetary scheme.

Implementation-wise, there would need to be a new process that manages the "global data", and each map server would need to communicate with this process infrequently (a few times per minute would probably be more than sufficient). If Mindustry had the player base of CoC or LoL, then the server count would be an issue. Absent a huge number of players, what exactly is your objection?

github-actions[bot] commented 3 years ago

This suggestion is now stale, and will be automatically closed.

Wanqungk commented 1 year ago

Mindustry comes off as a casual game, and implementing these competitive features would probably take away from that