![](https://attach.openclonk.org/avatars/185-9473.png)
![rope_ladder_segment.png (2k)](https://attach.openclonk.org/13/7113/rope_ladder_segment.png)
(It is viewed from the side)(Would be a 3D-model - not a sprite)
Looks terrible? I thought something like that at first. But when you have several ladder segments "tied" together the whole appearence is a bit different:
![rope_ladder_5.png (7k)](https://attach.openclonk.org/13/7113/rope_ladder_5.thb.jpg)
Each of theese segments can be moved independently to make nice swinging effects:
\
/
\
\
and so on...
P.S. Do not be rough for this is only an idea yet. Would like to hear every possible suggestion before moving on.
![](https://attach.openclonk.org/avatars/126-5136.png)
Hmm, now that I think about it, it would also be difficult to step planks if they are too thin. Maybe something like this.
![](https://attach.openclonk.org/avatars/59-2177.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/126-5136.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![rope_ladder_segment.png (2k)](https://attach.openclonk.org/65/7165/rope_ladder_segment.png)
Personally I would prefer to make real knots but since we are limited to the polycount we should probably stay with UV-spheres.
![rope_ladder_5.png (10k)](https://attach.openclonk.org/65/7165/rope_ladder_5.thb.jpg)
Now we can see an actual "ladder" there :-). And it also swings left and right:
![rope_ladder_swinging.png (10k)](https://attach.openclonk.org/65/7165/rope_ladder_swinging.thb.jpg)
Well, looks not too good. Maybe there is a need for additional bending points...
![](https://attach.openclonk.org/avatars/1-0778.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
The only part of rope ladder that should be modelled in 3D is a single ladder segment:
![rope_ladder_segment.png (19k)](https://attach.openclonk.org/5/7305/rope_ladder_segment.thb.jpg)
The number of segments is defined by current ladder length:
![rope_ladder_5.png (11k)](https://attach.openclonk.org/5/7305/rope_ladder_5.thb.jpg)
Then instead of modelling them in 3D the connection ropes are drawn using game engine:
![rope_ladder_5_connected.png (13k)](https://attach.openclonk.org/5/7305/rope_ladder_5_connected.thb.jpg)
This approach will give tyhe rope a needed flexibility and will also allow to save some polies. Ladder implementation will probably be easier as the only thing needed is to create a sufficient amount of ladder segments (check collisions for them etc.) and draw line which connect the definite points of these segments.
I would like to have some feedback concerning this idea.
![](https://attach.openclonk.org/avatars/79-5162.png)
![](https://attach.openclonk.org/avatars/126-5136.png)
I suppose the ladder segments will be 2D (so you shouldn't need to worry about polycount), but you should confer with Newton on that.
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/1-0778.png)
- I don't think the standard line connect works for different positions. If there were just the wooden cylinders shown in the a little bit of perspective, we need two lines to connect two cylinders. I don't think this is possible as the line connect always goes to the first vertex (I think). The segments with its lines (at least one cylinder with two lines down) need to be pre-rendered
- Having the ladder as single segments as small as that (for every cylinder one object) suggests that there will be an equally awesome chain-physics. However, this is a different and complex topic - I won't implement that. In other words: The rope ladder will go straight down. Equally, the roll-out/roll-in animation won't look so good - what I'd do is just a simple append-one-ladder-segment-to-the-other or use a pre-rendered roll-out animation
![](https://attach.openclonk.org/avatars/185-9473.png)
EDIT: I mean, why do we need the rope ladder for in the first place? I see only two possible applications:
1) You throw a ladder down from an airship so other clonk can climb up onto it. (Good application - 100% approved)
2) You fly with a balloon onto a high floating island and throw down the ladder so other clonks can easily reach this island. (In CR you would have to build an elevator)
2 cons:
1) If we implement anchors, it can be used for climbing too (though your airship will have to stay in place while other clonks climb up - it will ruin some fun :-)
2) What about elevator? (of course, you still have to build it in order to transport lorries, cannons and such, but... do not know, really).
Alright, we can have a rope ladder. But it will consist of some static, prerendered planks with ropes coming up and down (something like I drew in the first post). And rolling out/in of a ladder will consist in adding/removing another plank (sprite).
|
o
|
o
|
o
|
and so (strictly vertical)...
![](https://attach.openclonk.org/avatars/59-2177.png)
the difference between a rope ladder and an elevator is not just how it would function, but also that it could be possibly be moved or stored later, (ladder not elevator).
![](https://attach.openclonk.org/avatars/59-2177.png)
It looks like this now:
![](https://attach.openclonk.org/avatars/1-0778.png)
Library_Ladder
and Library_CanClimbLadder
:Library_Ladder
IsLadder
returns trueGetLadderData(&startx, &starty, &endx, &endy)
Returns the segment (start position, end position) on which the clonk can climb. If not overloaded by the concrete ladder object, the library uses x=0 and the y-offsets from the defcore together with the rotation of the object.
GetPreviousLadder()
GetNextLadder()
Returns (a pointer to) the next/previous ladder (segment). nil if its there is none.
SetPreviousLadder(object ladder)
SetNextLadder(object ladder)
sets the same
Library_CanClimbLadder
Searches for
IsLadder
during jump action. If it finds it and the clonk is at the defined segment, a climb-action is set with procedure FLOAT and the clonk is rotated to fit the angle of the segment. That climb action has a timer/effect associated to it which moves and rotates the clonk each frame according to the orientation and position of the ladder segment (both variables might change every frame due to chain physics or other stuff) and his climbing speed/direction. Given that the length of the ladder segment stays the same, only one variable needs to be stored by this library which specifies the "progress" on the ladder (segment).When the clonk reached the start or end position of the segment, he calls
GetPreviousLadder
/ GetNextLadder
in the ladder to get the next ladder (segment) to climb on. If there is none, he either falls down (if climbing down) or gets up (if climbing up). During the ladder-climbing, the clonk can jump-off like during normal climbing. This should be implemented as low-level as possible, e.g. in ObjectControlMovement (PlayerControl.c) let go of climbing not on GetAction() == "Climb" but on Wildcardmatch("Climb*"...something. Also, of course if the clonk contacts "real" landscape during his climb, the climb needs to be canceled and the appropiate action needs to be set. I have currently no idea how this could have done other than with contactcalls---
A rope ladder would then consist of a grabable top element which also inherits from ladder and a chain of further ladder segments down the way (the ladder is nothing else than a double-linked list). The roll-out-animatino would consist of adding in certain number of segments to the end of the rope-ladder with a timer until it has been fully unrolled.
![](https://attach.openclonk.org/avatars/59-2177.png)
> not on GetAction() == "Climb" but on Wildcardmatch("Climb*"...something
I don't think, that we still need these special checks for procedure or similar actions, cause we have for every procedure (or special movement like this climb) just one action and the rest is done with additional animations. See the animation Walk, which contains Walk, Stand, Run, AimBow, LoadBow, Throw, ClubAim, ClubStrike,....
And I'll implement the ladder from your posted scheme.
What do you think of only grabbing ladders when hitting up during jump? This could remove undesired hanging on ladders and not force the clonk to check every frame. Just an idea I wanted to discuss, not sure if it really is good.
![](https://attach.openclonk.org/avatars/59-2177.png)
Well, then have fun and give some feedback.
![](https://attach.openclonk.org/avatars/1-0778.png)
For the line problems, the solution is simple: Don't use lines. A rendering of one segment of the rope ladder could consist of one wooden cylinder plus the piece of rope underneath it because the rope itself does not bend until the next segment (like the line doesn't).
Regarding #strict 2
The physics of the ladder feel a bit too wobbly (like a rubberband for my taste and my expectation of a rope ladder.
Regarding control: The same controls as normal climbing should apply. Jump off with left/right, the speed of the climb should be faster or the same as the normal climb. Currently, with control left I change to the right and the other way round. Seems to be backwards. The clonk should probably prefer a ladder to the standard surface of a wall.
![](https://attach.openclonk.org/avatars/59-2177.png)
Not using lines, this can look strange, cause the distances between the segments aren't guaranteed to have the given length, they can bend.
The controls should be the same as normal climbing, plus hitting the key to the wall also lets the clonk turn to the other side of the ladder, if he already has COMD_Stop. But perhaps I got something wrong.
The wobbly bit: What do you exactly mean with wobbly? The rope bending (=the distance between the segments not staying the same)? This could be made stiffer with more iterations (which cost more performance). The rope swinging "wobbly"? Perhaps introduce drag for the point masses. Or do you mean the wobbly when climbing? When you climb a ropeladder it actually isn't stable. Your feet push away the lower segments and your hands draw at the upper onces, making you fall a bit back. Like in this picutre: http://www.youthwork-practice.com/adventure-camps-events-programs/camps/pirates/pirat-games-3.gif) This "wobbly" is a feature not a bug ;-) (but can be turned down a bit)
![](https://attach.openclonk.org/avatars/1-0778.png)
>code guildelines
I meant: You don't have to write
#strict 2
anymore>The rope swinging "wobbly"?
Exactly
>the distances between the segments aren't guaranteed to have the given length
Hmm, then a graphic showing two ropes would be needed which can be stretched with the same method as the bullet trail (SetObjDrawTransform) and be in layer 1 of one line segment.
![](https://attach.openclonk.org/avatars/126-5136.png)
Also, it drops FPS to 12 frames.
![](https://attach.openclonk.org/avatars/24-4666.png)
> Perhaps we can make a property for line objects that prohibit the engine from doing anything except drawing the lines.
That's already possible, look at the ropepack for an example. Iirc the trick is not using CONNECT, but I might misremember.
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![rope_ladder_segment_5.png (2k)](https://attach.openclonk.org/83/7483/rope_ladder_segment_5.png)
![rope_ladder_segment_10.png (3k)](https://attach.openclonk.org/83/7483/rope_ladder_segment_10.png)
![rope_ladder_segment_15.png (3k)](https://attach.openclonk.org/83/7483/rope_ladder_segment_15.png)
Or you can just take the model (models/items/rope_ladder in the resources repository) and make the one you like.
![](https://attach.openclonk.org/avatars/126-5136.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/126-5136.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
![](https://attach.openclonk.org/avatars/126-5136.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
How about this:
![rope_ladder_segment_10_alt.png (2k)](https://attach.openclonk.org/20/7520/rope_ladder_segment_10_alt.png)
P.S. I've replaced the model in the resources repository
![](https://attach.openclonk.org/avatars/59-2177.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
I think about making a tight roll of rope ladder without its ending hanging from one side. Something like @.
(Will add some graphics later)
![](https://attach.openclonk.org/avatars/1-0778.png)
Also: The rope for rope ladders doesn't go around each rung, normally you have a knot below it or like in the example image above.
![](https://attach.openclonk.org/avatars/185-9473.png)
![ladder3_ingame.png (5k)](https://attach.openclonk.org/2/7902/ladder3_ingame.png)
(Maybe I should have rendered it at a bigger angle?)
I do not really know where to place it and how to make it be drawn instead of the image currently used. So could you please do it by yourself?
![](https://attach.openclonk.org/avatars/126-5136.png)
![](https://attach.openclonk.org/avatars/185-9473.png)
> look like honeycomb
That's why I suggested a bigger rendering angle
Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill