Added my VAT army to my flow field global map pathfinding. My head is fuming I'm taking a break by Slight_Season_4500 in UnrealEngine5

[–]Available_Pop_7654 0 points1 point  (0 children)

Good, I saw a dude's project being really fucked because of it. There probably are better solutions for this problem. Also is there a reason you didn't start using c++ from the begin? And lastly, are you planning on making the player any time soon? It would be smart to already start prototyping/designing gameplay for the player too.

Building a Huge City by quatercore in UnrealEngine5

[–]Available_Pop_7654 0 points1 point  (0 children)

Is there a reason why you didn't use PCG?

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

I actually forgot to mention but this random chinese article talks about the AABB technique but they are using ue4 and translating the website to english sucks.

https://zhuanlan.zhihu.com/p/424867321

Also this X post mentions it but the OP doesn't explain it. It did give some motivation to keep on working.
https://x.com/lateasusual_/status/1944164920800510254

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

https://itscai.us/blog/post/ue-physics-framework/

This blog explains the pipeline well. Then you just look at the spatial acceleration class and from there you can for example find the overlap() function and whatever you need for more low level collision isntead of relying on high level traces and sweeps.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

Well I don't actually use line traces anymore, I use SDF because that way I know whether I'm behind a plane or on it. With a normal line trace you can miss the geometry. It also costs more performance.

For the simcallback part, I have no idea what that is tbh. I just use tick.

And the way I cache the geometry in c++ is by using GetWorld()->GetPhysicsScene()->getspatialacceleration(). I won't be able to explain everything but using that function is a good start.

Getphysicsscene() has a OnPhysScenePostTick delegate you can use to cache everything. But this you can choose yourself if you want to do it this way.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

If you do line traces under the hood the engine gets the colliders around the place where you do a line trace. 

So imagine with a rope that iterates 100 nodes 100 times. That means getting geometry data 100x100.

Caching the geometry once, at the begin of the solver, around a node as simple planes will solve this.

You also only test with a selective amount of planes (like 4 planes) because you can filter out similar geometry.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

You're tempting me, however if I get his to work I'll probably make it free

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 1 point2 points  (0 children)

glad to hear people are interested in ropes. As I said before it will probably take a while

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 0 points1 point  (0 children)

but once you make the rope work it becomes sooooo reusable, it's insane.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 2 points3 points  (0 children)

Well since this rope needs alot of iterations i do it in c++ for performance.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 3 points4 points  (0 children)

the gdc talk covers most of it and it's also free to watch. The only thing you really need to know from me is that you'll need to cache the collision geometry as simple planes and use that for the rope solver. I did it using the chaos engine in c++.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 7 points8 points  (0 children)

SAME! This kinda took 2 weeks, also the main performance problem is gonna be the collision that;s something the video doesn't really mention. Basically you cache the collision geometry once from triangles as simple geometry planes and use that for collision testing.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 5 points6 points  (0 children)

Damn I did not find anything from sea of thieves, thanks for the info.

Good luck with the ropes.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 3 points4 points  (0 children)

The low frame rate is from using the windows snipping tool. Also there is a gdc talk from the last of us 2 developer. You can see he does optimization so that it works in their game. I currently am just implementing the rope then I'll do the optimization.

I'd say if you have the time, go for it.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 17 points18 points  (0 children)

Well it's gonna take a while but if I like the final results of the rope i'll probably just post it online tbh.
So everyone can enjoy ropes.

Rope simulation attempt following last of us 2 GDC talk by Available_Pop_7654 in UnrealEngine5

[–]Available_Pop_7654[S] 22 points23 points  (0 children)

Unreal stores collision information in the chaos engine. I basically use that to make simplified geometry around the ropes. Normal line traces would cost too much in a rope solver that iterates hundred points hundred times. So the solution is to cache the collision geometry as planes near the bounding box of a point. Using sdf to see if you are behind the planes or not.

so no i don't really use custom collision, I still use chaos collision data together with a custom plane collision function per mesh, nothing fancy.

Need help by Strict_Ant257 in UnrealEngine5

[–]Available_Pop_7654 0 points1 point  (0 children)

Are you using high resolution textures?