Minecraft Plus Physics Is Smashing

By Quintin Smith on March 10th, 2011 at 10:18 am.

*noise of builder sucking air through teeth as he calculates an estimate*

Introversion’s Chris Delay revealed yesterday the project he’s been working at the Cambridge Friendship Club, a weekly gathering of local indie developers. It is, in a nutshell, Delay’s own (voxel-powered) quick’n’dirty take on the Minecraft engine, and then when Delay had gotten it into a workable state he realised he could add rigid body physics (using open-source physics library Bullet) relatively easily. You’ll find the end result below- a video showing what is essentially Minecraft with physics. Go take a look, and thanks to RPS reader “Kieron Gillen” for sending this one in.

Delay closes with this thought- “Wouldn’t it be awesome to play an FPS or a wargame with this kind of totally destructible environment?”

Yes. Yes, it would. A superhero-based dueling game was exactly where my head went on seeing the video- missed laser blasts ripping the tops off of apartment blocks, throws sending your opponent crashing through several buildings, all that. You could even do craters! The mind boggles.

, .

50 Comments »

Sponsored links by Taboola
  1. Bennus says:

    I think that Kieron Gillen reads other sites as well, I wouldn’t trust him.

    Also, nice effects, puts Frostbite 2 to shame… ¬_____¬

    After watching the vid I thought they should do that with Frostbite 2 to demonstrate the tech, but actually they shouldn’t. Taking the destruction entirely out of the battlefield context would lose a lot of the impact (pun intended) when first encountering it (w/ the sound and force feedback or weight of the player).

    • Calneon says:

      I don’t think you realize how much computational power this sort of destruction would take.

    • Hallgrim says:

      Also consider that effects of the destruction have to be approximated and tracked in stages. Forget the computational power required to make these simulations… think about the traffic required to synchronize them between 64 fps players! Pretty sure that is the reason why a house in BFBC2 has 20 or so “destroyable” elements (sections of wall etc) before it collapses. I don’t think it would be any different if everyone had a extra i7 dedicated to physics processing (or a thousand of them).

    • DJ Phantoon says:

      Won’t it be cool in ten years when that’s actually possible?

    • Consumatopia says:

      I’m not sure it’s even the amount of computation power/bandwidth required that’s the problem as the unpredictability of those requirements. Nothing stops a player from creating a world where removing a single block causes every single block in the world to start moving at the same time. You basically have to be prepared for the worst case scenario, resource-wise, happening at any moment.

    • Consumatopia says:

      One thing, though–if blocks can only be connected to each on their six faces, it seems like a huge waste to model their rotations like that. It doesn’t really matter how the individual little blocks roll around–if they turned into spheres or particles once they were disconnected from the building (similar to how minecraft blocks turn into sprites when mined) I don’t think it would make a huge difference to those videos. What I really want to see is huge chunks of the building falling off and being modelled as a single object, not individual blocks.

    • Bennus says:

      @ Calneon
      Whoa there, jump the gun much. I implied a tech demo of Frostbite 2 for marketing and hyperbole reasons, considering the resolution of deformation is reported to be significantly higher. I was not saying ‘this is how Frostbite 2 works’.

  2. Temple to Tei says:

    Saddos like Keeran Gillon only send in tips to get their name in print -you should stop pandering to them.

    Edit: And why do I get a happy feeling when something is destroyed and it turns into cubes? Minecraft so much to answer for.

  3. Spatula says:

    wow. in hl3 now please :-)

  4. The Tupper says:

    That’s Minecraft 2 right there, that is.

    • Peter Radiator Full Pig says:

      I thought it was something better.
      I was all like “These destructable buildings would go great with Introvisions proceduraly generated ones. Youd get a city scape you could destroy.

      Guess who it was made by. :P
      Minecraft is great and all, but I think the game that could be made out of this would be better still.

  5. McDan says:

    This still looks “minecraftian” though? With blocks still floating in the air even when not attached to any other blocks. I’d like to see that sorted out with this thingy-whatsit used here. So then an entire structure could easily be destroyed by removing a few points at the base. More big explosions basically.

    • Premium User Badge

      HermitUK says:

      Once you’d added that, you’d also need to make falling blocks damage standing structures as well. That way, debris from one building collapse would also knock chunks out of ones nearby.

    • McDan says:

      Ah, didn’t thnk of that. So it must also be added!

    • Dozer says:

      I would love to see this. It’s a very impressive video, but it really needs some kind of stress analysis so structures can bend and collapse when you start removing its supports.

      A bit like the structures in World of Goo. That was easier, though, as it is 2d.

    • BAReFOOt says:

      That floating problem is also what I noticed. And I don’t like it, as it destroys the illusion.
      Ok, I’d prefer it being some kind of dynamically fragmented tetrahedrons or balls with bump maps on them anyway. :)

    • Torgen says:

      Well, I *guess* it could be seen as representing twisted remnants of structural supports, etc. It isn’t like we aren’t engaging in HUGE suspensions of disbelief in our games now.

      (I now pine for the superhero game you described above, Quinns. It doesn’t help that I returned to City of Heroes this week to see the new Praetorian content.)

    • Paradukes says:

      I’ve actually been putting a lot of thought into that point for a while. The trouble is, while I think I’ve worked out how to do it (Using GMod as an experimental engine), I’m no where near smart enough to apply it on a massive scale without making the computer call time out every second while it tries to apply the physics to every voxel at once.

      The way I see it working goes something like this: the strength of a bond between one voxel and an adjacent one is defined by a variable that, for the sake of argument, we’ll call “Stability”. Each voxel draws it from whichever adjacent block has the most stability already. Of course, you need to have a block at some point that has infinite stability, which would presumably be the ground. If you want to be able to blow craters, you’d need to set the infinite stability block as bedrock and have less stable dirt and rock sitting on top of that, but I digress.

      Now, every block would have two important variables here; the stability that’s being provided to them by their fellows, and the stability that they, in turn, provide. Here, of course, there would be the opportunity to have different materials behave quite uniquely for building materials, since something like rock or concrete would do an excellent job of passing stability upwards, but might be relatively crap at passing it laterally, requiring internal iron or steel reinforcing to build outwards.
      In any case, the blocks would generally pass on most of their stability upwards, a smaller portion of it sideways, and a very small amount downwards, so it would be very difficult to have a building suspended under another. Difficult, but not necessarily impossible.

      Now blocks would require a certain amount of stability before they lose cohesion and disconnect from their fellows. Whenever required, each block would recheck its current stability, and if the minimum amount is not met, suddenly it’s raining voxels.

      Of course, this is an incredibly basic and simplistic way of rendering stresses, and of course I’m no physicist, but in theory it’d be relatively realistic. The main problem is, it’s horribly inefficient. Checking blocks in the order of magnitude something like Minecraft calls for would bring any normal computer to a standstill, at least momentarily. I could imagine ways of streamlining it, however; The calculations could be staggered, so that the computer isn’t overwhelmed by tens, hundreds, if not thousands of rechecks at once. Furthermore, the blocks wouldn’t need to be constantly rechecked. Once they’re settled into place, you can assume they’ll keep standing indefinitely, and can skip checking them. When an event happens, like placing or removing a block, it would cause any immediately adjacent blocks to be rechecked, and if their values change significantly, the blocks adjacent to them would be rechecked as well. It would radiate out quite considerably, but once it reaches something with a high level of stability, like the core of a building or the ground, it would dampen out.

      Now… I honestly don’t know why I’ve written all this down, and here of all places. I think it was to wrap my own head around the concept, but regardless, I’d love it if someone smarter than myself used this to build a proper voxel-based stress system. If anyone’s up for it, please let me know, I’d love to help out in any way I can :)

    • Soon says:

      It’d be more realistic if the structural steel remained undamaged and the brickwork fell to pieces. That would look pretty awesome, actually. Being left with the geometric skeletons of buildings would add some atmosphere.

    • Paradukes says:

      True say :)

      I’m sure it could be arranged :P

    • Sivart13 says:

      @Paradukes – A guy from Volition gave a talk at GDC about the stress system in the new Red Faction, describing something very similar to your approach.

      Of course, instead of a billion little blocks, their smallest physics unit is usually an art asset like a beam or a plank. But generally, everything has a ‘link’ value to the thing supporting it, and those links break whenever the forces on that object exceed the link force. The link-chain continues until something connects with the ground.

      The performance optimization he described was to consider everything in “layers” — compute the stress for everything 10-away from the ground, then 9-away, 8-away… until you get to the ground and start again. The game loop then tries to evaluate as many layers as it can in the time allocated per frame.

      I’m not sure if he put the slides online.

  6. J. says:

    Collapsing buildings make me want a proper scifi-less sequel to Silent Storm even more.

    • Aganazer says:

      The first thing that comes to mind is X-Com. Destroying it could be even more fun than building it.

  7. Leperous says:

    The blocks don’t look like they accelerate realistically/at all when they fall, and yes, there are those free-floating blocks in places. Would definitely love to see a textured skyscraper punctured by a meteorite using this tech!

  8. Avenger says:

    Now, if they do object based physics (instead of block based like this) it would totally be awesome…

  9. Quasar says:

    While visually cool, I think there’s still more that needs to be added – like one commenter said above, blocks shouldn’t hang in mid-air if there’s nothing to support them.

    I still much prefer Red Faction: Guerilla’s destruction, where detached debris would crash down through all the floors under it, and anything that wasn’t properly supported would collapse under its own weight.

  10. mrjackspade says:

    Stop effing around with Minecraft and make subversion already!

  11. Inigo says:

    I’m pretty sure Meqon already did something extremely similar to this.
    Seven years ago.

  12. Chunga says:

    There is an arena shooter in the works, which has terrain destruction: http://www.lexaloffle.com/bbs/?tid=201

    • Premium User Badge

      shoptroll says:

      I think they’ve linked to Voxatron before. But, that’s also what I was thinking of when I saw this. Just… this tech demo is Voxatron on a bigger scale I think?

  13. Mockturtled says:

    Voxels are the best anything of everything.

  14. tanith says:

    The problem is that it looks as if free blocks have no effect on rigid blocks and that takes half the fun out of it and that is also the reason why it works so fluently in this video.
    If you’d take into account the force with which a free block would act on a structure you’d have to take into account something similar as lattice vibrations because the rigid blocks could loosen up (given a strong enough force) and would press against othe blocks next to them.
    That kind of avalanche effect would kill the cpu.
    You’d also need to compute how much force it would take to get a free block from a rigid block in a structure because if you’d build such a tower with free blocks only i.e. without any connection to each other it would lag and it would be totally unstable.

    Sorry to spoil the fun.

  15. Longrat says:

    This + Red Faction Guerilla style building collapse = THE BEST THING SINCE SLICED BREAD

  16. Cooper says:

    What we really need is the Red Faction Guerilla style buildings (Which were done surprisingly well) and voxel landscapes, and things become very happy.

  17. Pliqu3011 says:

    Not impressed until buildings can collapse under their own weight.

    • Lightbulb says:

      I think we are a way of convincing Finite Element modelling in real time…

  18. Stardog says:

    That’s not voxels … this is voxels – http://www.youtube.com/watch?v=_CCZIBDt1uM
    If I was a billionaire I’d give this guy £20m.

  19. Coriform says:

    For some reason, reminded me of Blast Corps. I wish there were a Blast Corps 2…

  20. Dances to Podcasts says:

    This:

  21. The_B says:

    I was totally the one who posted it first and this Kieron person nicked it from me.

    (I won’t mention how he’s probably following Introversion’s Twitter too where I got it from but HUSH)

  22. shagen454 says:

    Attributing Minecraft to this “experiment” spoils the neatness of the project. One of the many factors that makes Minecraft great is the lack of realistic physics, even in the water, it’s ridiculously punchy.

    Now, please just give me a little Subversion, please, please…. pleeeease?

  23. Urthman says:

    Voxels are obviously the future. Imagine the games we’ll get when computers are powerful enough to do this with worlds built out of blocks that are a subjective centimeter cubed, each with it’s own mass, density, elasticity, hardness, etc.

    • othello says:

      Actually, voxels are not the future. Let’s use your metric of each voxel being 1cm^3. Even just allocating one byte per voxel, 1 cubic meter would take up 1mb of RAM. Let’s assume you would have a game only an hour long. The average human walks at 5km/h, so you are already up to 5gb of memory for only allocating voxels in a 1 meter cubed area around the character. This is very conservative estimate and is already prohibitively expensive (32-bit machines can’t even address 5gb!).

      Now, if you add properties for each voxel, assuming you are packing them in half-floats of 2 bytes each, you would be using at least 8 times as much memory.

      Not that this tech demo isn’t awesome.

    • Grygus says:

      @othello: Storage is a trivial problem, in that it is always solvable with time. My understanding is that we can already store voxels in less than 1 bit through compression… as compression techniques and/or storage improves, this will only get better. If nothing else, eventually storage will be so cheap that it simply won’t matter at this scale.

  24. satsui says:

    Is it wrong that my first thoughts were “Oh, we could recreate the World Trade Center and see if the reports are accurate?”

  25. MarcusCardiff says:

    Please explain to me why this game is such a religion to so many and why disliking it makes me as much a “!heretic” as Galileo.

    • Jezebeau says:

      Because it’s given them pause to think of something much more fantastic than the demo itself.

  26. EthZee says:

    Eh.

    Beat this and I might be impressed: http://www.youtube.com/watch?v=mhq_OXh2iq8

  27. kennycrown says:

    You’d also need to compute how much force it would take to get a free block from a rigid block in a structure because if you’d build such a tower with free blocks only i.e. without any connection to each other it would lag and it would be totally unstable.