What are you working on currently? [2016]

This hand car now jumps:

You can test it here: https://www.roblox.com/games/359810752/does-it-work

There’s no regen though, so you will need to rejoin each time.

7 Likes

Working on a small side project when I have time.

Dynamic and real-time.

14 Likes

Is this a new roblox feature or did you union those piece by piece?

See:

In other words, he didn’t build the fragments manually.

1 Like

Real Time CSG???

2 Likes

Think about it, how would he have been able to cut down the CSG creation time from like ~seconds to less than the length of a physics step in such a short time? He’s probably generating the fragments in a more straight-forward way.

I thought about it long and hard.

Those fragments can’t be created with normal parts, unless he’s using a ton of welds and skillfully removing all outlines such that each fragment is actually composed of multiple parts and wedges while appearing to be a single part.

He mentioned “dynamic” and “real-time”, which means if they are CSG and not comprised of multiple wedges, they are clearly not pre-unioned and therefore the closest thing we can assume is real-time CSG.

Why would you doubt our roblox admins =o

Not really. CSG’s physics data is made up of convex hulls that are stuck together. If you are comfortable making the visual transition from the real mesh to a collection of convex hulls, then destruction becomes easy.

Basically, slicing Convex objects with a plane and stitching them back together is a very fast process that can be done in real time. At impact position, I pick a few planes to generate the impact zone, and break along those planes. So no, this is not a Real-Time CSG demo, this is a separate destruction project I’ve been experimenting with.

What do you anticipate it’s practical use could be?

The gifs were pretty good demonstrations of a practical use. Deformable, destructible and fracturable environment is probably the most common case.

Oh… but that’s a very generic use. I don’t think it’d run so fast if I wanted to do something like blow a hole in a wall with a rocket… would it?

I think it’s a cool feature but I’d rather see a custom triangle count for Unions :slight_smile:

1 Like

I mean usually the Generic is harder to do than “specific”. Why do you think it would be slow when you want to blow a hole in a wall?

Because there could be a corner (Ceiling, Wall1, Wall2) and if I blow up the center of it I’m scared the server will have a slow time processing it.

Kinda weird to judge a project like that on its usability by the performance that you think it will have

1 Like

The whole reason for using mesh bisection rather than some kind of “Real Time CSG” is because of the simplicity and speed of it.

  • Ceiling, Wall, Wall would be around 3 - 5 convexes that something would hit and split maybe 3 times on each convex. If this project can’t handle that in real time, than it’s not worth doing it.
  • This is simply a side project for now, but when I have some time next I’ll do some performance analysis on the general algorithm.
  • The prototype I have running is extremely unoptimized, and it won’t be that hard to make it run even faster.

Bottom line -> Convex Bisection is cheap.

1 Like

Excellent!

So how does this work Instance-wise? I know you aren’t unioning it but is it going to be considered a Union by it’s className or something?

Dunno yet. What I have right now is a big hack that re-uses a lot of CSG implementation. The way I do it is this:

  1. Physics Step Runs detects a break and generates broken parts and DON’T SOLVE collisions-> Pauses Physics step.
  2. I generate newly broke parts (basically the broken parts become brand new instances)
  3. I match broken parts to welds/hinges that their should belong to (Meaning if you create welds that point to World-Origin, this won’t work)
  4. The last PhysicsStep re-runs to handle collisions with the new geometry so that momentum is conserved.

I think discussing implementation like instances at this point is way too early because this project is literally a side thing I have somewhere on my branch that isn’t on anyone’s list of things being released any-time soon. If this ever becomes a part of ROBLOX it will be completely re-written from what I have right now. The only thing that would remain intact is the general convex-splitting tech.

1 Like

I for one am all for it. This is the next step in dynamic environments and would really help ROBLOX with its aesthetic.

Currently working on a database bot that’s integrated with Discord, and will be used for my games database.

With the integration with discord, I’ll be able to request data, modify it, and download backups automatically from Discord. I’ll even be able to add twitter codes and more once I add them.

Sort of some pictures of me executing commands. (The json extends past the area because its on Linux, and it likes to mess up some webpages.)

3 Likes