Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Yoyoyo!

Thank you for kudos! "ImPasta," our programmer, got it to work, so I'm just going to copy-paste their explanation. They are much smarter than me and will do justice to the meatball:

"The meatball is in fact 3D, but the physics are in 2D. We have a separate 3D scene for the ball and set up a render layer for it. The ball is put on the render layer and the camera is set to only "view" that specific layer. There is a directional light facing directly down on the ball to remove as many shadows as possible. We pipe it into the 2D asset by using a Viewport and turn off the 3D camera's background so it's just the ball. The ball rolling is based on the 2D velocity, which the ball then rotates only in the x and z axis based on the 2D velocity vector's x and y components. The scaling gets wonky depending on if you increase the mesh's radius/height or scale, with the radius/height being more consistent. The camera also has to move a bit to prevent the ball from turning into a meat cube. Probably a better way to do it but, in a pinch, it was good enough!"
(+1)

Wow thanks for the detailed response.  Cool stuff.

(+1)

In case you want to see it in engine, our source code is available! Under the prefabs/entities/Fleshball.tscn and prefabs/entities/Ball3D.tscn, to be more precise!

- ImPasta/Mica