Multi-Block engineering

  • It's kind of crazy, complicated and revolutionary idea at the same time.


    We do have advanced machines now thanx to alblaka. :thumbup:
    We have wires and pipes to connect these machines.


    I think the next step would be a Multi-Block engineering(TM) !!!!11


    It's pretty much like nuclear reactor with chambers in IC2 or blast furnace\coke oven in RC as it is now but on a much bigger scale. Let's say 5x5x5 blocks.


    for instance coal power plant would require:
    1) coal burning chamber( to burn stuff)
    2) water tank
    3) wind generator
    4) transformer to (output electricity)
    5) maybe battery box
    6) maybe kinda chest to store tons of coal


    that very setup would require 2x2x2 or 3x3x3 blocks


    now nuclear plant could require:


    1) Nuclear reactor with chambers
    2) several water tanks
    3) several wind generators
    4) transformer to (output electricity) with coils
    5) maybe mfsu
    6) control panel
    7) pumps for water
    8) etc


    The main idea is to craft blocks that means little or nothing by itself and then to combine them in powerful and complicated machine.
    machines designe could be predetermined (like recipes)
    Simmilar blocks could be used in several machines (like control panels) while some blocks are machine specific ( like nuclear chambers)


    Right now we all pack machine in one block making it more and more expensive to craft but there is an alternative:
    make multiblock machines!


    Free space is not a problem in Minecraft so why not use it ?

    Communication and discussion + constructive critisism = Good Ideas

  • I believe there were like a dozen of threads with same kind of suggestions.
    All those suggestions were denied because of lag issues.

  • I believe there were like a dozen of threads with same kind of suggestions.
    All those suggestions were denied because of lag issues.


    Like i said, depending on how they are designed, they can cause more or same lag than regular machines.


    These machines aren't impossible since a few mods add some of these (TerraFirmaCraft and Railcraft). Heck even vainilla its getting some sort of multiblock "machine" (That Diamond Tower beacon thingy, obsidian portals could probably pass for the same)

  • Let's say we're making a power plant.
    So instead of one normal generator burning its fuel with its simple algorithm we will have:
    1. A furnace/nuclear/geothermal, producing heat.
    2. A boiler to heat water and create steam, it looks for a heat source first.
    3. A turbine consuming steam and creating torque, oh right, it should locate the boiler.
    4. A generator consuming torque and creating EU. Yeah, another proximity check.
    How could this setup be less laggy?


    It becomes worse when you want to upgrade your power plant to add, say, more turbines and generators.


    It's fun, it's interesting, it's complicated. But I don't want to imagine the amount of lag it will create in SMP.

  • ^ You're not really thinking as a programmer -- the CPU cycles it takes to process all that are more than those needed to process a single, simple machine, but they're still perfectly manageable (and any "it looks for..." are pure one-time costs not worth mentioning). You'd need hundreds, or even thousands of such machines to make a noticeable dent in an average computer's available CPU budget.


    It's also perfectly possible to go the TerraFirmaCraft way and just have one specific block that does all the calculating, merely checking on block placement/break whether a required piece of the machine was removed, in which case you have a regular, one-block machine that just happens to take up more space without affecting the CPU budget at all.


    No, the real problem is writing the code to make it all work -- and there's a lot of code that would have to be revisited to make multi-block machines workable (not to mention at least some design to make it make sense to the players).

  • I know that RC coke bricks can lag because they all make checks every few ticks whether they form Coke oven or not.


    Here it could be some universal block that exists in all multiblock machines like control panel or transformer.


    Coding could also form it like a single machine (like cokeoven) and be treated like single machine in code to reduce lags etc.


    Designs are not an issue, since recipes doesn't make much sense either.


    I guess coding is a real problem/ This and a fact that it would make mod more hardcore and maybe less popular.


    The whole idea sounds like IC3 at least


    p.s. there is a "steam power" mod for Universal electricity (still in early beta) that makes smthng similar. Some dude made his first mod with that idea in mind so I dont think that it is impossible

    Communication and discussion + constructive critisism = Good Ideas

  • but they're still perfectly manageable


    This way of thinking is the reason why I can't run minecraft (2-5fps max) on my EEE PC 1000. It's funny, since it can run things like UT2003 just fine, with little-to-no lag.
    I don't want to wake up and find out that IC/RP combination is not playable anymore because new machine designs are causing heavy cpu spikes because of nature of minecraft engine.

  • there are many things between cpu and calculating diferrent stuff for IC2 machines. Things like Os, java, minecraft itself and none of these things are perfect.
    I still have some lags spikes even using hexacore with 16GB Ram.So its all about optimization

    Communication and discussion + constructive critisism = Good Ideas

  • I know that RC coke bricks can lag because they all make checks every few ticks whether they form Coke oven or not.

    That used to be true, but then Forge got hooks for block placement and breaking, so they only have to check at those times -- much cheaper on the CPU.


    This way of thinking is the reason why I can't run minecraft (2-5fps max) on my EEE PC 1000. It's funny, since it can run things like UT2003 just fine, with little-to-no lag.
    I don't want to wake up and find out that IC/RP combination is not playable anymore because new machine designs are causing heavy cpu spikes because of nature of minecraft engine.

    Eee PCs aren't built for processing power -- comparing them to regular computers is useless at best, and specious at worst. Likewise, UT 2003 isn't very CPU-intensive (though I admit I'm surprised an Intel mobile graphics chip is capable of the rendering required -- learn something new every day).


    Minecraft is designed in such a way that it's both CPU and memory-intensive by its very nature -- a single chunk is 16x16x256 = 65536 blocks, all of which need to be tracked in a reasonable way and altered when needed, and that's just a small part of the amount of world that's active at any given time. While this does mean that there is less CPU budget left over for clever things like IC2 generators and the energy net and so on (compared to a game where most things are pre-modeled and pre-textured and only graphics work needs to be done, for which graphics cards are excellent), you're still comparing apples to oranges in terms of CPU time of large machines versus single-block ones. Consider that any block that forms part of a large machine is one where a single-block machine cannot be. And the multi-block machines can still be implemented as single-block devices that check if other, nearby blocks are missing on block break, so they can refuse to function -- which mitigates the required CPU budget considerably.


    As I said, you're not thinking like a programmer. When I say hundreds, or thousands, of machines, I'm not kidding, just like it takes thousands of solar panels to add up to noticeable decrease in ticks-per-second. Of course, people do build thousands of solar panels, and they do complain thereafter, so understand that I'm not fully disagreeing with you, either -- I only think you're overestimating the CPU hit of multi-block machines compared to the programmer cost of altering all the machines currently in IC2, which is massively more important.

  • ...


    You can compare Atom N270 to early Pentium IV CPUs. It's not powerless in any way.


    I might not fully understand the inner workings of minecraft engine, but I can clearly observe performance difference caused by working machines. It is fine when you're talking about SSP or SMP with 1-2 people hosted on a powerful gaming pc, but populated SMP server or slower pc will suffer from those changes. That's bad, and it should be avoided.


    And well, once you hit the hardware/software limitations you can't fix, the amount of work necessary for implementation or optimization of your features is completely irrelevant.

  • Minecraft isn't optimized in any way. Features were always more important than performance. It is obvious by just looking on language used (there are many cases, where using safer "better" languages like Java is better choice than lower languages like C++, video games are rarely one of them).


    Back to the topic, I fully support multi block machines. They add new degree of awesomeness to your builds. BC or RP transportation will give you a lot more lag, than properly implemented multiblock machines. You don't have to check for connection each tick, RC buildings are lag free in SSP and I suspect that in SMP as well. It is a little bit stupid, that building coke oven feels better, than building mass fabricator. Multi block structures are awesome, and we want them ;) (also IC2 for TFCraft would be a really good thing to play).

  • Being not a native speaker i take word "were" as refering to past time. So...


    Ok. just kidding. no means no. too bad...


    /grief

    Communication and discussion + constructive critisism = Good Ideas