Microblocks; Good? Bad?

  • Please make sure you are posting in the correct place. Server ads go here and modpack bugs go here
  • The FTB Forum is now read-only, and is here as an archive. To participate in our community discussions, please join our Discord! https://ftb.team/discord

MagicalMidge

New Member
Jul 29, 2019
24
0
0
**FILLER INFORMATION LOOK BELOW IF YOU WOULD LIKE MY PREDICAMENT

Okay, before I start I would just like to say with many of my other posts I do not exactly have all of the time in the world to proofread what I type 100 times, if I make a spelling error or grammar error by all means correct me and I shall correct it, however do not get mad if these errors occur.

I am fairly established with mods and modding (I say this lightly) meaning I am not a complete newbie to mods but I would not class myself as someone who plays exclusive modded minecraft. I have recently been playing on my FTB server which is running the latest/recommended version of the MindCrack FTB pack and I have begun work on a factory of sorts, a place to centralize things (currently I am in a very small hole producing uu matter and wanted a physical building to house things in) so I traveled far and wide to find a plains biome as I wanted to get into all kinds of things that required a plains biome.

I have started work on a fairly sized factory and would like some information revolving around RedPowers' micro blocks, I have heard so much about them, apparently they are tile entities, apparently they cause huge memory issues, apparently they are classed as full blocks just the rest of the texture is transparent.

**SUMMARY OF ABOVE

I know these things are generalized, it could cause huge problems for some people and none for others, but lets just say that the answers needed are based on a computer that is running the game at a solid 30fps on everything maxed, if using microblocks would it drop the frame rate or do nothing to it (or at least nothing more than normal blocks would)

All I need to know is:
1. Do microblocks cause framerate issues?
2. Do microblocks cause memory issues if so, client or server side? (the server I am playing on is my own I do not wish to cause unnecessary problems for the world.)

\/ THIS ONE IS IMPORTANT - I COULD BE WRONG ABOUT MANY THINGS. PLEASE DONT ANSWER IF YOU ONLY THINK IF YOU ARE POSTING PURELY BASED ON OPINION PLEASE STATE THAT, STATE THAT IT ISN'T FACT BUT YOUR OPINION
3. Are microblocks classed as tile entities? (My personal thoughts are, I see why people would say they are because they can be placed in many different orientations and such but I personally think at this point that they are not because: Yes they can be placed in different directions however, once placed they do not and cannot change their appearance. My understanding of a tile entity is something that is held in memory/ is not hard wrote to anything because it can change at any time or is changing such as minecarts, they as I believe at the moment are tile entities because they are things that are placed in the world but are able to change their positions, I also believe that when a block is placed in a chunk with these blocks: fences, stairs things like this. When a block is placed in the same chunk it performs a chunk update checking then more thoroughly in that specific chunk, checking if the block was placed next to any of these blocks and it there was it checks if it is a block that would cause it to connect (fences) or change orientation (stairs) if these things are 'true' then convert it to a tile entity while it changes then turn it to a normal block.) Again as I said I could be incorrect about this but I really dont want people stating opinions as facts, if you know definitely that your answer is correct then please tell me but if it is just an opinion please, dont waste your own time and dont waste mine (I know that sounds harsh but I am just being brutally honest with you)

Thank you for your time. MagicalMidge ;)
 

MagicalMidge

New Member
Jul 29, 2019
24
0
0
Both popular implementations of Microblocks use tile entities. Facades are not.


Sorry, both popular implementation of microblocks? I believe you mean 2 separate mods if so I was talking about RedPower and was not aware of any other mods that did it, that is why I didnt specify in the title. If this is not what you meant then I do not know what you meant sorry ;P

I said to myself before posting this if I get an answer saying they are tile entities then it would cause more performance problems than normal blocks. Would I be correct in assuming this? Or to better word it, if you have used RedPowers microblocks have you noticed performance drops when using them?
 

Jess887cp

New Member
Jul 29, 2019
922
2
1
Ahh okay, thank you. I just did a search for the imibis microblocks and it came up. I have never seen them before however ;P

They mostly appear in 1.5 packs because redpower isn't updated yet.

I don't know anything about tile entities except that furnaces are included. Or microblocks for that matter.
 

MagicalMidge

New Member
Jul 29, 2019
24
0
0
They mostly appear in 1.5 packs because redpower isn't updated yet.

I don't know anything about tile entities except that furnaces are included. Or microblocks for that matter.


Ahh, yes that I can understand the latest mindcrack pack is in 1.4.7 currently. I have also heard news about apparently RedPower isnt getting updated again (I dont know if it is the truth or a lie) but whatever I take from this post I will wait to build anything until the community knows for definite if it is getting an update or not, would be such a shame for all of the blocks to just disappear especially with the amount of time it takes to place them ;P
 

Revemohl

New Member
Jul 29, 2019
595
0
0
Immibis' version is also more fun because it lets you turn pretty much every block into a microblock. You can finally live inside a house made of Gregtech stuff without going completely insane! About 1/8th of the insanity required
 

power crystals

New Member
Jul 29, 2019
156
0
0
Oh boy. Let's see:

1: Framerate issues: Nothing worse than any other "special" renderer, really. TileEntity renderers are worse than block renderers, but not by a lot until you have a ton of them. Of course, with microblocks, you usually do have a lot of them. Actual impact depends significantly on your hardware, draw distance, and other such details.

When people talk about RP microblocks causing issues though they're usually actually talking about red alloy wire, which can cause issues due to lighting recalculations being somewhat expensive. The other thing you don't want is blocks updating (or worse, chunk updates) which RP blocks are famous for. Static microblocks have neither of these issues though.

2: Memory issues: All TileEntity instances use memory; they're a separate object instance. Will it be significant? Probably not until you get into the tens of thousands of them or more, but even then I'd say it's just "notificable" and not inherently bad. I've never explictly measured the impact here though; don't take my word on the threshold as gospel.

3: Yes, as above they are TEs. But your understanding of them is flawed. TEs are used for blocks that need to track more than four bits of data. Wool doesn't use a TE, nor do slabs, but furnaces do. (There's also the odd case of blocks that have a TE just to attach a TileEntitySpecialRenderer to it, but I think that only matters in 1.5 and the only block I've seen do it is the end portal portal tile, the black inky stuff.) Fences do not use TEs because they look at what's next to them to determine what to link to - they don't need to store that data, so the 4 bits of metadata is sufficient.

Microblocks are TEs because the number and type of blocks contained within are far, far more complex than four bits can handle. Even placing a single cover somewhere turns that block into a TE. The real impact is that each of those TEs must 'tick' individually in order to determine if it needs to do anything. Now, a bunch of covers won't ever do anything, but they need to check in case you suddenly slap a tube in there or something.

I hope that clears these things up.
 

PhilHibbs

Forum Addict
Trusted User
Jan 15, 2013
3,174
1,128
183
Birmingham, United Kingdom
When people talk about RP microblocks causing issues though they're usually actually talking about red alloy wire, which can cause issues due to lighting recalculations being somewhat expensive.
I don't know how Redpower wire can cause lighting updates as it does not affect lighting, and neither do the circuits (except upupon initial placement). Is there a bug in RedPower that causes lighting updates even when lighting does not change? And since RedPower includes insulated wire, then there should be fewer block updates than vanilla (if you bother to insulate, which I think Youtubers should do more often to set a good example), as well as fewer lighting updates compared to vanilla redstone contraptions.
 

whizzball1

New Member
Jul 29, 2019
2,502
0
0
Oh boy. Let's see:

1: Framerate issues: Nothing worse than any other "special" renderer, really. TileEntity renderers are worse than block renderers, but not by a lot until you have a ton of them. Of course, with microblocks, you usually do have a lot of them. Actual impact depends significantly on your hardware, draw distance, and other such details.

When people talk about RP microblocks causing issues though they're usually actually talking about red alloy wire, which can cause issues due to lighting recalculations being somewhat expensive. The other thing you don't want is blocks updating (or worse, chunk updates) which RP blocks are famous for. Static microblocks have neither of these issues though.

2: Memory issues: All TileEntity instances use memory; they're a separate object instance. Will it be significant? Probably not until you get into the tens of thousands of them or more, but even then I'd say it's just "notificable" and not inherently bad. I've never explictly measured the impact here though; don't take my word on the threshold as gospel.

3: Yes, as above they are TEs. But your understanding of them is flawed. TEs are used for blocks that need to track more than four bits of data. Wool doesn't use a TE, nor do slabs, but furnaces do. (There's also the odd case of blocks that have a TE just to attach a TileEntitySpecialRenderer to it, but I think that only matters in 1.5 and the only block I've seen do it is the end portal portal tile, the black inky stuff.) Fences do not use TEs because they look at what's next to them to determine what to link to - they don't need to store that data, so the 4 bits of metadata is sufficient.

Microblocks are TEs because the number and type of blocks contained within are far, far more complex than four bits can handle. Even placing a single cover somewhere turns that block into a TE. The real impact is that each of those TEs must 'tick' individually in order to determine if it needs to do anything. Now, a bunch of covers won't ever do anything, but they need to check in case you suddenly slap a tube in there or something.

I hope that clears these things up.
I love having responsive modders on these forums.
You made my day, PC!
 

power crystals

New Member
Jul 29, 2019
156
0
0
I don't know how Redpower wire can cause lighting updates as it does not affect lighting, and neither do the circuits (except upupon initial placement). Is there a bug in RedPower that causes lighting updates even when lighting does not change? And since RedPower includes insulated wire, then there should be fewer block updates than vanilla (if you bother to insulate, which I think Youtubers should do more often to set a good example), as well as fewer lighting updates compared to vanilla redstone contraptions.

Alright, I'll admit I may be confusing that with something else there since I haven't used RP in months - lighting updates are bad though (Mek had to remove lighting from its cable for this reason), but spamming block/chunk updates which RP definitely does do are far worse.
 
  • Like
Reactions: KirinDave

ryanjh5521

New Member
Jul 29, 2019
198
0
0
Alright, I'll admit I may be confusing that with something else there since I haven't used RP in months - lighting updates are bad though (Mek had to remove lighting from its cable for this reason), but spamming block/chunk updates which RP definitely does do are far worse.
I was about to ask why you didn't use RP but then I realized there was rednet. Personally I love RedNet, I used to use turtles for that stuff but now I can do the same thing much more reliably.
 
  • Like
Reactions: NoobIsMeX

MagicalMidge

New Member
Jul 29, 2019
24
0
0
Oh boy. Let's see:

1: Framerate issues: Nothing worse than any other "special" renderer, really. TileEntity renderers are worse than block renderers, but not by a lot until you have a ton of them. Of course, with microblocks, you usually do have a lot of them. Actual impact depends significantly on your hardware, draw distance, and other such details.

When people talk about RP microblocks causing issues though they're usually actually talking about red alloy wire, which can cause issues due to lighting recalculations being somewhat expensive. The other thing you don't want is blocks updating (or worse, chunk updates) which RP blocks are famous for. Static microblocks have neither of these issues though.

2: Memory issues: All TileEntity instances use memory; they're a separate object instance. Will it be significant? Probably not until you get into the tens of thousands of them or more, but even then I'd say it's just "notificable" and not inherently bad. I've never explictly measured the impact here though; don't take my word on the threshold as gospel.

3: Yes, as above they are TEs. But your understanding of them is flawed. TEs are used for blocks that need to track more than four bits of data. Wool doesn't use a TE, nor do slabs, but furnaces do. (There's also the odd case of blocks that have a TE just to attach a TileEntitySpecialRenderer to it, but I think that only matters in 1.5 and the only block I've seen do it is the end portal portal tile, the black inky stuff.) Fences do not use TEs because they look at what's next to them to determine what to link to - they don't need to store that data, so the 4 bits of metadata is sufficient.

Microblocks are TEs because the number and type of blocks contained within are far, far more complex than four bits can handle. Even placing a single cover somewhere turns that block into a TE. The real impact is that each of those TEs must 'tick' individually in order to determine if it needs to do anything. Now, a bunch of covers won't ever do anything, but they need to check in case you suddenly slap a tube in there or something.

I hope that clears these things up.


Okay, re-opening this post because something just came to mind that I didnt realize at the time.

So you say that tile-entities are basically blocks that have more data attached to them right? I dont see how that would affect fps though, if it is all done on the server why does it affect the client fps, you said it doesnt any more than other special renders so I presume that you mean it does more than normal blocks but no more than the special renders, that is why I am asking about it.
 

Jess887cp

New Member
Jul 29, 2019
922
2
1
Okay, re-opening this post because something just came to mind that I didnt realize at the time.

So you say that tile-entities are basically blocks that have more data attached to them right? I dont see how that would affect fps though, if it is all done on the server why does it affect the client fps, you said it doesnt any more than other special renders so I presume that you mean it does more than normal blocks but no more than the special renders, that is why I am asking about it.

I think it's because the information is sent to the client, an has to be processed as a result.
 

gattsuru

Well-Known Member
May 25, 2013
364
103
68
So you say that tile-entities are basically blocks that have more data attached to them right? I dont see how that would affect fps though, if it is all done on the server why does it affect the client fps, you said it doesnt any more than other special renders so I presume that you mean it does more than normal blocks but no more than the special renders, that is why I am asking about it.
TileEntities are basically any block that has more than an eight-bit block ID and four bits of metadata. //That// only costs memory (on both client and server) and hard disk space (mostly on server), which is fairly inexpensive. That data does have to be transferred to the user, which adds some bandwidth, but most microblocks are pretty simple objects. ((They almost always have to implement a save structure for that data, adding some CPU and disk access on save, and implement a transfer system for the client to hear data, adding some CPU and network requirements.))

However, TileEntities can also do things. Furnaces, for example, burn fuel and smelt material. They have to check status of inventory positions, or change time values, or react to inventory changes. Each action requires an bit of server processing power, and even saying 'do nothing' can take a couple nanoseconds. Some actions occur very rarely, like OnBlockPlaced. UpdateEntity, on the other hand, can happen pretty much every tick. These always add to server processing requirements. Because servers and especially modded servers are often very CPU-bound, this is an issue.

This won't affect client lag -- what the server does, the client can't care about until it's told. However, the client has to wait for the server to tell it things. If the server's CPU is stressed by trying to find new prime numbers, or the server is busy loading files, then the client is going to see unpredictable behavior while waiting for the server to respond. Once the data comes in, it also has to be handled by the client, which complicates things.
 

casilleroatr

New Member
Jul 29, 2019
1,360
0
0
TileEntities are basically any block that has more than an eight-bit block ID and four bits of metadata. //That// only costs memory (on both client and server) and hard disk space (mostly on server), which is fairly inexpensive. That data does have to be transferred to the user, which adds some bandwidth, but most microblocks are pretty simple objects. ((They almost always have to implement a save structure for that data, adding some CPU and disk access on save, and implement a transfer system for the client to hear data, adding some CPU and network requirements.))

However, TileEntities can also do things. Furnaces, for example, burn fuel and smelt material. They have to check status of inventory positions, or change time values, or react to inventory changes. Each action requires an bit of server processing power, and even saying 'do nothing' can take a couple nanoseconds. Some actions occur very rarely, like OnBlockPlaced. UpdateEntity, on the other hand, can happen pretty much every tick. These always add to server processing requirements. Because servers and especially modded servers are often very CPU-bound, this is an issue.

This won't affect client lag -- what the server does, the client can't care about until it's told. However, the client has to wait for the server to tell it things. If the server's CPU is stressed by trying to find new prime numbers, or the server is busy loading files, then the client is going to see unpredictable behavior while waiting for the server to respond. Once the data comes in, it also has to be handled by the client, which complicates things.


You make this sort of thing easy to understand Gattsuru. I have read a couple of your technical posts and you give good explanations I just wanted to say thank you.
 

WaterTipper

New Member
Jul 29, 2019
97
0
0
I don't know much about technical stuff, but using a lot of them in my world DID cause FPS issues for me.
If you have a bad computer, I suggest you use them sparingly.
 

Bigglesworth

New Member
Jul 29, 2019
1,072
0
1
Okay, before I start I would just like to say with many of my other posts I do not exactly have all of the time in the world to proofread what I type 100 times

Opening with "i dont have time to deal with quality" doesn't exactly make people want to keep reading. Why the convoluted post for a simple question? Be concise, and stay thirsty my friends.