Not logged inOpenClonk Forum
Up Topic Development / Art Workshop / [Concept][Object] Rope ladder
1 2 Previous Next
- - By AlteredARMOR [ua] Date 2010-02-23 21:50 Edited 2010-02-23 21:59
Here is a not-very-pleasant-to-make object. For rope ladder I actually suggest something extremely simple. Like this:

(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:

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.
Reply
Parent - - By Ringwaul [ca] Date 2010-02-23 22:14 Edited 2010-02-23 22:18
I think the wooden planks should be have less width. It would be very hard to hook your fingers over those planks while climbing.

Hmm, now that I think about it, it would also be difficult to step planks if they are too thin. Maybe something like this.
Reply
Parent - By AlteredARMOR [ua] Date 2010-02-24 08:54
Thanks for the reference (the ladder looks good there).
Reply
Parent - - By Randrian [de] Date 2010-02-23 22:24
What about turning it a bit, so that it isn't facing the screen directly? Also the clonk doesn't look directly to the side, but is turned about 20° to the screen.
Reply
Parent - By AlteredARMOR [ua] Date 2010-02-24 08:55
20° ?  I think I've turned it to 5 or even less... I'll consider that
Reply
Parent - - By kakerlake [ch] Date 2010-02-23 23:18
how about knots instead of wooden planks?

example
Reply
Parent - - By Ringwaul [ca] Date 2010-02-24 00:43
I think you're mistaking AteredARMOR's rope-ladder for a single rope with planks (I thought this is what it was at first too). It's a rope ladder viewed from the side, so it's hard to see the second rope.
Reply
Parent - By kakerlake [ch] Date 2010-02-24 09:21
ah ok didnt know ^^
Reply
- - By AlteredARMOR [ua] Date 2010-02-24 21:52
Ok. What about this?

Personally I would prefer to make real knots but since we are limited to the polycount we should probably stay with UV-spheres.

Now we can see an actual "ladder" there :-). And it also swings left and right:

Well, looks not too good. Maybe there is a need for additional bending points...
Reply
Parent - - By Newton [de] Date 2010-02-25 20:24
The wooden parts look like parts of a swing. How about normal wooden parts like you'd find in almost any image on google image search http://www.justoutdoortoys.co.uk/store/image/u6fi/Just_Outdoor_Toys_Premium_Rope_Ladder.jpg?
Parent - By AlteredARMOR [ua] Date 2010-02-25 20:31
Oh, the cylinder ones... I completely forgot about them. Surely that would look better than flat planks.
Reply
- - By AlteredARMOR [ua] Date 2010-02-27 17:37
Alright, here is the most recent idea.
The only part of rope ladder that should be modelled in 3D is a single ladder segment:

The number of segments is defined by current ladder length:

Then instead of modelling them in 3D the connection ropes are drawn using game engine:

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.
Reply
Parent - By MimmoO Date 2010-02-27 17:56
i like this version the most. it also looks the msot realistic to me.
Parent - - By Ringwaul [ca] Date 2010-02-27 19:51
Excellent. :)

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.
Reply
Parent - By AlteredARMOR [ua] Date 2010-02-27 19:55
I think they should be rendered as 3D models. This way it would be easy to twist and rotate them in any way we like... But yes, you are right: we should hear the opinion of the person who will actually implement this thing.
Reply
Parent - - By Newton [de] Date 2010-03-02 00:33 Edited 2010-03-02 00:35
Yes, mostly realizable. However:

  1. 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

  2. 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
Parent - - By AlteredARMOR [ua] Date 2010-03-02 08:46 Edited 2010-03-02 10:54
So, there will be no swinging, I guess. Than maybe it will be more realistic to make something like this ?

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)...
Reply
Parent - - By Randrian [de] Date 2010-03-02 09:54
hmm I don't like having such rigid ropeladders.... I think the swinging would really be the fun about this object. Perhaps I'll try to implement chain physics. There must be some algorithm on the internet for that.
Reply
Parent - By TheBuilder [us] Date 2010-03-02 16:49
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).
Reply
Parent - - By Randrian [de] Date 2010-03-04 00:06
Well, I succeeded in making an implementation of a chain/rope physics for the rope ladder.
It looks like this now:
Reply
Parent - By Ringwaul [ca] Date 2010-03-04 00:58
Woah, awesome! :)
Reply
Parent - - By Newton [de] Date 2010-03-04 01:33
Nice one! But I got to admit that I won't find the time in the next few weeks (so, until OCM) to implement ladder-climbing. However this are my thoughts about this if someone else wants to implement a Library_Ladder and Library_CanClimbLadder:

Library_Ladder

IsLadder returns true

GetLadderData(&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.
Parent - - By Randrian [de] Date 2010-03-04 15:57 Edited 2010-03-04 15:59

> 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.
Reply
Parent - By Sven2 [de] Date 2010-03-04 16:27
Since actions are proplists now, we can do even better and add an "IsClimbing" attribute to the climbing action.
Parent - - By Randrian [de] Date 2010-03-06 00:50
So, implemented. See Tests.c4f/Lines.c4s for a test of two ladders I placed in the landscape. The ladders can't yet be placed by a clonk. The second string of the ladder is also missing. The engine makes a mess of it when I use to much vertices for the lines, cause when the segments touch ground (or even are in ground) the engine trys ti insert additional vertices... Perhaps we can make a property for line objects that prohibit the engine from doing anything except drawing the lines.
Well, then have fun and give some feedback.
Reply
Parent - - By Newton [de] Date 2010-03-06 01:56 Edited 2010-03-06 02:08
Woo, bravo! The scripts also look very clean and clear.

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.
Parent - - By Randrian [de] Date 2010-03-06 11:37
hmm for the code guildelines, I tried to stick to it and don't use iX and such stuff anymore....
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)
Reply
Parent - By Newton [de] Date 2010-03-06 14:22

>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.
Parent - By Ringwaul [ca] Date 2010-03-06 02:08
Looks pretty nifty. However, I get an asseration error whenever I try to climb up or down on the ladder. :(

Also, it drops FPS to 12 frames.
Reply
Parent - - By Günther [de] Date 2010-03-06 12:46

> 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.
Reply
Parent - By Randrian [de] Date 2010-03-06 18:50
ah ok, sounds good. I'll try it.
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-04 08:30
I must admit, it looks VERY nice. Looks like its time to add rope ladder segment graphics. By the way, do you want a 3D-model or the sprite will do?
Reply
Parent - - By Randrian [de] Date 2010-03-04 15:53
I think the sprite should do.
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-04 17:59
Here it is rendered from different angles:
   
Or you can just take the model (models/items/rope_ladder in the resources repository) and make the one you like.
Reply
Parent - - By Ringwaul [ca] Date 2010-03-04 22:02
It should probably be set to smooth; it looks very polygonal atm.
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-04 22:39
I believe some additional polygons can be added (since it is sprite we are actually interested in). But do not have time right now. Maybe tomorrow...
Reply
Parent - - By Ringwaul [ca] Date 2010-03-05 00:54
I don't mean adding additional polygons; each rope segment is so small that won't affect anything for a sprite. I'm referring to the "Set Smooth" button.
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-05 09:28
Yes, that was exactly what I've thought. But didn't like how it looked when smoothed (because edges are also smoothed and they shouldn't be). So I suggested adding more polygons to the wooden and rope parts to achieve more "smooth" (rounded) look.
Reply
Parent - - By Ringwaul [ca] Date 2010-03-05 17:15
You can also use the auto-smooth option to set which edges are sharp/smooth based on the angle of the edge. But as long as you get the results you are looking for when it's going to be a sprite, it really doesn't matter. ;)
Reply
Parent - By AlteredARMOR [ua] Date 2010-03-05 19:00 Edited 2010-03-05 19:43
And I was just wondering why do we have to talk about things we both know very well... =)

How about this:


P.S. I've replaced the model in the resources repository
Reply
Parent - - By Randrian [de] Date 2010-03-12 13:44
We still need a graphics for the folded rope ladder, the one that is in the inventory.
Reply
Parent - By AlteredARMOR [ua] Date 2010-03-12 13:52
Yes, I remember. It will be done in few days, I guess
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-12 18:38
I've already commited one but here are the variants:
Reply
Parent - By AlteredARMOR [ua] Date 2010-03-21 18:43
The current rope ladder graphic looks nice in the inventory slot but totally weird when lying on the ground (and such).
I think about making a tight roll of rope ladder without its ending hanging from one side. Something like @.
(Will add some graphics later)
Reply
Parent - By Newton [de] Date 2010-03-29 14:07
http://www.feuerwehr-stuhr.de/gemeinde/technik/leitern/strickleiter.jpg

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.
Parent - - By AlteredARMOR [ua] Date 2010-03-22 19:26
I made something like this as an ingame image of rope ladder:

(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?
Reply
Parent - - By Ringwaul [ca] Date 2010-03-22 20:35
I think there should be more length to this coiled rope. When it is deployed there are some 13 steps, and there are only 7 in the picture. Other than that it looks good. :)
Reply
Parent - - By AlteredARMOR [ua] Date 2010-03-23 17:52
Anything you like:
Reply
Parent - - By MimmoO Date 2010-03-23 18:47
1 and 2 somehow look like honeycomb, 3 is okay
Parent - By AlteredARMOR [ua] Date 2010-03-23 19:33

> look like honeycomb


That's why I suggested a bigger rendering angle
Reply
Up Topic Development / Art Workshop / [Concept][Object] Rope ladder
1 2 Previous Next

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill