-
Notifications
You must be signed in to change notification settings - Fork 219
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rebalancing Ender Modems #955
Comments
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. |
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. |
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. |
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. |
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.
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 mod1. Ender modems do add something, but also undermine a whole bunch of other features, and that irks me. Footnotes
|
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. |
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. |
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.) |
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. |
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. |
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. |
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. |
Yes, though I feel maybe less seriously? I very rarely craft advanced turtles for instance, can get away with normal ones.
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!
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. |
More suggestions from discord:
|
discord, it's what gave me the idea of water cooling |
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. |
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
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? |
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 |
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 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 |
@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 |
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. |
In the very first post, one of the proposed changes is removing ender modems from pocket computers.
|
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.
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. |
I thought about this over the weekend and in my opinion this might just be best solution? In fact I propose going for 2 extra limitations to flesh it out.
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? |
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. |
Sounds like a problem with the server. I don't think mods should be balanced around "some" servers being broken.
Isn't that what datapacks are for? |
@kristibektashi @osmarks I'm wondering how linked modems rebalance the ender modems in general, considering they would be a seperate block, they might replace ender modems but that would create issues with existing servers: Where would you link the replaced modems. In case of a seperate recipe, how would you compensate for the price difference
As far as I know CC has been a standalone mod for ages, I don't think this is a good solution, @promitheas-nikou is on the right track though, although its not perfect, fuel can be produced in mass very easily with CC, a seperate fuel item also doesn't seem great though I think multiblock structures would be out of place as well. Removing the ender modem from turtles and pocket computers is an option, but on a turtle you could make the ender modem pull from the turtle's fuel, decreasing complexity. Moving the ender modem to a config option or the creative menu seems like a good idea in general, transition for servers would be less harsh that way I've heard some people say this shouldn't be rebalanced because websockets exist, and I don't really agree with that. Websockets require real life hardware that costs real life money, thus shouldn't really be compared with ender modems |
They will allow to archive same result as current ender modem, but will require a bit of setup to connect to distance networks. |
This kind of change is very likely to be done over an MC major version change and be marked as not allowing clean forward compatibility, which I believe is the norm for MC mods (to have breaking changes lining up with big MC updates). I doubt that SquidDev would put this in a regular release without warning. |
@Lupus590 Yup, SquidDev has talked about how this should be a tweak.
|
Maybe give ender modems only ~16 times the range of a normal modem, but allow them to spoof their location? An ender modem at (0, 64, 0) in the overworld could be reconfigured to act as if it was at (5000, 64, 5000) in the nether for the purposes of range/distance calculation. You'd have to use some offset based off the modem's position and rotation. |
@powerboat9 Why would spoofing the location help? That is just a sidegrade from the current modem, can just grab enough modems, place them centrally and repeat commands, infinite range in theory |
I'd propose a larger range, and mapping the ender modem to be in the end and nether. In the end just a direct map and in the nether a 8x map. In case of the modem being placed in the nether just scale the map 8x down for the other dimensions |
You can always get practically infinite range by placing enough modems. Location spoofing would add a directional element to long range ender modem usage, incentivizing the creation of more complex repeater networks for long distance communication (one ender modem for settlement 1 <-> 2, one for 1 <-> 3, one with a custom program to track the player and their pocket computer, one to handle settlement 1 <-> blaze farm, etc.). |
Configurable locations are an interesting intermediate point between linked modems and the current anywhere-to-anywhere thing. |
Would 1.20 be a good update to do this on? |
Probably, its a nice round number. |
One of the major blockers I've had here is what to do about GPS. I don't feel great about how trivial GPS is right now, but having access to GPS everywhere is incredibly useful, especially for pocket computers. The design in the OP makes ender modems (or ansibles, following Wojbie's suggestion) a one-way long-range modem, which means that GPS would no longer work from normal wireless modems (as the initial Obviously we can't actually enforce how often the position packet is broadcast (you could write a program to do it every tick). Which is a bit of a shame - it would give you a nice tradeoff of local GPS (immediate) vs server wide (some delay, and thus less accurate) - but I don't think there's any way we can practically limit the number of modem messages if someone really wants to send them. |
Could modems have a distance beyond which messages to/from them don't come with distance information? It would prevent GPS from working at longer ranges, but keep long range message transmission. |
Maybe ender modems don't have a distance return value at all and thus can't be used for GPS. |
Distances at long ranges could have added noise (scaling with distance), but this would break a lot of things and require smarter numerical algorithms in GPS. |
That would incentivize modem spam in order to average out the noise, unless the noise could be made systematic. |
I just thought of a couple things, including adding latency, adding packet loss (both depending on range from an ender modem) along with decreasing overall range. |
I would be warry of any solution which just requires the player to add more ender modems to compensate. A lot of people download programs, so such a thing would just lead to more ticking block entities for the same result. |
You could design against modem spam by doing things like limiting transmissions in an area by channel or group of channels and making distance errors systematic and variable by location, but at some point you would just be reinventing real-world radio and it could get annoying. |
Ender modems being able to spoof their location would work well with a smaller distance measurement range, especially if time/energy is required to retarget ender modems. You could still set up a GPS for your pocket computer (location spoofing with small changes in location over time), but multiple GPS towers would be incentivized. |
On second thought, GPS which dynamically retargets a pocket computer as described above would require knowledge of the pocket computer's current location, requiring some form of GPS access to begin with |
I am very much in favor of adding a config for making Ender Modems only talk with other Ender Modems. It would make it very easy to balance them on a per server basis, especially if recipes can be modified with data packs. Making it a config will let the players make the choice of keeping it as it was or to use the change. Since Wireless Modems have a longer range the higher up they are it would allow for some variable distance and additional difficulty in setup of relays that can cover an area. Although I don't even know how practical it would be with the current implementation of the variable range since I never had a reason to use it due to Ender Modems. One could even have an area that is covered by a bunch of Wireless Modems and a central server that has both an Ender Modem and a Wireless Modem to talk between areas when there is a vast distance/different dimensions. The GPS script could also probably be changed so that it would work more like how satellites work with only needing a connection to the closest three and outside the area it would need an Ender Modem to work. Although this would probably lead to Ender Modems being spammed whenever GPS is needed, but I suppose that if the server owner wants to avoid Ender Modem spam then they could change the recipe themselves. Making it an opt-in option would also solve compatibility since it would have to be up to the server owner whether to change it or not. |
Another possibility would be using the communication range of the normal wireless modem during normal<->ender modem communication. As a separate suggestion, in order to allow GPS to continue working, ender modems could be allowed to "overcharge" themselves for a single transmission. The transmission would have to be limited in size (number or <=32 byte string?) and would start a (~5 second? ~10 second? ~30 second?) cool down before the modem could be used again, but would bypass ender modem nerfs. This would incentivize local GPS relative to global GPS, but allow global GPS to still work in a limited fashion. |
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 therepeat
system obsolete.Nowadays there's very little reason to craft a normal wireless modem, aside from very early game. This has several side effects:
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 modem1.
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 it2. 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?
Footnotes
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. ↩
And I'm very aware that CC (CC:T especially) has far more OP features. Looking at you item transfer. ↩
The text was updated successfully, but these errors were encountered: