Inacio Posted September 11, 2012 Posted September 11, 2012 From the EE2 thread: How can I add my own EMC values for my other mod items? Is there a config file or something I need to update? We don't have something like this in right now, but it is something I'm working on in my larger rewrite of the mod. In the meantime pwnedgod has updated his CustomEMC addon for EE2. You can find it here; Client. Server. Bukkit port: http://www.mcportcentral.co.za/index.php?PHPSESSID=0o3qg82tj8utv76fvgguhh8s15&topic=3491.0 Mod allows server owners to adjust EMC values. Should be part of EE, but since it isn't yet, that's the next best thing. Quote
gavjenks Posted September 11, 2012 Posted September 11, 2012 This doesnt seem that useful to me. I mean, if you can throw it in and it just works, then sure, I guess. But anybody who feels that EMC values are badly set is NOT going to be satisfied by any numbers they can put in themselves, either. Supply levels of different materials naturally changes over time on any server, so the only system that would ever actually be in balance would be one that dynamically adjusts EMC values during gameplay on a minute by minute basis. Static systems will always be exploitable. By "dynamic" I mean, the more of any one item somebody burns for EMC, the less valuable it becomes, adjusted automatically by the server. And the more of any one item people craft from EMC, the more valuable it is adjusted to become. Thus, if people are going mining and gathering a wide variety of things and transmuting them back and forth as needed, it should stay fairly even. But if people make a cow milking EMC farm, it will stop working in just a few minutes or so, probably, because milk will go down in value and empty buckets will go up in value until their machine literally stops, because it doesn't have enough emc to make a single new empty bucket, after burning all the milk ones. Which would be pretty neat. Quote
andrewdonshik Posted September 11, 2012 Posted September 11, 2012 This doesnt seem that useful to me. I mean, if you can throw it in and it just works, then sure, I guess. But anybody who feels that EMC values are badly set is NOT going to be satisfied by any numbers they can put in themselves, either. Supply levels of different materials naturally changes over time on any server, so the only system that would ever actually be in balance would be one that dynamically adjusts EMC values during gameplay on a minute by minute basis. Static systems will always be exploitable. By "dynamic" I mean, the more of any one item somebody burns for EMC, the less valuable it becomes, adjusted automatically by the server. And the more of any one item people craft from EMC, the more valuable it is adjusted to become. Thus, if people are going mining and gathering a wide variety of things and transmuting them back and forth as needed, it should stay fairly even. But if people make a cow milking EMC farm, it will stop working in just a few minutes or so, probably, because milk will go down in value and empty buckets will go up in value until their machine literally stops, because it doesn't have enough emc to make a single new empty bucket, after burning all the milk ones. Which would be pretty neat. This sounds amazing. Not sure how this would be coded, though. Quote
Zemerick Posted September 12, 2012 Posted September 12, 2012 First: The plugin IS very easy to use. Been toying around with it. You drop 3 files into one of your servers jars, and run the server. It creates a config file in the usual config folder. Quick editing of it works like a charm. ( Though EMC values are not displayed as that's handled client side. Will check if I can just drop the same class files into an appropriate jar on client to see those EMCs later. Still working out the numbers I want for the items. ) Also, why would someone who can put in their own EMC values necessarily not be satisfied? Sure, some people won't be happy with their own work...but plenty would be. Myself included so far. More importantly though is that there is just a lot of Tekkit that has no EMC value at all. This is a fairly easy fix. Once I get my config a bit better I will post it here and we can probably work as a community to create a solid base config for Tekkit so people don't have to handle the hundreds of items themselves. Anyways, I've been thinking about EE and the issues it causes. Namely, IMHO, it just converts TOO easily. I love it, and will always use it...but I do wish it wasn't a perfect system. If the Cost and Value of items were separate values it would make a world of difference. So, cobblestone could cost say 1 EMC to make, but has a value of 0. I would kinda hate for something to be of 0 value though, so I was also thinking of multiplying all EMC values by 10. So, Cobblestone could have a cost of 10 and value of 9 or something. This would easily enable another level: For more complex crafting like we see in IC2/BC/etc. such as HV Solar Arrays, this system would allow there to easily be a cost of production without making an infinite supply of EMC. A simple example would be the Crafting Table. It takes 4 wood blocks of 8 EMC to make, and so it currently has a cost/value of 32. However, there should be a certain cost for the effort it takes to craft it. So, it could have a cost of 34 but keep the value of its base materials of 32 preventing any exploits. This would remove the Energy Condenser from the be all end all mass production tool, and simply make it the tool if you have excess ( which would then remove some of that excess ) or speed at a cost. Well, Energy Collectors would still need some tweaking as well obviously...but that's outside of this topic really. ( Ok, this post is pretty borderline as well...but thats the direction the topic took pretty quick. ) Quote
gavjenks Posted September 12, 2012 Posted September 12, 2012 Also, why would someone who can put in their own EMC values necessarily not be satisfied? Sure, some people won't be happy with their own work...but plenty would be. Because it has nothing to do with your skill. No matter how good you are, you can never MANUALLY set the right prices for everything in an entire economy, especially not as a one-time thing. How well did that work for the USSR? Not very, and they had whole bureaus of specially trained people trying to keep up with things all the time. You are one dude with probably no formal training, and you are expecting to set the values once for hundreds of different items. That will never work, because you have 30 or so other people on your server, probably just as clever as you, working at the same time to figure out new and better ways to exploit any tiny imbalances in your numbers, or CREATING new imbalances. For instance, if you make reeds a little too high in value, then massive reed farms become a ridiculous exploit. If you make reeds a little too low, then people will condense reeds instead and turn them into bookcases instead really easily and have massive bookcase farms. Etc. etc. A simple example would be the Crafting Table. It takes 4 wood blocks of 8 EMC to make, and so it currently has a cost/value of 32. However, there should be a certain cost for the effort it takes to craft it. So, it could have a cost of 34 but keep the value of its base materials of 32 preventing any exploits. Similarly, this would CREATE a ton of exploits. Adding more complexity does nothing but create more loopholes you didn't notice. For example, if you do this, it would mean I could simply have a collector making wood, then pipe it to an auto crafting table to make workbenches, then pipe it back to the condenser for more value that it started with. Could you stop that from working now that I told you about it? Yes, of course. But I wouldn't have told you about it! I would just exploit it on your server and not say anything. As you add more complexity, you just create more and more opportunities to do things like this that youll never find out about and that will create massive effortless fortunes. A dynamic system, on the contrary, would prevent all of these things, without having to think of them ahead of time. If I did the same thing in a dynamic system, then workbenches would auto-adjust to be expensive and wood to be cheaper, until they were equal again in a few minutes. Then if the person switched back to condensing workbenches, it would auto-adjust again to make them worth more. The dynamic system would actually already do exactly what you're asking for here, for free! Without the need to set anything manually, and without exploitability. More importantly though is that there is just a lot of Tekkit that has no EMC value at all. This is a fairly easy fix. I do admit this sounds useful, for a server that wants to be pretty much creative. I would use it. Quote
Zemerick Posted September 12, 2012 Posted September 12, 2012 Because it has nothing to do with your skill. No matter how good you are, you can never MANUALLY set the right prices for everything in an entire economy, especially not as a one-time thing. How well did that work for the USSR? Not very, and they had whole bureaus of specially trained people trying to keep up with things all the time. You are one dude with probably no formal training, and you are expecting to set the values once for hundreds of different items. That will never work, because you have 30 or so other people on your server, probably just as clever as you, working at the same time to figure out new and better ways to exploit any tiny imbalances in your numbers, or CREATING new imbalances. For instance, if you make reeds a little too high in value, then massive reed farms become a ridiculous exploit. If you make reeds a little too low, then people will condense reeds instead and turn them into bookcases instead really easily and have massive bookcase farms. Etc. etc. I never said anything about having a flawless economy. I was talking about being satisfied. Satisfaction is entirely opinion based. Notice how plenty of people are actually satisfied with the default values. Others can be quite satisfied with their own values. I also never mentioned 30 or so other people:) Similarly, this would CREATE a ton of exploits. Adding more complexity does nothing but create more loopholes you didn't notice. For example, if you do this, it would mean I could simply have a collector making wood, then pipe it to an auto crafting table to make workbenches, then pipe it back to the condenser for more value that it started with. Perhaps I didn't explain that clearly enough. That would NOT work. The value is 32, the same as the wood. The 34 is ONLY used for the cost of creating it in a condenser/transmutation tablet. A dynamic system, on the contrary, would prevent all of these things, without having to think of them ahead of time. If I did the same thing in a dynamic system, then workbenches would auto-adjust to be expensive and wood to be cheaper, until they were equal again in a few minutes. Then if the person switched back to condensing workbenches, it would auto-adjust again to make them worth more. The dynamic system would actually already do exactly what you're asking for here, for free! Without the need to set anything manually, and without exploitability. A dynamic system is also substantially more difficult to create, maintain, and could easily get out of control and have undesired/unintended effects. A dynamic system across the large number of items in Tekkit could easily become a chaotic system. I do admit this sounds useful, for a server that wants to be pretty much creative. I would use it. Not quite as easy as creative, but yea...once you get set up and rolling it's pretty much free reign. Quote
gavjenks Posted September 12, 2012 Posted September 12, 2012 A dynamic system is also substantially more difficult to create, maintain, and could easily get out of control and have undesired/unintended effects. A dynamic system across the large number of items in Tekkit could easily become a chaotic system. Like what? I'm not just being argumentative. I'm seriously considering writing this as a serverside plugin. If there is actually a file that has the EMC values, then it could potentially be pretty easy to code. I'd appreciate your thoughts on what sort of things could go wrong. Quote
Zemerick Posted September 12, 2012 Posted September 12, 2012 Like what? I'm not just being argumentative. I'm seriously considering writing this as a serverside plugin. If there is actually a file that has the EMC values, then it could potentially be pretty easy to code. I'd appreciate your thoughts on what sort of things could go wrong. Ah, I didn't know you were actually considering doing it yourself. That changes the complexity issues to: Doesn't really matter as it's your own problem to deal with:) Anyways, that's a bit hard to say without actually knowing the exact implementation. I was speaking in general, because you are giving the system power to change. Without very careful control, it is possible for that system to get into a state that you didn't anticipate. Typically, the more likely scenarios usually make the system useless, rather than exploitable though. The most likely issues would arise from potential errors in the formulas and how rounding would be handled. Over time, even very rare very small rounding errors can compound. So, to help avoid this, I recommend using as little division ( or multiplication by a decimal ) wherever possible. Try to stick to addition and subtraction of integers to avoid rounding errors. It would also help to increase the base EMC value here as well. IE: Cobblestone being 10 or even 100 instead of 1. This both makes it more flexible for what division or multiplication you might need, but it also means individual changes of 1, and by extension any off-by-1 errors, will have less impact on the system. If you want to email me so we don't derail this thread, you can. My email is [email protected] If I find some time I might even try mixing up a bit of a starting formula for this. It could be interesting. Have you decided what range of EMC materials to include in this? There are quite a few items in total in Tekkit, which could take quite awhile to add in. Perhaps start with just the base raw resources? Finally, for crafted items, are you planning on keeping the items separate, or having the price of the base materials affect the price of the crafted item? This could get very complicated, very fast. Quote
gavjenks Posted September 12, 2012 Posted September 12, 2012 Over time, even very rare very small rounding errors can compound. That is a good point. My plan was to have the original EMC values be what the system regresses to over time. So for instance, any given item's current (dynamic EMC value - original EMC value) = amount of stretch. This would be reduced by like 1% every few minutes or so (just made up that number). Or whatever other number makes it so that if no condensing activity is performed on a given item in about 2 days, it would return back to its original EMC value. This would help prevent rounding errors or anything else that accumulates over time. And individual people wouldn't be able to screw over the market without sinking a lot of resources continually into maintaining a strange artificial price. Have you decided what range of EMC materials to include in this? There are quite a few items in total in Tekkit, which could take quite awhile to add in. Perhaps start with just the base raw resources? Finally, for crafted items, are you planning on keeping the items separate, or having the price of the base materials affect the price of the crafted item? This could get very complicated, very fast. Yes, the ingredients would determine the also dynamic price of the crafted items. Which doesn't seem that complicated, necessarily. All you need is a 9x[num of items] hash table stored in memory with the crafted item and then recipes listed as the 9 things required for them. EMC = sum of values of those 9 pointer variables. So the line in the table for a torch would be: [(item ID of torch = key) : (item ID of stick), (item ID of coal), 0, 0, 0, 0, 0, 0, 0] When somebody condenses or burns torches for EMC, the system uses torch ID as the hash key and gets a 9x1 array of its ingredients. It looks up the EMC for the stick ID and the coal ID, and distributes adjustments or returns the correct value accordingly. I assume something like this already exists in bukkit, which of course you would want to use instead of making your own, so that it will automatically reflect any changes in recipes people make in their mods, and so you dont have to type it in by hand. And when you condense or burn an item with a recipe like a torch, it divides the EMC adjustment proportionally amongst the ingredients. So if coal is 128 and a stick is 1, then 1/129th of however much EMC the torch is adjusted by would affect the stick's EMC value, and 128/129 would affect coal's EMC value. Can be determined automatically from that same table in memory, and the proportions would of course change as the ingredients change (if somebody drove up the price of sticks to 128 EMC, then a change to torch EMC could become 50/50 of a change to sticks and coal) A bonus would be that things like transposers, that only use vanilla items, would automatically be given an EMC value for free, without you having to type anything in upon installing the plugin. It also means that nobody has to be burning transposers for EMC or anything like that in order for transposers to remain at a reasonable equilibrium level. As long as they sometimes burn cobble and wood and redstone, etc., and sometimes generate them, it would stay just fine. If you want to email me so we don't derail this thread, you can. My email is [email protected] Maybe we should start a new thread, but I'd like input from others too. Also, this doesn't seem that off-topic at all. This is what I think would be the best version of a custom EMC value system, which is what the title says. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.