CC-Tweaked icon indicating copy to clipboard operation
CC-Tweaked copied to clipboard

Rebalancing Ender Modems

Open SquidDev opened this issue 2 years ago • 70 comments

TLDR: Ender modems are OP.

CC 1.6 introduced the repeat program, which allows rednet to relay messages between computers. The intent here was to allow more long-distance wireless communication through the use of repeater stations. However, 18 months later CC introduced ender modems, which allow for infinite range communication, making both wired modems and the repeat system obsolete.

Nowadays there's very little reason to craft a normal wireless modem, aside from very early game. This has several side effects:

  • One can build a single GPS tower at spawn and cater to the whole server.
  • Wireless networking is entirely trivialised, as everyone (well, every turtle) gets a wireless modem.

This has undoubtedly made things easier and more accessible, and so I don't think there's any harm leaving things as is. However, modded Minecraft (tech mods especially) is basically a big infrastructure management game. It makes me sad that CC trivialised one of its hardest problems, and it would be nice to rebalance things.

I think I'd propose the following changes:

  • Remove ender modem turtle and pocket computer upgrades. Ender Modems can now only be used as in-world peripherals. We might want to remodel and rename them so they more obviously distinct from the wireless modem[^1].

  • Ender modems now only have infinite range when talking to other ender modems. When talking to wireless modems, they use the distance of the wireless modem instead. We might want to adjust the max distances of wireless modems to account for this.

Basically what I'm trying to encourage is having to think about (and build) infrastructure around your turtle setups. You can't just plonk down a few turtles and set your mining swarm loose. You need to place down an ender modem to communicate with them over a long distance, need to make sure they stay within range of the repeater station. Maybe you need a GPS tower too?

I don't know, maybe this is just adding complexity for the sake of it[^2]. I'm very wary that what I'm suggesting here is making things actively harder for the player, maybe it's just too late to change things. Thoughts?

[^1]: While the BitNet Communication Tower is not the aesthetic I'm going for, I do really like the concept and mechanics - definitely an inspiration here. [^2]: And I'm very aware that CC (CC:T especially) has far more OP features. Looking at you item transfer.

SquidDev avatar Nov 20 '21 10:11 SquidDev

I do agree that this should happen, would also add some extra challenges to write code for. Only concern I have is world compatibility. Big servers have a ton of ender modems and that should be accounted for when rebalancing this.

EmmaKnijn avatar Nov 20 '21 11:11 EmmaKnijn

I think the plan would be to make this change in a major Minecraft version (so 1.18 or 1.19). Most people don't tend to upgrade worlds between versions, and those that do expect some level of breakage. I suppose we could convert all ender modem upgrades to normal ones in this case, though would rather avoid it.

SquidDev avatar Nov 20 '21 11:11 SquidDev

Alternatively, make ender modem turtle and pocket computer upgrades creative-only. This way, world compatibility is preserved and modpacks can add recipes for these if they want the unbalanced lifestyle.

Either way, it's surprising to see "ComputerCraft" and "rebalancing" in the same sentence. While I like the idea, one has to ask themselves if every Minecraft mod has to be perfectly balanced.

asiekierka avatar Nov 20 '21 11:11 asiekierka

That could work, world compatibility is preserved, but ender modem upgrades can be used whenever you need to, either enabled by the server owner, or you.

EmmaKnijn avatar Nov 20 '21 11:11 EmmaKnijn

Alternatively, make ender modem turtle and pocket computer upgrades creative-only. This way, world compatibility is preserved and modpacks can add recipes for these if they want the unbalanced lifestyle.

Yeah, that's a fair point. CC's upgrade system isn't really data-driven enough to enable that right now, but probably should look into changing that too. Would mean we can replace/supplement the CraftTweaker integration with something more vanilla-esque.

Either way, it's surprising to see "ComputerCraft" and "rebalancing" in the same sentence. While I like the idea, one has to ask themselves if every Minecraft mod has to be perfectly balanced.

Oh, this isn't the start of a nerfing spree or anything. I'm well aware that CC has plenty of other unbalanced features, I just think in most cases they add something to the mod[^1]. Ender modems do add something, but also undermine a whole bunch of other features, and that irks me.

[^1]: As mentioned in the OP, item transfer is super broken but unlocks so much it's Worth It. Turtles too, though probably less so in today's modded landscape.

SquidDev avatar Nov 20 '21 12:11 SquidDev

Nowadays there's very little reason to craft a normal wireless modem, aside from very early game.

Isn't that the case for non-advanced items too? I don't think there is a reason to craft them in any modpack aside from very early game. This makes me wonder if nerfing modems is the right choice.

Jummit avatar Nov 20 '21 12:11 Jummit

Continuing this slightly off-topic discussion of not crafting non-advanced items in the late game, I rarely craft advanced versions of things. I don't use monitors (advanced or not) and a lot of my programs don't have fancy UI systems that need mouse support or colours. I make for ender modems for my GPS and repeater setup and that's it for advanced items I believe.

It might be that I'm bad at collecting resources, or that some people are used to more than ore doubling, or maybe I just like being resource-efficient. That said, before I stopped playing my 1.16.5 world I was overflowing with gold.

Lupus590 avatar Nov 20 '21 14:11 Lupus590

Personally, I think that any changes should be reversible via config, because I personally love how ender modems are. I do agree that they should only have infinite range when talking to other ender modems, the infinite range for even normal modems is a bit weird to me.

The turtle/pocket limitations should definitely be put into the config so that players/servers like myself can enable them for turtle/pocket computers. For me, the only peripheral I ever put on pockets is an ender modem, because that's what I think is the only suitable peripheral for them, without communication they basically become useless.

Of course, this can all be bypassed with websockets, but who would do that? (I think this would be a fun project to get around these limitations, provided you have a server capable of hosting a websocket bridge thing.)

SkyTheCodeMaster avatar Nov 20 '21 16:11 SkyTheCodeMaster

Of course, this can all be bypassed with websockets, but who would do that?

I feel that if the way the rebalancing is implemented isn't fun to do then everyone will eventually get tired and defer to using some websocket server hosted by someone else.

migeyel avatar Nov 20 '21 17:11 migeyel

People have been talking on discord about adding resource consumption for ender modems (one even suggested being able to change the number of resources consumed to increase the range of the ender modem - if the range of the modems changes).

This idea gave me an idea of making ender modems water-cooled, CC can already move items and fluids, and turtles can collect water from the world. So using just CC one could feed the new modem buckets of water, and if another mod adds a tank that can empty buckets then CC can use that to move fluid water into the new modem.

Lupus590 avatar Nov 20 '21 17:11 Lupus590

Then what? Add a condenser block that turns steam into water and create a closed cooling loop? Condenser has to be placed in water maybe... that actually sounds like a fun addition.

SkyTheCodeMaster avatar Nov 20 '21 17:11 SkyTheCodeMaster

Water is infinite so I would just have the modem void the appropriate amount when it sends a message.

The appropriate amount decided by the range, which could be changed via a function on the peripheral.

Lupus590 avatar Nov 20 '21 17:11 Lupus590

Isn't that the case for non-advanced items too?

Yes, though I feel maybe less seriously? I very rarely craft advanced turtles for instance, can get away with normal ones.

[Websockets]

I'm choosing to ignore websockets as I think by using them instead of rednet you're already making a conscious decision to sidestep CC's mechanics. GPS aside, there's very little reason why you wouldn't use them already - they're better than modems in every way!

[Water cooling]

I really don't want to add any new mechanics here, just tweak existing ones. Same goes for energy costs, which I know were mentioned elsewhere.

SquidDev avatar Nov 20 '21 17:11 SquidDev

More suggestions from discord:

  • default range of the ender modem is the same as a normal modem and doesn't consume water, extra distance does consume water.
  • no water in the nether, modem setups in the nether may be too difficult
  • separate long-range modems from cross-dimensional modems
  • cross-dimension messages need ender pearls to transmit
    • if we don't have a specialised cross-dim modem then a function to set this behaviour would be nice, not all messages need to go cross-dim and not eating all the pearls would be nice

Lupus590 avatar Nov 20 '21 17:11 Lupus590

which I know were mentioned elsewhere.

discord, it's what gave me the idea of water cooling

Lupus590 avatar Nov 20 '21 17:11 Lupus590

Another mechanic idea, what if ender modems need to be in the same plane for long-distance messages? This would mean that they would need to share 2 of either their x, y, z positions.

Lupus590 avatar Nov 20 '21 17:11 Lupus590

I like the original idea of only allowing infinite distance if both modems are ender modems. It means there is a reason to update to ender modems everywhere, or you can save on resources by setting up relay towers near large areas of modems.

For the idea of disallowing it on turtles, I feel the best approach is splitting the turtle peripheral custom recipe into a recipe for each peripheral. It is relatively trivial with how crafting table recipes are set up to define custom serializers for recipes, so a format of ingredient -> peripheral would allow easily changing or disabling individual peripheral recipes. I have a lot of experience with custom recipe serializers if you want some pointers on this idea. What this would mean is you could either disable or enable turtle ender modems by default, then make a datapack for the other behavior.


Another mechanic idea, what if ender modems need to be in the same plane for long-distance messages? This would mean that they would need to share 2 of either their x, y, z positions.

This is an interesting idea, though worth asking, are you still expecting ender modems to only work with ender modems? Or is this just for mismatching modems?

KnightMiner avatar Nov 20 '21 19:11 KnightMiner

Personally, I understand problem, but I don't like suggested solution.

Both solution will lead us to just setup additional computer to be a relay from infinite network to finite once for turtles. Pocket computers will be just smashed away, they are not very useful now and with this changes they can only serve like limited remotes, which is not so cool, as infinite remotes.

If we need a to add network complexity, maybe, we should rework network somehow and force players to run satellites to serve like infinite network and make them to collapse time by time? But I guess, this is really will be another mod

SirEdvin avatar Nov 20 '21 19:11 SirEdvin

I'm starting to really like the infinite plane idea, it's still quite easy to set up a repeater network for server-wide comms but means that one GPS array can't cover the whole server anymore. Yes, setting up that repeater network might be a bit more difficult and expensive, but that's arguably the goal of this change.

@KnightMiner If I was implementing this then I would have it that longer than normal modem range would require a shared plane. My intent would be to make it a CC like narrow beamed communication method. These ender modems would essentially have a normal modem built into them as well.

As for if a normal modem would be able to receive those long-ranged beamed messages, I'd defer to the community opinion on that, in my mind the CC way would be to allow them to receive those messages, but with how I have in my head of those beamed messages working, I feel like they should be incompatible.

@SirEdvin If your remote control program uses rednet then you can use the repeat program to extend its range. So I don't think pocket computers will become any less useful than they already aren't. Also, the idea of satellites collapsing doesn't sound very CC like.

Lupus590 avatar Nov 20 '21 21:11 Lupus590

@Lupus590 how does repeat program extend its range? I mean, if we speaking about mp server, when you can't have chunk loaded every 64-128 blocks

SirEdvin avatar Nov 20 '21 21:11 SirEdvin

Both solution will lead us to just setup additional computer to be a relay from infinite network to finite once for turtles. Pocket computers will be just smashed away, they are not very useful now and with this changes they can only serve like limited remotes, which is not so cool, as infinite remotes.

Why does this change negatively affect pocket computers? Just put an ender modem on your pocket computer (if that is not supported yet, might be worth supporting). In my mind, the proposed change only actually nerfs a type of computer if you disallow ender modems on turtles. Otherwise you have all functionality that existed before as long as you use ender modems everywhere. Makes their increased cost mean more.

KnightMiner avatar Nov 20 '21 22:11 KnightMiner

In the very first post, one of the proposed changes is removing ender modems from pocket computers.

Remove ender modem turtle and pocket computer upgrades.

SkyTheCodeMaster avatar Nov 21 '21 03:11 SkyTheCodeMaster

[Planar modems]

I really don't want to add any new mechanics here, just tweak existing ones. Not that I think they're bad suggestions, just don't think suitable for this change.

[Pocket computers]

This is true, and not something I'd really considered - was mostly thinking about turtles here. Obviously one can draw real-life parallels here - my phone doesn't work in the middle of nowhere - but that's not really been much of a concern within CC.

I guess I'm kinda hoping that #861 balances things out here - pocket computers become more useful in some ways and less useful in others? Hehe, no clue.

SquidDev avatar Nov 22 '21 18:11 SquidDev

I think I'd propose the following changes:

* Remove ender modem turtle and pocket computer upgrades. Ender Modems can now only be used as in-world peripherals. We might want to remodel and rename them so they more obviously distinct from the wireless modem[1](#user-content-fn-1-1e8b5b2a5c5d9882b48dae62fd07a04e).

* Ender modems now only have infinite range when talking to other ender modems. When talking to wireless modems, they use the distance of the wireless modem instead. We might want to adjust the max distances of wireless modems to account for this.

I thought about this over the weekend and in my opinion this might just be best solution? For rebrand/rename i would propose "Ender Ansible" to differentiate it from normal modems and explain why they communicate on separate network.

In fact I propose going for 2 extra limitations to flesh it out.

  1. Ansibles speak only to Ansibles and Modems speak only to Modems. Removing ability to cross talk would make it more clean break between two systems. (After all they are different technologies)
  2. Replace "Eye of Ender" in recipe of Ender Ansible with "End Crystal" (Might even be part of new model if its not too cursed to implement. It would fit ansible theme.) This slightly increases the price of making one and requires a bit more work then just slaughtering the end and some blazes while not making the cost be too much..

Additionally i do agree that increasing the ranges of normal modems would make this changes seem more fair. (Changing the range math is already a must with upcoming world height change anyways.)

All of this would mean that everyone base/common existing spot will have either Ansible <-> Modem relay or GPS Satellite with that functionality. Basically making it so if someone wants to be able to use pocket everywhere they go they have to either use infrastructure someone else made (be it using build in repeater program or custom ones) or build their own if they don't trust them.

On side note for backwards compatibility ender modems should stay ingame but be rendered uncraftable and have their functionality be limited to normal modem.. This would make sure someone can bring world over to next version (and back) and not have to replace all the modems they have ever placed (or have on turtles/pockets). Kinda backwards compatibility?

Wojbie avatar Nov 22 '21 23:11 Wojbie

2. Replace "Eye of Ender" in recipe of Ender Ansible with "End Crystal" (Might even be part of new model if its not too cursed to implement. It would fit ansible theme.) This slightly increases the price of making one and requires a bit more work then just slaughtering the end and some blazes while not making the cost be too much.

On some servers the nether is semi broken, ghasts don't spawn, maybe a way to make ender modems or "Ansibles" with different recipes, changeable in config. Would be easy enough to manage in a sever environment i think.

EmmaKnijn avatar Nov 26 '21 06:11 EmmaKnijn

On some servers the nether is semi broken, ghasts don't spawn

Sounds like a problem with the server. I don't think mods should be balanced around "some" servers being broken.

maybe a way to make ender modems or "Ansibles" with different recipes, changeable in config. Would be easy enough to manage in a sever environment i think.

Isn't that what datapacks are for?

KnightMiner avatar Nov 26 '21 06:11 KnightMiner

Isn't that what datapacks are for?

AFAIK datapacks don't exist on 1.12.2

EmmaKnijn avatar Nov 26 '21 06:11 EmmaKnijn

Nvm wojbie just told me this change was for 1.17.1 onwards so that point doesn't stand

EmmaKnijn avatar Nov 26 '21 07:11 EmmaKnijn

Personally, I would want ender modems to have a limited range identical to regular wireless (maybe a bit larger), but they can go across dimensions. This means an ender modem at 100,100 in the overworld could talk to one at 100,100 in the nether, but not to one at 100,1000 in the overworld. (Not applying nether scaling since many dimensions don't have it.

RGFTheCoder avatar Nov 28 '21 18:11 RGFTheCoder

I don't think directly mapping locations really makes sense. Aside from the nether, where you'd definitely expect them to apply nether scaling, there's also dimensions where you can't access all locations (e.g. compact machines), and so you need infinite distance.

SquidDev avatar Nov 28 '21 19:11 SquidDev