MachineMusePowersuits icon indicating copy to clipboard operation
MachineMusePowersuits copied to clipboard

1.12 Planning

Open lehjr opened this issue 8 years ago • 417 comments
trafficstars

Some thoughts and ideas for 1.11.2

Currently I have a mostly working build for 1.11.2, except for translations. However, I am considering reworking some of the code. I'd like to start looking at "capabilities" as a way to clean up the code. More thoughts later on...

lehjr avatar May 26 '17 00:05 lehjr

"Capabilities?"

eyeonus avatar May 26 '17 00:05 eyeonus

a forge thing really. The Forge power API and some other things are implemented that way. Good example is here (starting there anyway): https://github.com/MightyPirates/Scannable/blob/master-MC1.11/src/main/java/li/cil/scannable/common/item/ItemScanner.java#L49-L52

lehjr avatar May 26 '17 00:05 lehjr

and here: https://github.com/MightyPirates/Scannable/blob/master-MC1.10/src/main/java/li/cil/scannable/common/capabilities/CapabilityProviderItemScanner.java

lehjr avatar May 26 '17 00:05 lehjr

Make MPS combat-friendly?

I think there are a few (?) things that could make MPS less OP without resorting to the old "make it harder" approach.

EzerArch avatar May 26 '17 01:05 EzerArch

@EzerArch don't forget that lots of things can already be tweaked in the config file.

lehjr avatar May 26 '17 01:05 lehjr

@lehjr, like what? Most of the config pretty much falls in the "make it harder" category: less power, more consumption, disable this or that module... once you keep the armor charged, you are mostly invincible.

I'll open an issue to elaborate it in depth, I have some ideas. I didn't want post the whole thing here as I've just seen this issue. :)

EzerArch avatar May 26 '17 01:05 EzerArch

Draconic Evolution has an armor set that is very similar in that it can be upgraded with a bunch of different stuff, and it is definitely an example of the "make it harder" approach that Ezer doesn't want.

I think the difference between how shields work in that mod, versus how they do in this one currently, might be the kind of thing he's talking about, however.

A similar effect to the shield entropy that mod uses, by means of power distribution, would be kind of interesting, IMO. As an idea, put a limit on how much energy can be used per piece per tick, with a larger limit for batteries on the piece than for batteries on another piece than for external sources like batteries in inventory, and increasing all around for higher tier batteries. Too many modules running at the same time would obviously result in some things not getting enough power and shutting down.

Alternatively, do that, but only for the shields, instead of all the modules on all the pieces. The shields are created with capacitors, which require a constant small charge to keep active, and get depleted quickly when taking hits, requiring the capacitors to be recharged at a slower rate, and protecting the user from [current capacity]/[total capacity] of the damage it would at full charge. (It'd be easy to equate the capacitance to the armor rating: 6 armor equals the amount of energy lost when protecting the user from 6 points of damage.)

Of course, I may have misunderstood Ezer, and I expect to be corrected quickly if so. ;)

eyeonus avatar Jun 06 '17 01:06 eyeonus

The changes I have in mind are under the hood changes using capabilities and some game play changes. For instance, the modules themselves could be craft-able items and the armor and power fist could use an inventory system with upgrade system to expand the size of that inventory rather than just having unlimited module space.

Power systems would be overhauled and sharing power with inventory items would no longer work. Instead add a power slot to the armor to place a storage device to draw from. Power sharing with other armor pieces would still work however and would be good for those that like to mix armor pieces from different mods. Part of the reasoning behind this change is the overhead of constantly scanning the complete inventory for power devices. Another reason is this has led to issues in the past with some devices like the AE2 wireless terminal providing unlimited power to the armor. Not to mention that sometimes the armor can draw from items you do not want it to, like the Atomic Dissasembler or different teleporters.

Cooling systems would be overhauled to an actual container based system. Liquid nitrogen would be consumable just as water already is. This would help with integrating power generation modules.

On power systems again, maybe add some power producing modules, like a combustion based generator, and fission and fusion reactors, each with their own trade offs, like radiation and heat generation.

Upgradable modules would just be replaced with higher tiered versions, requiring the lower tier version as a crafting ingredient.

The power fist would also get fluid containers. This would help with mods like Compact Machines, where there is now a fluid for the personal shrinking device.

The number of colors might be scaled down from 24 bit to 8 bit in order to reduce cache size issues. This still allows 256 colors. The current system allows for 16777216 colors, but the way things are coded, it requires caching different colored versions of items. The more variations, the bigger the cache becomes. The cache is set up so that the size is limited and flushes anything after a certain size, but if you entered an area with Lux Capacitors or player armor with all different colors, performance would take a massive hit. Limiting the colors means better performance. And really, despite the 16777216 colors of the current system, only a 3rd of those are really noticeably different.

Lux Capacitors will probably need to be revisted. Maybe I'm over thinking it, but should there really be an unlimited number of these things? The current setup is basically energy to matter conversion. Maybe I am over thinking it.

Nothing is fleshed out in code yet or really even figured out extensively, they're just ideas for the moment.

lehjr avatar Jun 06 '17 13:06 lehjr

I like those ideas.

As for the Lux Capacitors, since the fist is going to have an inventory, why not make the LC a craftable item and require that at least one be in the fist's inventory to shoot them out? In that case, they could be normal, placeable items as well, and it might do to replace the Lux Capacitor module with a general item shooter mod, that shoots whatever is in the "ammo" slot of the fist's inventory, which would also allow for other things to be shot out of it, like bullets and what not.

Speaking of, the railgun should really have ammo, even if it's just iron nuggets or similar. It's a railgun. What's it shooting? Air? Plus that would allow for more upgrade options for the railgun, like depleted-uranium rounds that cause poison or something.

eyeonus avatar Jun 06 '17 13:06 eyeonus

Now that 1.12 is out, it might be a better target for major changes. If I just port the mod as is to 1.11.2, I could probably have it done in a day or so, leaving more time for a complete rewrite in a newer version.

lehjr avatar Jun 11 '17 12:06 lehjr

That sounds like a good idea.

MAAAAAAYbe backport changes later on. Maybe.

eyeonus avatar Jun 11 '17 13:06 eyeonus

Problem with backporting is that it's likely to break >>everything<< and it would have to be released as an entirely new mod just to avoid loss of items and modules, and then would require implementing a transitional crafting system to allow those items and modules to be recovered in the new system, something that requires dealing with a lot of NBT code. Some things may not make the transition, and won't have any equivalents, like the high poly armor. In 1.12 it may have to be dropped, or at the very least, it will be limited to predetermined configurations because the current setup is very bandwidth intensive since the models contain several pieces per armor piece, and the visibility, color, and glow for each one have to be tracked. Little things like this add up, especially when other mods are involved. Keep in mind that this mod is intended to be used with other mods, to have some level of integration with them. So it doesn't make sense to have things start breaking down when other mods are installed.

lehjr avatar Jun 11 '17 14:06 lehjr

by the way, unrelated to the update, but I found out that MultiMC doesn't use the latest LWJGL but instead uses a very old version by default. This might be the cause of some of the MPS graphics woes, and why it's effects some users more than others.

lehjr avatar Jun 11 '17 15:06 lehjr

Yeah, I can see that. I knew back porting wouldn't be easy, but that sounds like way too much effort.

As far as the bandwidth thing, I still think you should knock it down to just a primary and secondary, that is, one color for the "metal" bits and one for the crystals and visor. That and the switch to 8-bit you were talking about I would think would be worlds of improvement.

eyeonus avatar Jun 11 '17 15:06 eyeonus

Or, in other words, a maximum of two "pieces"per armor part.

eyeonus avatar Jun 11 '17 15:06 eyeonus

The idea of presets would slim that down already. It would mean for each armor piece syncing a 32 bit integer to look up the presets (like an index value) client side instead of what probably amounts to kilobytes already. 32 bits is quite a bit though, allowing for 2,147,483,647 possible combinations. That doesn't mean that all of them have to be used.

The upside is that it would allow team/faction colored/customized armor, kind of like power armor in Fallout 4, where you can paint the armor with a faction paint, or something custom like flames. And you can still customize the armor, but it's not unlimited. This would be somewhat similar. The visibility and colors would be preset so that a very small amount of data can represent a very large amount of data.

The downsides of this are providing a means of creating presets as well as a method of syncing them.

The more I think about it, the more I'm leaning towards doing it as an addon, especially given the popularity of the vanilla skinned style armor, not to mention the work involved in planning and implementing it.

lehjr avatar Jun 11 '17 16:06 lehjr

Thinking about replacing the Tinker Table with an armor stand with additional slots for the power fist and maybe some sort of shield and maybe add a charging function like what was suggested quite awhile ago here: https://github.com/MachineMuse/MachineMusePowersuits/issues/681#issuecomment-223967572

lehjr avatar Jun 16 '17 18:06 lehjr

So, adding/removing modules would require placing the power item on the stand?

Doesn't sound like a bad idea.

eyeonus avatar Jun 16 '17 18:06 eyeonus

Yeah, when it was originally suggested, it didn't fit well with the mod and would have been out of place. But now, with the Tinker Table being so butchered to fix rendering issues, I've been wanting to replace it, and with the upcoming changes, the Tinker Table would be probably be out of place anyway.

I'll see how it works out in the next couple weeks. I've decided to hold off 1.11.2 for now and start poking around in 1.12 so I can try to plan out these changes and start fleshing out some ideas before all the other mods jump to it.

lehjr avatar Jun 16 '17 23:06 lehjr

Kinda wondering about the future of Minecraft as a modding platform. I really don't want to put the time into some massive rewrite only to have it be the final Java version of Minecraft: https://venturebeat.com/2017/06/11/microsoft-unifies-minecraft-with-third-party-servers-and-cross-platform-saves/

lehjr avatar Jun 19 '17 23:06 lehjr

I doubt 1.12 is the going to be the last version of Minecraft, but Microsoft is pretty big on the whole making lots of money thing.

Until the console port of Minecraft supports modding, anyway, I don't think Minecraft is going anywhere.

eyeonus avatar Jun 20 '17 00:06 eyeonus

I wouldn't be too sure. I know it's been speculation since the big announcement in 2014, but Microsoft does not have a good history when it comes to games and when it comes to Java (remember visual J++ and J# ?). Microsoft is not a gaming company (XBox is still in the red). They buy gaming companies because they don't have any gaming talent of their own. Then their interests change. Look at Lionhead Studios for instance.

Fast forward though, with the addition of microtransactions and unifying versions. Microtransactions are the new business model for Microsoft. It's a way to keep getting money from a product without really giving much in return ("buy my pixels, plz"). Even Windows 10 has them, as will all but the PC version (aka Java version). I suspect that once the Windows 10 edition becomes feature equivalent to the Java version, there won't be much drive to keep the java edition going, especially when it relies on LWJGL rather than an in house solution and Java rather than an in house language.

All of this is not wild assumptions, but speculations based on facts. All that said, I'm not going to worry about it too much. I will be keeping an eye out for it but I will keep going until I can't, or until microtransactions become a part of the java version.

lehjr avatar Jun 20 '17 00:06 lehjr

In the mean time, the 1.12 work is coming along slowly. It will get there though.

lehjr avatar Jun 20 '17 00:06 lehjr

Oh. I didn't finish that sentence.

"but Microsoft is pretty big on the whole making lots of money thing", so I could be wrong.

As far as feature equivalent, I don't think I'm the only person that would say that that includes modding. The lack of mods is actually a bigger deterrent to me than the micro-transactions, and either on its own is enough for me to say to heck with that.

I'm not disagreeing with you about anything you said, especially the not about Microsoft being total crap at game, but I still don't think this is going to be the last java Minecraft.

And even if it is, java Minecraft would still have a lot of time left in its life just because of mods. Maybe even years.

eyeonus avatar Jun 20 '17 01:06 eyeonus

Keep in mind that mods are a second class citizen. There's no official modding API and so we have to rely on Forge, and they rely on reflection, which relies on Java. The same thing isn't possible in C++.

But, what we think of mods and what Microsoft thinks of mods are not the same thing. Those microtransactions will be the future of modding. $5 for a set of custom armor, $3 for a sword and Microsoft will get %10 for handling the transaction. That's what their Windows 10 mod marketplace is all about. https://www.rockpapershotgun.com/2017/04/10/minecraft-windows-10-launching-mod-marketplace/

lehjr avatar Jun 20 '17 01:06 lehjr

I am quite aware of the stupid that is the Minecraft Marketplace and exactly what useless things it tries to sell.

Armor and swords are not part of it.

It's all skins, texture packs, and pre-made worlds.

eyeonus avatar Jun 20 '17 01:06 eyeonus

Yes, but that's their idea of mods, mods they can make money from. On the other hand, they don't make anything from the mods for the PC version. It's unlikely the mods drive sales. Once you buy the game, you don't need to buy more copies to use mods.

lehjr avatar Jun 20 '17 01:06 lehjr

That's not my point.

I know they're all about the microtransactions.

My point is that they're trying to whet their whistle with cosmetic stupidity, not with things that would actually have an effect. (Like swords and armor.)

I beg to differ that mods don't drive sales. I bought this game because I saw the cool mods. I've literally never played vanilla Minecraft.

eyeonus avatar Jun 20 '17 01:06 eyeonus

They've already said as much, that their plans for the future of modding is that mod marketplace. It won't just be cosmetic packs, it will be third party created content.

Jagex went the same way. For years, they spent time and money on fighting real world transactions in Runescape. Then they were bought out by an investment firm and run by the former CEO of Paypal. Microtransactions were introduced almost overnight. When Transformers Universe came along, it was built around microtransactions.

lehjr avatar Jun 20 '17 02:06 lehjr

It feels like you're arguing with me, which is weird because I've already told you multiple times that I know all of that, and I agree with you.

I just don't think this unification thing is a death knell to the original Minecraft.

eyeonus avatar Jun 20 '17 02:06 eyeonus