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

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.



10/03/2011 at 10:28 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).
10/03/2011 at 11:09 Calneon says:
I don’t think you realize how much computational power this sort of destruction would take.
10/03/2011 at 13:27 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).
10/03/2011 at 14:12 DJ Phantoon says:
Won’t it be cool in ten years when that’s actually possible?
10/03/2011 at 20:20 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.
10/03/2011 at 20:28 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.
10/03/2011 at 21:25 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’.
10/03/2011 at 10:29 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.
10/03/2011 at 10:34 Spatula says:
wow. in hl3 now please :-)
10/03/2011 at 10:36 The Tupper says:
That’s Minecraft 2 right there, that is.
10/03/2011 at 13:47 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.
10/03/2011 at 10:38 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.
10/03/2011 at 10:57 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.
10/03/2011 at 11:05 McDan says:
Ah, didn’t thnk of that. So it must also be added!
10/03/2011 at 11:39 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.
10/03/2011 at 12:39 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. :)
10/03/2011 at 18:51 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.)
10/03/2011 at 18:53 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 :)
10/03/2011 at 21:43 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.
10/03/2011 at 22:13 Paradukes says:
True say :)
I’m sure it could be arranged :P
13/03/2011 at 02:44 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.
10/03/2011 at 10:41 J. says:
Collapsing buildings make me want a proper scifi-less sequel to Silent Storm even more.
10/03/2011 at 16:00 Aganazer says:
The first thing that comes to mind is X-Com. Destroying it could be even more fun than building it.
10/03/2011 at 10:56 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!
10/03/2011 at 11:03 Avenger says:
Now, if they do object based physics (instead of block based like this) it would totally be awesome…
10/03/2011 at 11:03 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/03/2011 at 11:10 mrjackspade says:
Stop effing around with Minecraft and make subversion already!
10/03/2011 at 11:14 Inigo says:
I’m pretty sure Meqon already did something extremely similar to this.
Seven years ago.
10/03/2011 at 11:33 Chunga says:
There is an arena shooter in the works, which has terrain destruction: http://www.lexaloffle.com/bbs/?tid=201
10/03/2011 at 17:13 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?
10/03/2011 at 11:34 Mockturtled says:
Voxels are the best anything of everything.
10/03/2011 at 12:04 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.
10/03/2011 at 12:14 Longrat says:
This + Red Faction Guerilla style building collapse = THE BEST THING SINCE SLICED BREAD
10/03/2011 at 12:45 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.
10/03/2011 at 13:04 Pliqu3011 says:
Not impressed until buildings can collapse under their own weight.
10/03/2011 at 18:42 Lightbulb says:
I think we are a way of convincing Finite Element modelling in real time…
10/03/2011 at 14:02 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.
13/03/2011 at 02:00 bruunoalex says:
You beat me to it
10/03/2011 at 15:06 Coriform says:
For some reason, reminded me of Blast Corps. I wish there were a Blast Corps 2…
10/03/2011 at 15:07 Dances to Podcasts says:
This:
http://www.youtube.com/watch?v=O3dk1qXYMZ4
10/03/2011 at 15:35 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)
10/03/2011 at 16:35 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?
10/03/2011 at 17:31 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.
10/03/2011 at 18:14 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.
11/03/2011 at 02:02 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.
10/03/2011 at 18:35 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?”
10/03/2011 at 18:50 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.
11/03/2011 at 01:31 Jezebeau says:
Because it’s given them pause to think of something much more fantastic than the demo itself.
10/03/2011 at 19:25 EthZee says:
Eh.
Beat this and I might be impressed: http://www.youtube.com/watch?v=mhq_OXh2iq8
11/05/2011 at 07:43 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.