mc-ascendancy / AscendNations

GNU Affero General Public License v3.0
0 stars 0 forks source link

Add rifts #13

Closed VolticFroogo closed 3 years ago

VolticFroogo commented 3 years ago

While working on issue #8, it has come to my attention that the specification does not define the specifics of rifts. Therefore, issue #8 will implement all power except rifts.

@connor7000, are you aware exactly of how I should determine which chunks are rifts and the power said rift provides? Should this be available in a config file, or is it stored in the map via some sort of NBT data?

OvercookedFish commented 3 years ago

How I should determine which chunks are rifts and the power said rift provides? Ideally, within a config file but one that we can define in game with a command. Basically, a command format like this:

/Nation Admin setRift [riftPower]

Which would result in the chunk the admin is standing in become a Rift (riftPower being defined as the rift's power). This is part of the /Nation Admin command which we could expand later as issues arise that Admins should be able to address.

Edit 1: To clarify, /Nation Admin doesn't exist yet, and as of now its only purpose is defining rifts.

connor7000 commented 3 years ago

Just to further clarify, @OvercookedFish, what is to be done when a Rift is larger than one chunk?

That is, (as I discussed much earlier today with @VolticFroogo) we will be pasting the physical Rift structures in as schematics, I believe. (Though I think we might also have some kind of .NBT equivalent to paste them in.) Only one schematic out of the three schematics we've made for Rifts is one chunk in size. This is because, as you know, there are small, medium, and large Rift sizes— which each grant more and more Rift Power. I know the large one takes up four chunks total; not certain about the medium one, but I can check on that.

Regardless, we wouldn't want four different nations benefitting off the Rift Power of a single large-sized Rift... So, would it be best to have at least two commands: one for an admin to set a chunk as a Rift and, in the case of multiple conjoined Rift chunks, then set the Rift Power for a group of Rift chunks?

connor7000 commented 3 years ago

As a follow-up question, @OvercookedFish, the command you're suggesting doesn't seem to support variable Rift Power amounts, but instead a static Rift Power amount. Is this accurate? That each differently sized Rift has a static Rift Power, instead of a variable Rift Power?

OvercookedFish commented 3 years ago

What is to be done when a Rift is larger than one chunk? I wasn't aware the schematics for Rifts were larger than one chunks. So for that issue I'm not sure. But absolutely, rifts should be exclusive to one Nation alone. I think we have two pathways here:

1) Make Rifts take up one chunk [easy path] Focus on Vertical size differences as opposed to horizontal to emphasize the power difference. This is kinda throwing the issue onto the build team, which I don't like and I'm sure the schematics they've come up with for the Rifts look fantastic, but I think it's the best way. Rifts of multiple chunks are counterintuitive and add another layer of understanding.

2) If you're attached to the idea of rifts that are bigger than one chunk, we could modify the command syntax to add an "extension" to the rift claim, something like

/Nation Admin riftExtend

...which would designate the claim as an extension to the Rift chunk. I want to clear up something as well, since I think there's a bit of a misunderstanding. I was thinking of rifts as a singular unit, not on a per-chunk basis. There is no "group" of Rifts. I think I should have been more clear here, that's my fault.

The command you're suggesting doesn't seem to support variable Rift Power amounts Maybe I misunderstand this, but there is no such thing as a variable rift power amount. Each rift has a set amount of power. When it is controlled, that power is given to the Nation which controls it. There is no reason for the power of a Rift to change over time.

connor7000 commented 3 years ago

For aesthetics (and for the purpose of not having Dragon or NAR create new schematics), I think the implementation of a command with an "extension" function would be ideal. Obviously, if this is a significant timesink for you, @VolticFroogo, I can ask either Dragon or NAR to address it themselves (as to follow @OvercookedFish's first proposed "pathway.")

connor7000 commented 3 years ago

As of now, I don't think I have any further clarifying questions!

VolticFroogo commented 3 years ago

If you wanted rifts to take up more than one chunk, could you not just have each of the chunks contain a fraction of the power that rift contains?

For example, a rift that should be worth 40 power, but is spread across four chunks is just four separate rifts with powers of 10 each?

If not, I could design it so that you must control multiple chunks in order to get the whole value of the rift. This wouldn't be too complex, so don't worry about development time.

connor7000 commented 3 years ago

I don't think the distribution of the Rift Power, nor the Rift Power itself is the concern.

In your example, where a Rift is worth 40 power and that power is spread across four chunks, the concern is that four different nations are holding one of those four unique chunks. A Rift, regardless of its power contribution, should only ever be controlled by one singular, unique nation.

Perhaps neither me nor @OvercookedFish explained this properly, my apologies.

A solution might be that to benefit at all from a Rift, you must have control over every chunk in which that Rift exists. So, for example, if a Rift is 10 chunks large and worth a total of 100 Rift Power, a nation holding claim over 9 out of the 10 chunks grants them zero Rift Power— not 90. But, if the nation can get all 10 chunks of that Rift, they'll be granted the full 100 Rift Power. I don't think this is a great solution, though.

Let me just rehash this again:

On the map there are Rifts. These Rifts, if claimed, contribute to the National Power of the nation which has claimed them. All Rifts "give off" Rift Power. Different Rifts can "give off" more Rift Power, or less Rift Power, than other Rifts which can be found on the map.

Specifically, there is a small-sized Rift, a medium-sized Rift, and a large-sized Rift. The sizes of these three classes of Rifts indicate the amount of Rift Power which a particular Rift would contribute to a nation's National Power. A small-sized Rift, logically, would generate less Rift Power than a medium-sized Rift and a medium-sized Rift, logically, would generate less Rift Power than a large-sized Rift.

Indeed, a small-sized Rift may only be useful to a smaller nation— whereas it may be a necessity for a larger nation to control a larger-sized Rift.

For the player's benefit, we've already created three different unique schematics to serve as small, medium, and large-sized Rifts. Not having this visual cue would just be confusing. Small means less Rift Power, big means more Rift Power. The practical issue here, though, is ONLY the small Rift schematic takes up ONLY one chunk. That is, only the small Rift schematic takes up a 16x16 segment area. Both the medium-sized and large-sized Rift designs take up multiple chunks.

This visual cue is really, really important, in my opinion, because it means having intel on where a large-sized Rift is becomes extremely valuable information (and information that, through exploration, could be discovered) and desperately needing Rift Power might mean you have to plan out a nuanced attack against another nation who holds a large-sized Rift— rather than going after a nation which only has control over small or even medium-sized Rifts.

If all the Rifts are all the same size— even though their Rift Power varies in strength— players don't get the benefit of this visual cue and then, ultimately, they'll just need to guess as to what Rifts might be most useful for them to claim at any given moment.

So, the practical issue here is what can we do to make sure that once a nation claims a Rift, even if it is multiple chunks large, that they get the full benefit of the multiple-chunk-sized Rift?

I think the most practical solution, though I can't comment on its difficulty, should be that once a nation attempts to claim a Rift, there is some sort of prompt asking them to confirm that they are willing to give up however many chunks it might take to claim that Rift.

So, in the case of small-sized Rifts, it might be as simple as "Would you like to claim this Rift Chunk? It is 1 chunk large." Or, in the case of large-sized Rifts, "Would you like to claim these Rift Chunks? It is 4 chunks large."

Of course, only nations with enough claiming power could complete this process. Why I think this prompt is necessary is I believe one Rift should only ever be controlled by one nation at a time— irrelevant of its power contribution or size. I also believe that, in the case of multiple-chunk-sized Rifts, that a nation ought to control all of the physical Rift structure. However, it would be extremely frustrating if a nation had, say, control over 3 chunks of a large-sized Rift but another nation had control over the remaining 1 chunk and now neither nation can benefit.

That's an extremely long-winded answer, and I can't comment on the practicality of that solution, but hopefully that gives you more context, @VolticFroogo!

VolticFroogo commented 3 years ago

So, in the case of small-sized Rifts, it might be as simple as "Would you like to claim this Rift Chunk? It is 1 chunk large." Or, in the case of large-sized Rifts, "Would you like to claim these Rift Chunks? It is 4 chunks large."

So you believe it should not allow you to partially claim a rift (even if that meant getting no power from it)? If this is the case, should overclaiming reclaim an entire rift at a time?

connor7000 commented 3 years ago

Yes. Based on the information I have now and my understanding of @OvercookedFish's concept, yes.

To the second question, I see how that could potentially be an issue. Indeed, I'm sure it comes with a number of unintended negative consequences I am yet to identify, but I think that's a less bad issue than players purposefully sabotaging each other and then no one can use the Rift.

EDIT: TL;DR: Yes and also yes.

EDIT 2: Please don't hesitate to bring up any of the unintended negative consequences you have (or might) identify with this decision, @VolticFroogo!

connor7000 commented 3 years ago

Also, just so you know the actual sizes:

VolticFroogo commented 3 years ago

Rifts are currently fully functional but only configurable through config files, resolved for now. If commands are necessary, I'll open a new issue.