I happened to see this structure of a gooey player character made in flash.
Can anybody suggest onto what computer science concept I should use to
- make a goo
- make it behave like a goo
Thanking You,
Vish
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It only takes a minute to sign up.
Sign up to join this communityI happened to see this structure of a gooey player character made in flash.
Can anybody suggest onto what computer science concept I should use to
Thanking You,
Vish
If you look carefully at the game you linked to, you can see that it's just a triangle fan with all the vertices merely ray casting to the collision in the world. This is why sometimes the goo looks a bit thin. Gish seemed to have more volumetric stability, probably through being constructed from a flexible mesh of points.
To emulate the movement of the linked-to game, all you need to do is sum the forces (highly damped I guess) that are being exerted on the centre of the character by the ray cast collisions that are pretty obviously being used to power the character rendering. The sideways forces are simple as they apply whether on ground or not, and jumping can be managed through making the lower springs more tensile, but, that said, personally I'd actually return to platformer game physics and use some impulse system to directly affect the vertical momentum rather than try to get the physics to behave right for gameplay.
The game you posted looks "heavily inspired" by Gish, a quite famous indie game from some years ago. You might want to look at the source code of Gish, which was published after the huge success of the Humble Indie Bundle.
Edit: I googled this blog entry, it mentions the physics engine at some point and recommends using Box2D instead. It might be useful to look how the tar ball was modeled in Gish and then try to implement that idea in another, better, physics engine of your choice.
Those two games don't really have much to do with each other, and World of Goo doesn't actually contain anything that I would call "goo" since all the characters are just points. The closest I can think of to a generic answer to this question is that a "goo" is usually just a high viscosity fluid and could probably be modeled using a vector space. That wouldn't be particularly fast though, so you could probably cheat and use a triangle mesh with some extra vector data for each vertex.
You can check out the source for the game I made for PyWeek, "Bouncy 2". I'm sure there are better/more efficient solutions but it worked quite well for us.