Parking Simulator is now free to play! Updates coming very soon to bring more cars and levels to the game. Play now on PC, Phone, Tablet or Xbox!
https://t.co/NYqAF5x2zT
#robloxdev#rbxdev#roblox@ToppleGames
@fluffmiceter Nice.
I assume the arms are IK'ing between the shoulder joint and hand effector.
Are you CFraming the hands or animating? and how do you pick the natural elbow direction?
@GalaxinTM@MaximumADHD I did this a while ago (the other way around) so I didn’t meed to manually make an R6 version of every animation.
I designed my game around R15 and made R15 animations - and the applied an R6 rig on top based on the player’s avatar setting.
Interpolating R15 animations onto an R6 rig in real time. Supports any animation. Still playing around with it but seems to work pretty well.
#robloxdev
@NinjoOnline@plasma_node The limit is only for meshes where FixedSize = false
Send the mesh data to the client and use a pool of unfixed meshes to bake into fixed meshes.
CreateEditableMeshAsync is sync when CollisionFidelity is set to Box and the collision geometry replicates automatically
@gillernGames Haha fair. I tend to agree with that sentiment, I was just wondering if you knew more about this than I did.
I wanted to add a discord join link to my game (behind a policy service check) a while ago but decided against it.
i implemented various optimisations and got it from p50=40ms, to p50=4-5ms
so an 8x speed up on average
and p99 before was 80ms which felt horrible
theres probably a bit more left to squeeze out plus i could compute the chunks in parallel but its not worth the effort i think
ok its fast again. this is a way more detailed voxel grid and way more explosions than would ever happen in game
average is 4ms and 99th percentile is 19ms which is like 50fps
only performance concern now is memory usage of all the meshes/textures on mobile i think
@cryptidsoftware Everything is simple to change, here I downsampled the same map to just 4000 voxels
Each voxel is now 5x5 studs. Chunks are now 30x30 (except for the ones on the edge)
It runs much faster when I do this and doesn't look meaningfully worse so I need to find a balance.
its a bit slow with this many explosions and chunk updates going on at once
i'll try profiling it and speeding up the slow bits next. it might also be able to run chunk updates in parallel but i've not tried that before
worst case i can just lower the voxel/render resolutions
@cryptidsoftware Chunks are 25x25
Voxels are 2x2
The marching squares are 1x1
Voxels can overlap chunk boundaries and some chunks can be smaller than others. Nothing is forced to line up.
I'm doing some boring performance optimisation stuff next so most of this will change
I need to tune the noise, but adding material variations to the rock is pretty simple. I can use the marching squares to detect contours for each material and generates a few more meshes per chunk
@cryptidsoftware Yes but you can get around it by writing to a dynamic mesh, baking that into a fixed mesh, then destroying the dynamic mesh.
Ironically this scene is actually well under the tri limit for a single mesh, so I only hit this because of my chunking optimisation haha.
Rendering the destructible terrain with meshparts. I'm honestly surprised the engine allows this.
Not being able to use a fragment shader makes texturing this so difficult. There's a few layers of dynamic meshes per chunk here to get the grass and mud layers to work.
Here's a few screenshots that show a bit more detail.
Each chunk is made up of a rock mesh, a grass mesh, and a mud projection.
Triangulating all this fast enough for real-time destruction was certainly fun.
@LvieReal I wish.. but being able to deploy my code to 144 million+ daily active users, with 1 click, for free - is a pretty compelling value proposition
voxels data -> chunks -> marching squares contour detection -> tracing edge loops -> convex decomposition -> ear clipping triangles
and its so fasttttttt and can update in real time!
mesh parts next. i really hope i dont hit an engine limitation so much work went into this haha