ldtteam / minecolonies-features

This is a repo only to discuss minecolonies features (requested and planned)
11 stars 3 forks source link

Ideas for Multiple Cities/Nations #139

Open nebc opened 4 years ago

nebc commented 4 years ago

Prerequisites

Context

Is your feature request related to a problem?

I have always wanted to interact with my friends village but there is currently no system in place for it.

Feature description

Connecting cities- Before any interaction there needs to be a road that citizen can travel, this can be simply done by having an unbroken line of path-finding markers with no more then (50?) blocks between each one connecting the two cities, this will encourage players to builds roads that are easier for citizen to traverse, and allow them to control the routes. An even more simple way is to require a railway between the cities. Perhaps have a builder hut type building that allows for construction of decorations independent of city borders so we can have nice roads built by a builder away from home. A late game tech that allows construction of a portal building that connects to portal buildings in other cities.

Reputation between cities - As you interact with other cities in positive manners (trading, defending, training, gifts) Your reputation goes up and allows you to do more stuff with them (certain actions require a certain reputation)

Things cities can do with other cities.

Trade - Have a trader job that allows you to send a proposition to neutral or friendly towns, If the trade is accepted by the other city then the trader is given temporary access to the warehouse of the destination city to make the trade, this would allow new cities to trade without getting a trader of their own. Allow gifts to be sent that provide reputation on relevance meaning that the more requests a gift fulfills the more reputation is gained. When caravans are sent to another city, they can be raided unless you send guards to deter the raiders, it should be obvious to the player how many guards would be needed to keep a caravan safe.

Train - Be able to send experienced people to another town to hold a seminar at the school that boosts relevant workers skill level, or vis versa you can send new workers to the "capital" to study under a professional and gain experience rapidly at first but less as the gap in levels between master and student grows smaller. *This would require a good reputation.

Defend - Be able to garrison soldiers from one city in another one, this would be useful for if a town lost a few too many guards and doesn't have enough time to train new ones so you can borrow them from another better defended town while new guards are being trained. Perhaps a city can send a patrol to another city that just lowers the chance of raiders Perhaps if a city has a strong military then it lowers the chance of raids to all cities within a certain distance, this distance increases depending on how the cities are connected (road vs rail vs portal) *This would require great reputation.

Raid - Allows you to attack other cities. Massacre - Your raiders are ordered to kill everyone they find. Steal - Your raiders try to rush to the enemies warehouse and make off with all they can carry. Skirmish - your raiders test the defenses of the enemy, engaging for a little while. useful to gauge how your military will do against the city/threaten the city. Tournament - this one would require positive reputation and it allows your soldiers to train/compete against the other cities, both cities can put a prize for the victor.

Merge - Allows cities to connect into one city if their borders overlap, probably only useful for advanced users.

The challenge to implement this is how chunk/entity loading would be handled as keeping many town and their citizens loaded would be far too performance intensive. I don't know how all the technical details work but here a few ideas to help with that.

Idea 1 - When a town is unloaded, its citizens produce constant resources dependent on the level of the workers for example a farmer would produce 1 wheat/minute while the village is unloaded. While this could be abused I think the trade off of saving performance and player time would make the game more enjoyable. another way to balance this would to have production gradually lessen the longer the player is away from a town requiring regular visits to keep production at a maximum.

Idea 2 - While I'm not certain of the possibility or how this would work, maybe having a simplified town always loaded could work its a little hard to explain but I'll do my best. Buildings are all reduced to a single block that stores relevant data such as number of animals, number of farms, etc Citizen do not need to go home each night, they stay at their workstation until the town is properly loaded. *Deliverymen path-find along a single Y level and phase through blocks, removing the need for path-finding.

Economy I've always found the best economies to be kept simple. Money is stored on a town by town basis, kept in the town hall. The town hall generates a small amount of coin depending on the number of employed citizens. The more money in the town hall the more likely raiders are to spawn, each citizen a raider kills, it takes some money from the town with them. Money can be stolen by raider thieves until the player build a bank, the bank would also increase the income from each citizen and lower how much coin affects raiding.

What can money be used for Citizen can be paid to work improve happiness and therefore leveling speed, perhaps very high level workers demand pay. Trade! Tribute to raiders to stop a raid Hiring spies Researching technologies Placed as a victory reward in tournaments

Notes or related things

I'm sure all of this would be difficult to implement but I just wanted to throw out a lot of ideas I've been playing with, I'm sure there will need to be changes and some are just impossible but I hope some of this will be useful.


Viewers

IbTrollman commented 3 years ago

I love this idea, and was just wondering if I could make a suggestion. I was thinking you could add a Conquer strategy to the attack types. This would allow you to invade and take chunks from other villages, helping to expand your borders.

Asherslab commented 3 years ago

was just wondering if I could make a suggestion

you're always free to make suggestions, that's why the issues exist. anybody can add extra stuff on / discuss / etc. discussion helps us as devs to implement the features if and when we decide to, more ideas and discussion (even if we go against what was discussed) is helpful

ajh123 commented 1 year ago

And another suggestion.

As the "leader" of your colony you will be able to hire "Settlers" at a "Settlers Hut". Once the "Gather Settlers Banner" (will be used like a Rallying Banner) is activated, the "Settlers" bound to it will begin to follow you. You will take them to another spot in the world, so make sure they are well defended and fed. They will follow you across water swimming or boats (if you supply them). Once you have found a suitable location for another colony you can place down a new Town Hall, you will still be mayor of your other colony and be mayor of the new one. The "Settlers" will become citizens of the new colony and the new colony will become part of your "Country".

After this, you will become a leader of a "Country". Countries will have permissions / ranks similar to colonies. If you play on Multiplayer and you have made someone an officer of a colony in your country you will be able to promote them to Mayor.