Shadow of the Colossus, how did they do it?

Shadow of the Colossus, I will say in my opinion is one of the best games out there.

The Style, the game play, the story may be a bit on the rough side, I never really liked it very much, but that’s just me. I loved the game and I wish I got to play through the entire game. Unfortunately, I don’t have a PS2 so I usually went to one of my friend’s house to play it. I thought it was amazing, climbing of colossus through any way you could, they game gave the user so much freedom, it kind of felt you were able to do what you actually want to do :slight_smile:

I always loved this battle with the bird, best battle ever:

Trust me it’s worth watching.

It makes me wonder, how did they do it? How did they make it so you’re able to jump onto the colossus, and grab on? How were they able to make the character grab on of a colossus and hold on?


Here’s my idea:
They have the mesh they calculates the boundaries of it every tic frame, that way if the armature changes the places of the vertex, it recalculates the boundaries and weird stuff doesn’t happen.

The player when jumps on to the colossus, it parents to it, (when he presses the grab button), the half the body is kind of a dummy when the colossus goes wild. When parented the hands clip to fur of the colossus and each time it’s crawling up the colossus, or moving around it, it calculates where the hands are suppose to be positioned.

Combined with some animations, it looks cool. Although, when the player lets go of the fur, the player roles down or falls off. They means, depending on the angle, it calculates weather it’s able to stand up, fall down, or loses balance and rolls. When it rolls, the player turns into a “smart” dummy, keeping shape, so the animations don’t mess up and so the model doesn’t look totally destroyed. When it falls it goes to a falling state, and when it’s able to stand, you can go to the main state and do whatever.

I know it gets more complicated then that, but that’s what I think they did. :slight_smile:

My real question to you is this, how do you think the climbing, the holding on to, was made in the game? How would you do it in Blender? Can it be done in Blender?

I know Ideasman, made a cool patch for blender where it recalculates the boundaries of the an object, but I don’t know how to patch blender :o Yeah, I’m stupid that way :confused:

Please give me your thoughts,

I think It can be done!
Download the latest blender 2.49b, it has the physics mesh reclaculate in an actuator ( its in the replace mesh actuator ). Watchout! recalculating that every frame is a big job for a mesh like this. Think about making a lower detail (still rigged) invisible mesh used for the collisions that way you can also split it into parts and have different sections have different properties (fur/metal/skin etc)

Theres a few ways to do the actual climbing, I don’t know what would work the best

For the fur holding on to you could create a 6dof hinge when needed and remove it when he’s tired/wrong angle/to much force from the creature movement etc.

Of course theres more than just those things, but I can’t imagine anything there that can’t be done,with clever scripting of course.

That’s cool :smiley:

The mesh replacement on the boundaries isn’t working, can you send a quick example or tell me how to set it up?

See ya and Thanks!

I think the complexity is largely in their animation system.

When climbing, the target position for each appendage is dynamically generated, and then the animation system actually “tracks-to” that target state with some-sort of animation blending.

… Or, at least, that’s how I think it could work.

How would you do it in Blender? Can it be done in Blender?
By doing the same thing, which would be fairly difficult, even if the BGE would provide all the functionality required to create such a system (which I doubt it does).

I can think of several ugly hacks that one could “string together” in order to make something remotely similar, but nothing that would ultimately be worth-while.

aw geez… That would be a lot of work :confused: Work that I wouldn’t be able to do with my limited python experience :stuck_out_tongue:

Is there an easier way of attempting it? Would be similar, but just maybe a different way that doesn’t need to work off the animation system and instead of something else?

Social, it sounds like you are talking about external targets for constraints (specifically ik). These work in the bge in the 2.5 line.

Somtimes you need a real game engine to do what you want to do. Not to diss Blender’s game engine but there are a lot good engines out there with A LOT more source code and resources for things like this. But anything is possible in Blender.

If you really want to do this, start off with pseudocode(forget if its one or two words) first.

/start game();

Then figure out how to do write it in Python. :stuck_out_tongue:
But any coder would till you that is best to write pseudocode first as a ‘blueprint’ for your game. Then figure out how to actually work with whatever engine/lanuage/script you’re using.

Obviously this is really rough but im not gonna write a bunch codes in pseudocode, lol. Sorry I just don’t have the time to do it. Something like this takes a lot of research and time. It doesn’t seem that this has been done before to the type of scale you’re looking for(Shadow of the Colussus). You can try and check by going through as many games made by BGE as possible and then try to contact the creator.

By the way, its a great game and I wish you luck if you attempt this. :slight_smile:

I don’t think SOTC’s system was very advanced, you can only grab fur/ladder type thing and predefined ledges to grab and jump up. To me it looks like premade animations controlled by lots of sensing and hinge for the hanging off fur.
It’s not like assassins creed where you can do complicated things ie climbing up a wall where some of the bricks are sticking out, while having your hand/feet being placed in exactly the right spot.

I’d try making it but don’t really have the time:(

The mesh replacement on the boundaries isn’t working, can you send a quick example or tell me how to set it up?
Set it up like this and use triangle mesh bounds.

@Rhys S: I just tested that method works like a charm! :smiley: