7
\$\begingroup\$

I'm curious how enormous characters that act both as entities and environments are implemented. I'm thinking of characters like in Shadow of the Colossus which move, but which the player can also move on.

It seems these objects would be created as characters, rigged like any character would be with their various animations, but they would also need to be usual physical surfaces that we can walk on. Considering the way characters are handled compared to how static environment is handled physically in most game engines, this could prove problematic, and added to that is the problem of size.

So, generalising over engine details (but assuming you have a generic physics/character engine, e.g. Unity/Unreal) what approach should be taken?

Also, screenshot:

Shadow of the Colossus screenshot

As you can see in this screenshot, the colossus is really big, and the player can walk on it and climb on some parts of it (hairs mostly)

And a video of a boss fight here which really shows what this gameplay is all about

\$\endgroup\$
  • \$\begingroup\$ Do you have a super cool screenshot from SotC to illustrate? (Scale seems to be an important part of the question and I haven't played the game.) \$\endgroup\$ – Anko Dec 29 '14 at 3:25
3
\$\begingroup\$

I read a really great article about SOTC and how the made it. I found a copy of it here.

To summarize, they use a 'deformable' mesh, where by parts of a triangle mesh are weighted to bones, using the same technique as rigged characters. The edges/lips that can be grabbed are specially tagged. I suspect that they keep the previous and new position of each vertex so they can calculate the velocity of each contact to help resolution.

I do not think many physics engines could do this out of the box, but I imagine you could implement it yourself with diligence.

Fundamentally I don't think it is hard, but getting it to run fast, and getting good collision response requires effort. Encapsulating each triangle in a bounding AABB tree (3D version of the box2d broadphase, for example) would help speed up queries. The fact that triangles change size and orientation is a complication but obviously not insurmountable.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.