MachineMuse / MachineMusePowersuits

Minecraft mod, take 2
235 stars 103 forks source link

1.12 Planning #804

Open lehjr opened 7 years ago

lehjr commented 7 years ago

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...

eyeonus commented 7 years ago

"Capabilities?"

lehjr commented 7 years ago

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 commented 7 years ago

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

EzerArch commented 7 years ago

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.

lehjr commented 7 years ago

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

EzerArch commented 7 years ago

@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. :)

eyeonus commented 7 years ago

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. ;)

lehjr commented 7 years ago

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.

eyeonus commented 7 years ago

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.

lehjr commented 7 years ago

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.

eyeonus commented 7 years ago

That sounds like a good idea.

MAAAAAAYbe backport changes later on. Maybe.

lehjr commented 7 years ago

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 commented 7 years ago

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.

eyeonus commented 7 years ago

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 commented 7 years ago

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

lehjr commented 7 years ago

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 commented 7 years ago

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

eyeonus commented 7 years ago

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

Doesn't sound like a bad idea.

lehjr commented 7 years ago

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 commented 7 years ago

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/

eyeonus commented 7 years ago

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.

lehjr commented 7 years ago

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 commented 7 years ago

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

eyeonus commented 7 years ago

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.

lehjr commented 7 years ago

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/

eyeonus commented 7 years ago

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.

lehjr commented 7 years ago

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.

eyeonus commented 7 years ago

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.

lehjr commented 7 years ago

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.

eyeonus commented 7 years ago

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 commented 7 years ago

Also, I don't believe Microsoft have ever referred to texture packs, skins, or custom worlds as "mods". At the least I know they don't on the Minecraft Marketplace.

eyeonus commented 7 years ago

And the third party content you're talking about is just texture packs, skins, and custom worlds made by people that aren't Microsoft employees. They haven't announced any plans to support or allow anything that isn't purely cosmetic.

lehjr commented 7 years ago

What would be their incentive to keep it going? I don't see it dying in the next few weeks, but by the end of the year, next year? A lot can happen between then and now.

But even if they do kill it, it won't be a sudden death. You'd still be able to download the Java version but it just wouldn't be updated, which means that forge dies.

No, they did refer to custom items and such as mods. They were working on support for that that for the marketplace. It was in a QA somewhere.

eyeonus commented 7 years ago

Directly from the horse's mouth:

https://minecraft.net/en-us/marketplace/

A store for the creators Discover the latest community creations

For the first time, skins, textures and worlds designed by the community are coming to the store in Pocket and Windows 10 edition. We've made it safe and easy to purchase community-made content for your Minecraft. Buy once, then enjoy it on any Windows 10 or Pocket device, forever.

eyeonus commented 7 years ago

Nothing about additional content. Just cosmetics.

eyeonus commented 7 years ago

As far as incentive, what's been the incentive to keep it going this long? Whatever it is, uniting the the various non-java versions isn't going to make that go away.

lehjr commented 7 years ago

By that logic they would still include card games in windows for free instead of making it a paid addon.

eyeonus commented 7 years ago

Um. They do. I can play solitaire right now. The purchase is to unlock the other kind of solitaire.

lehjr commented 7 years ago

it doesn't ship with any card games.

eyeonus commented 7 years ago

I have windows 10. Yes it does.

lehjr commented 7 years ago

I have 2 pcs here with Windows 10. No cards on either of them.

eyeonus commented 7 years ago

Windows 10, on install, comes with "Microsoft Solitaire Collection" pre-installed, within which it is possible to play the Klondike, Spider, FreeCell, Pyramid, and TriPeaks versions of Solitaire without paying any money.

It's one of the first things I uninstall when I reinstall my computer.

lehjr commented 7 years ago

I don't even have that on either PC, relatively fresh installs on both.

eyeonus commented 7 years ago

image Maybe it's because you're not in the U.S., or maybe it's because I got Windows 10 Ultimate Edition, but either way, it's available in the Windows Store for free, so if you don't have it, you can get it.

Without paying any money.

lehjr commented 7 years ago

I'm in Florida.

eyeonus commented 7 years ago

I didn't say you weren't in the U.S., I offered that as a possible reason for the discrepancy.

Until just now, I had no idea where on the planet you lived. For all I knew, you could be my next-door neighbor, or some random dude in Tokyo.

lehjr commented 7 years ago

Is that even installed locally or does that just run through the browser?

eyeonus commented 7 years ago

It's an app, you download.

That's a screenshot of the Store app, not a browser.

You'll notice it says "Offers in-game purchases". It's a micro-transaction-supported free to play Windows Store App. (I hate that I can't edit posts when I'm here on my phone.)

lehjr commented 7 years ago

Store app probably uses Edge under the hood.

eyeonus commented 7 years ago

It's a Metro piece of crap, so I wouldn't be surprised, but Solitaire is a thing that is downloaded. It's its own app. (Also a Metro piece of crap, IMO.)

It's not something that is run within the Store.

Or Edge.