Skip to content
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

1.8.9 Porting #681

Closed
lehjr opened this issue Jan 6, 2016 · 128 comments
Closed

1.8.9 Porting #681

lehjr opened this issue Jan 6, 2016 · 128 comments

Comments

@lehjr
Copy link
Collaborator

lehjr commented Jan 6, 2016

1.7.10 has been mostly busy work for awhile now, for mods, for Forge, and for players stuck on the sidelines waiting for updates. Aside from the nightmare of the rendering, there are also several dependencies that may not be available. Maybe it's time to start working on the port and disable the modules that have dependencies that can't be met until they become available. I just hope the performance is better than 1.7.10.

@eyeonus
Copy link
Contributor

eyeonus commented Jan 6, 2016

Just curious here, what exactly is the nightmare with rendering?

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 6, 2016

There are some long winded explanations around but basically it requires a complete rewrite of all the mod's rendering code. The player really won't notice other than the time it takes to get the mod ported, but the developer will pretty much look like this to get it done:

programmer

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 6, 2016

Checked out how bad Numina will be with 1.8.8, so far got it down to 45 errors.

@MachineMuse
Copy link
Owner

Cool, let's prioritize that for now then. I'll have to fiddle with the build scripts to get a proper separation between 1.7.10 and 1.8.8 builds.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 7, 2016

It's the render code that will be the toughest to deal with. I looked at a short block tutorial for 1.8.8 and almost immediately lost my faith in humanity.
Edit:
http://bedrockminer.jimdo.com/modding-tutorials/basic-modding-1-8/model-files/

@MachineMuse
Copy link
Owner

Yes, I remember begging Grum not to do this.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 8, 2016

Just a thought, but how is the player going to charge the armor in 1.8.x?
Edit, looks like there might be some work on Buildcraft for 1.8.x builds, so there must be some sort of power API.

On a side note, LOL!!

  • What went wrong:
    Execution failed for task ':deobfMcSRG'.

    Your Access Transformers be broke!

I was expecting that, just not worded quite like that.

@MachineMuse
Copy link
Owner

I'm sure there is some kind of power API in 1.8+.

Regarding rendering, we will have to circumvent the new rendering system rather than using it directly, since it is limited to cubic shapes - pretty much just like before. Does the updated Forge have working wavefront obj support?

@Xen1290
Copy link

Xen1290 commented Jan 8, 2016

If i remember correctly, in Forge 1.8.9/1.8.8 there is a new rendering system, Made by @RainWarrior.
For power api, the only that exist is the unofficial RF api ported by Progressive Automation devs.

@MachineMuse
Copy link
Owner

Might be a good opportunity to go power-free instead. Limit modules by power generation of a generator module, instead of batteries.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 8, 2016

Yes, it appear according to one of the issues on Forge's github. As far as power goes, an API is one thing, a way to generate it is another.

@MachineMuse
Copy link
Owner

Alternatively just keep it as-is and let people charge using MPSA generators.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 8, 2016

They are very slow to charge.
Edit: maybe change their charge rate until there is stable way to charge them externally?

@MachineMuse
Copy link
Owner

ok. We could also finally implement a 'storage' module with a UI that contains several slots which are unlockable by different modules:

  • solidfuel generator module unlocks a slot that can have fuel put in it and generates energy according to the energy value of the fuel (slider between efficiency and consumption rate)
  • subspace energy gate unlocks a slot that can have ender pearls put in them and consumes them semi-randomly (say, 0.001% chance per tick will give the pearls a half-life of about 1hr)
  • backpack module unlocks e.g. a 3x5 inventory in which extra items can be stored
  • crafting table module unlocks slots in this UI instead of creating a separate UI

This was a planned feature from the start but I got frustrated with minecraft's UI system (obviously) and never got around to it.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 8, 2016

Sounds interesting. Looks like this is going to be quite an overhaul. By the looks of it, none of the modules with external dependencies will carry over for awhile.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 10, 2016

Progress so far, LOL!!! : https://gist.github.com/lehjr/1709dfde96643ee8ff2d

That's Numina and MPS in the same workspace.

@Xen1290
Copy link

Xen1290 commented Jan 10, 2016

Update directly to 1.8.9 if possible

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 10, 2016

Actually, I'm currently considering falling back to 1.8 and starting from there.

1.8.9 isn't really an option at this time. With a new version every day, it's too unstable to target, I'm not even sure about 1.8.8 at the moment since several dependencies including NEI are missing.

@Xen1290
Copy link

Xen1290 commented Jan 10, 2016

I think you can use JEI, every 1.8.9 mod uses It as far as I know, like blood magic, tech reborn and others. I read that is a nei replacement with an easy-to-use API. Maybe @mezz can clarify.

@mezz
Copy link

mezz commented Jan 10, 2016

1.8.9 should be the current target for mods doing updates. By the time you finish, 1.8 will be completely dead, especially now that Thaumcraft has updated to 1.8.9.
Mods with JEI support in 1.8.9 include Chisels & Bits, Tinker's, Blood Magic, and ExU.
You can get started with JEI here.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 10, 2016

Well, at least the MCP mappings for 1.8.9 haven't changed for a few days. Wait, "This set of MCP mappings was designed for MC 1.8.8. Use at your own peril." Um...

@MachineMuse
Copy link
Owner

Yes, a few other sources have confirmed that JEI+1.8.9 is the standard to shoot for if we can get this done in any reasonable amount of time. Though there is still much uncertainty about power systems.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 11, 2016

I don't think it's impossible. I wish my skill level and experience were a little more fitting for the task, but I'll learn as I go, as I always do. My biggest setback is a lack of working examples and documentation, making it hard to figure out how to go from "what was" to "what is". Some of it is cleaner with the use of pos instead of x, y, and z, but some things are quite intimidating. And ffs, it's like someone is getting a commission for every json file needed.

Right now, the only working example I have to work from is this:
https://github.com/MightyPirates/TIS-3D

It does have a couple of things though, like OBJ rendering.

Edit: for power I'm using the RF API copied from buildcraft's experimental builds.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 12, 2016

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 13, 2016

So it looks like Buildcraft has an Alpha build for 1.8.9. That should be a good start for getting power.

For 1.8.9 I think it would be best to add "optional recipes" so that the default recipes are overwritten on update. That will address the insanity of having to constantly address recipe issues have already been fixed.

@lehjr lehjr changed the title 1.8.8 Porting 1.8.9 Porting Jan 14, 2016
@lehjr
Copy link
Collaborator Author

lehjr commented Jan 14, 2016

Sort of have something rendering, too bad it's stuck to the player:
2016-01-14_12 29 03

@MachineMuse
Copy link
Owner

ahahaha adorable :>

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 15, 2016

Sadly, I'm still looking at what to use for rendering the TinkerTable. Since IBSR's were removed in 1.8 I used a TESR just to see it working in the current workspace. I'm not entirely sure if I can avoid using one, but I'm looking at alternatives.

@lehjr
Copy link
Collaborator Author

lehjr commented Jan 15, 2016

The armor models will be the next challenge. I'm reasonably confident that will be easier. On a side note, the 1.8.9 mods seed to have more than doubled in the past week.

@lehjr
Copy link
Collaborator Author

lehjr commented Mar 28, 2016

This is what I was talking about with the wall of warnings: https://gist.github.com/lehjr/d1acec7f03bd1d3e62f6

@lehjr
Copy link
Collaborator Author

lehjr commented Mar 31, 2016

decided to hold back on 1.9 at least until I can get 1.8.9 to a beta state. I still need to write a JEI recipe handler (in progress), fix the Lux Capacitor, and fix the power fist rendering (maybe use item entity?) first. I'm not entirely convinced the current OBJ model rendering will work for the armor since groups seem to be tied to blockstates. The JEI recipe handler is the priority at the moment, since it seems players want to be able to craft items.

@Xen1290
Copy link

Xen1290 commented Mar 31, 2016

@lehjr If you need help with JEI, I think that @mezz is the right guy.

@lehjr
Copy link
Collaborator Author

lehjr commented Apr 7, 2016

finally got enough quiet time to get the recipe handler working. :D

@lehjr
Copy link
Collaborator Author

lehjr commented Apr 14, 2016

I'm gonna push out the update for Numina with the recipe handler this weekend. In the mean time I want to see what I can do with the model rendering. The big thing is to resize the textures without hosing the UV mapping.

Edit: looks like as long as the textures are re sized by stretching, the mapping should stay the same for the OBJ models.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 1, 2016

I'll be working on a 1.9.4 port in the next couple weeks. From a gameplay perspective, the biggest issue of the moment is the lack of high end power generators, making charging anything but the most basic power level nearly impossible. For 1.8.9, I'm using Advanced Generators and Pressure pipes.

From a development standpoint, I'm going to need to fix a couple of things first, like the recipe handler which is missing the ability to place the items in the crafting interface as well as fixing the handling of recipes. There's also a weird behavior where if the first line of the recipe doesn't have all 3 placeholders used, the recipe displayed is rotated and invalid.

The model issues will likely be addressed in 1.9.4. The power fist model needs to be fixed. I don't know if we'll ever get animated item models back again though. The other thing I'm not sure about is the customization for the armor models like we had in 1.7.10. I'm just not even sure how to implement it.

Also, on the Lux Capacitor. I'm thinking about getting rid of the custom color for it and maybe just having a couple preset colors. In doing so, we can completely eliminate using a TE and a TESR, allowing these to be useful for base and tunnel lighting without really effecting performance. I'm also considering changing the recipe setup a bit so that there are both builtin/default recipes that will get overwritten on loading and optional additional custom recipes to help eliminate the bug reports for recipes that have already been fixed but don't get overwritten.

@Lordmau5
Copy link

Lordmau5 commented Jun 2, 2016

Also, on the Lux Capacitor. I'm thinking about getting rid of the custom color for it and maybe just having a couple preset colors. In doing so, we can completely eliminate using a TE and a TESR, allowing these to be useful for base and tunnel lighting without really effecting performance.

Or you can have a config option to allow both variants.
The FastTESR should not make a huge impact on those, as far as I know (well, it strongly depends on how many lights you place down in the end)

Technically I'm rendering (5x5x5 - 3x3x3) FastTESR models on one tank in my mod as well and it doesn't cause any visible lag.

Still, I'd like to page @RainWarrior on this, since he's a bit more experienced with rendering and that stuff, iirc :P

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 2, 2016

I did an experiment with the current setup and it took about 50 or so before I started seeing lag on my PC. A higher end video card would take more, but the point is better optimization. Currently the only thing the TESR is being used for is the colored lens, the model itself is a JSON model, but it doesn't always work. And quite frankly, when it comes to the rendering code, I'm not just horrible at it, I'm short-busing it all the way.

@Lordmau5
Copy link

Lordmau5 commented Jun 2, 2016

Is the newest code on your Github as we speak?
I wouldn't mind taking a crack at looking over it (and perhaps even going as far as hitting it up in a 1.9.4 repo)

@eyeonus
Copy link
Contributor

eyeonus commented Jun 2, 2016

*affecting performance

As far as limited colour options are concerned, if you decide to do that, I'd suggest going with the standard 16, possibly excluding black.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 2, 2016

Be warned, this code is such a mess that it may cause paralysis, temporary blindness, and insanity (no really, I'm not exaggerating):

MPS code here: https://github.com/lehjr/MachineMusePowersuits/tree/1.8.9
Numina code here: https://github.com/lehjr/Numina

@lirannl
Copy link
Contributor

lirannl commented Jun 5, 2016

If an issue of yours with 1.9.4 is power, there's EnderIO. I absolutely LOVE that mod, it has vibrant capacitors, and vibrant energy conduits transferring up to 20k RF/t. High end enough?

By the way, EnderIO did some fancy stuff with rendering. If that helps in any way.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

I love EnderIO, but a fully charged power suit with maxed out power storage can hold millions of RF per piece and it would take several top end generators and days of charging. My last setup in 1.7.10 was using a Mekanism fusion reactor. My current setup in 1.8.9 is using Advanced Generators Steam Generator with bronze turbines and 2 heat exchangers with lava pumping from the nether and an EnderIO wireless charger.

@lehjr lehjr closed this as completed Jun 6, 2016
@lehjr lehjr reopened this Jun 6, 2016
@Xen1290
Copy link

Xen1290 commented Jun 6, 2016

@lehjr maybe you can use the creative capacitor bank from EnderIO or debug item+MFSU from IC2 to charge items.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

@Xen1290 for power I was referring to actual gameplay as a regular player would play. Without the ability to charge the armor, it becomes useless rather quickly and likely would be unused, and not generating the feedback I need to find and fix issues. I just took a couple weeks off from working on the mod, to work with the mod, playing with it as an actual player to find and fix issues. The recipe handler was horrible and there were broken plating recipes that I didn't know about. I also found the tooltips for the power are missing. I fixed the recipes and the handler, but the broken tooltips are still on my todo list. The hoe module also seems a bit off (it's supposed to be able to do more than a 1x1 square). I'll probably fix those last 2 issues before moving to 1.9.4.

@Razorskills
Copy link

If you you are thinking of making your own armor charger, maybe an armor stand that you could right click and have it transfer armor and power tool onto it, maybe burn coal, or hook up your own generator to it. But also allow rf pipes to hook up from an external mod.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

No, I'm merely pointing out that the top tier power modules require more than simple generators and that without those, the mod receives less usage than needed in order to get the bugs worked out. There are MPS modules for charging, but they are quite underwhelming. If I were to add any further methods of charging, it would likely be through modules as adding external devices doesn't fit well into the theme of the mod. An armor stand that does charging would be better as a stand alone mod as there are other armors out there that use power.

The problem with implementing high tier charging in MPS is balance and mod interaction. If you add an internal method of charging at the highest level possible, then those high end power mods really don't have as much draw to them. Not only that, but the armor itself could end up being a source of infinite power. It would really nice to implement the EV Capacitor, which would become the highest tier power system, but again balance and power issues.

Charging is much more problematic than you would imagine. In fact, there is a partially implemented coal generator in the code, but in order to make it balanced, it needs to put out the same amount of charge as a stand-alone generator, which isn't much. Keep in mind though that you can also use charged devices as power sources by carrying them in your inventory, such as EnderIO capacitor banks and various devices from IC2.

@Xen1290
Copy link

Xen1290 commented Jun 6, 2016

Oh sorry, now I understand what you mean

@lirannl
Copy link
Contributor

lirannl commented Jun 6, 2016

I still don't get one thing - is enderIO's Vibrant tier too low for you?

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

@lirannl there's no high tier generators to go with them. Right now, in my actual gaming setup, the Advanced Generator setup is producing over 10k RF/tick. EnderIO has no such power generation. Yes, you can use capacitor banks to store power, but you still need a way to charge them in a reasonable amount of time.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

Top tier MPS armor piece stores 50 million RF for each piece. So the question becomes how do you charge 250 Million RF in a reasonable amount of time.

Edit: I mean without using top tier power generation mods.

@Lordmau5
Copy link

Lordmau5 commented Jun 6, 2016

I think when you have "Top tier MPS armor", you also have "top tier power generation" O_o

//EDIT: Also, one Endergenic Generator setup from RFTools can yield to ~25k RF/t or even more.
Besides taking in Ender Pearls it's not that expensive (heard this from my friend btw)

//EDIT 2: Taking 250m RF into account for the full armor, + 25k RF/t from the generator:
25k RF/t * 20 => 500k RF/s
250 000 000 RF / 500 000 RF/s => 500s

So around 8 minutes.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

Not without relying on mods that may not be out. With "Top tier MPS armor" you have top tier power consumption and storage capability, but very low tier power generation capabilities in the mod itself.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 6, 2016

@Lordmau5 right, but again, that would be considered top tier generation rather than something like EnderIO's Stirling Generator at around 20-60 RF/t where it would not be considered a reasonable about of time.

@lehjr lehjr closed this as completed Jun 7, 2016
@lirannl
Copy link
Contributor

lirannl commented Jun 11, 2016

@lehjr
I could just go overkill with the sitrling generators. I could do crazy stuff with mana and convert it to RF. Leave filling up a vibrant capacitor bank to the player. The point is, a full vibrant capacitor (or a few, or a wireless charger hooked up to a power grid) can definitely charge a power suit in a timely manner. As I said, the player will have mods to generate RF, and could always go nuts and build a LOT of generators or high tier ones (what if extra utilities 2 reimplements the extra utilities generators?). Stop worrying about that, the vast majority of players use mod packs, which will likely contain enderIO and Rftools, or some other way of generating a lot of rf.

@lehjr
Copy link
Collaborator Author

lehjr commented Jun 12, 2016

I could just go overkill with the sitrling generators

Sure, at a max of 60 RF/tick you'll need at least 250 of them to make it worth while.

what if extra utilities 2 reimplements the extra utilities generators

The power output wasn't enormous. Fuel consumption scaled with the output and at times became impractical. Even if they come back, it's not likely they'll change the way you charge the armor.

... which will likely contain enderIO and Rftools, or some other way of generating a lot of rf..

Such as? EnderIO has no way of generating a lot of RF since it doesn't need it. I'm still not seeing all that many other options yet. Maybe Mekanism if/when it's done for 1.9.4.

I could do crazy stuff with mana and convert it to RF

or maybe I do some crazy stuff and charge the armor directly with mana :P (probably not, but it might be an option)

Stop worrying about that...

I actually do HAVE to worry about such things as being able to charge the armor. This isn't really a situation where "if you build it, they will come". Things have to be done in a practical manner or there really isn't much point.

Anyway, it's possible that I could implement the EV capacitor which would become the new top tier power storage and then re-scale the lower tiers while not really raising the ceiling much higher. I don't know yet. It may or may not really be worth while to implement.

@lehjr lehjr mentioned this issue Jun 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests