Is it hard to add jump to Ryzom game engine?
Added by Andrew about 5 years ago
Hello
Since I play Ryzom I know that one of most requested by all players features is...jump
Currently characters can't jump.
I am condidering to spend time on programming jump ability into to the engine if
it's a minor work (key control, running new animation etc).
If something more than control, running new animation is needed please let me know
what it is.
Regards
Andrew
Replies (44)
RE: Is it hard to add jump to Ryzom game engine? - Added by Azimn about 5 years ago
I hope someone can answer this question, I would really love to see a jump added. I would think adding the animation would be easy but I wonder how hard it is to move along the Z plane.
RE: Is it hard to add jump to Ryzom game engine? - Added by kaetemi about 5 years ago
It is certainly a lot of work.
You will have to make the client and server use a physics engine, as well as rebuild all the content to have physics data available.
It's also going to be either a lot heavier or a lot less secure on the server side.
Movement along the Z axis is otherwise no issue, however, the AI server, if I remember correctly, is largely 2d coordinate based for reducing complexity.
RE: Is it hard to add jump to Ryzom game engine? - Added by Kane about 5 years ago
Ain't the game 3d but built on a 2d map editor meaning it be almost impossible to do this without also rewriting the tools? Just asking and guessing :)
Good feature would love it be think it be unpractical and one the reasons it never got added.
RE: Is it hard to add jump to Ryzom game engine? - Added by kervala about 5 years ago
You will have to look in NLPACS code to check how it's managed :)
Basically, you create a virtual cylinder which corresponds to character size and position, next you set the position of this cylinder according to character position and NLPACS gives you new coordinates of the cylinder according to the landscape and other collisions objects. With these values (x, y and z) you can what you want, if you don't want your character is sticked to the ground, you can ignore z value. So yes, you can do jump your character :) But you will need an animation and you will have to manage yourself z coordinate :)
RE: Is it hard to add jump to Ryzom game engine? - Added by sfb about 5 years ago
I think what kervala alluded to is that NLPACS collision object for characters (and other movable entities) is typically a NLPACS::UMovePrimitive::_2DOrientedCylinder (see http://www.opennel.org/doxygen/nel/de/d97/classNLPACS_1_1UMovePrimitive.html) which cannot be collided on the top and bottom. What Ryzom does internally is use something like z layers instead of coordinates. This is how the original developers compromised over the simplicity (speed) of NLPACS and the need for rudimentary z collisions. You will probably want to look first at how the game uses the z layers or levels and decide if you could tweak this workaround to accomplish jumps.
But as kervala says you could always animate the jump and work out the collisions outside of NLPACS. Feel free to experiment. You can always clone the repo and branch locally and throw whatever doesn't work away.
Thanks,
sfb
/s
RE: Is it hard to add jump to Ryzom game engine? - Added by Andrew about 5 years ago
Looks like jump is bigger job than I initially though but I will look at code to see if I am able to do it.
Also from what I understand when I work on jump I could work at the same time on jumping down (like down from a hill)
Could you give me idea how (in Ryzom engine) I can make a hill edge from which player can jump down.
In current version of the game (as far I played it) there is no jumping down the hill.
Now Player just can't go over the edge of the hill (player is basically hitting invisible wall). I think it would add much to the game play to have true open world where player can jump (or fall) from the hill.
I would appreciate idea/info how it can be achieved.
Jumping is fun so I am willing to spend time trying to add it if I have enough info how to approach that.
RE: Is it hard to add jump to Ryzom game engine? - Added by Kane about 5 years ago
I saw some cliff line type edges. I was wondering if you can under the over hang or does the invisible wall start at that top edge?
But if there is no function for say a jump down I wonder if that be something easy or possible to do and just have a toolset type thing make this edge jumpdown and when you fall you fall directly below even and just animate the rest?
RE: Is it hard to add jump to Ryzom game engine? - Added by mecklenburgd about 5 years ago
Also keep in mind you'll need to implement falling damage. Start a timer once airborne and base damage on when you hit on that. To take care of people jumping off the world, insta-death players when they exceed the damage whilest midair.
RE: Is it hard to add jump to Ryzom game engine? - Added by Rawfox about 5 years ago
a first jumpability could be added by simple throw the actualy z-coord to a jump function, that deals with the z-axis in a way of a simulated ballistic body.
the jumpfunction can be progress over the time by adding the anim init's and stuff.
the problem with the actual invisible walls ... well, that could be a bigger chellange but im sure there are reasons, why characters in Ryzom cannot jump.
anyone knows ?
a fall damage isnt a requirement, its an option.
adding physics is also an option.
a jump animation too, its optional.
the rudimentary target should be, to press a key and the char moves up the z-axis and gets down again to the original position.
RE: Is it hard to add jump to Ryzom game engine? - Added by Minthos about 5 years ago
Personally I would think just having a purely cosmetic jump functionality would be much better than having none.
I.e. no physics, no collision, just translate the graphical representation of your character and the camera up and down again. Should be simple to implement.
Regarding more useful jump capability, that introduces other aspects of the game such as world design (invisible walls? I don't like them.. jumping challenges? could be fun..) and technological improvements (different world format and collision handling? this is 2010, not 2004)..
Would purely cosmetic jumping be a good compromise until more advanced functionality could be considered?
RE: Is it hard to add jump to Ryzom game engine? - Added by jfnullsum about 5 years ago
Adding to Minthos' reply.
I think it would be simple ( definition of simple in this case being not add an entire physics implementation ) to add cosmetic jump that would make movement "smoother". Example: run into a minor "cliff" and a character could "jump" over what would normally be a wall, or in the case of tryker lands ( a lot of minor islands that you enter and leave through the same place ) just detect if the area is normally accessible to players and let avatars "jump" from land to water and vice versa via "climb" from water to land.
"Jump", "Climb", "Dive", etc... would add "awesomeness" to an already awesome game. I haven't really touched the source code yet as I have been busy with other stuff ( both RL and Ryzom related ) but from what I have seen so far adding a new parameter that would let players do this is not as difficult as adding an entire jump feature and very much welcome in my eyes.
Minor coding ( again definition of minor being fastest possible way without a full implementation of physics ) and around 3-5 new animations added to player skeletons.
-J
RE: Is it hard to add jump to Ryzom game engine? - Added by sfb about 5 years ago
The problem that still remains, as Rawfox says, are the invisible walls. I also do not mean this in the purely gameplay manner of placing an invisible wall - I mean this in the most direct technical manner. NLPACS collision objects are 2D oriented objects. This means that non-collision-mesh objects extend infinitely in the z-axis. This means that while running NLPACS collision detection you will never be able to jump over dynamic objects which use Move Primitives.
One thing that was suggested was to simply turn off collision while jumping. I wouldn't want to imagine the horrible implications of allowing someone to position themselves next to a fortress wall and have their buddy jump over them (thus turning collision detection off) and thus through the fortress wall. Anything involving "just turn off collisions" is an automatic invitation to cheating.
The 2D oriented collision primitives types need to be addressed or the logic of z-layers needs to be adapted. Or, more than likely, both.
Thanks,
sfb
/s
RE: Is it hard to add jump to Ryzom game engine? - Added by jwenting about 5 years ago
It's not as if it's needed or anything for gameplay reasons, which the vast majority of people realise when it's pointed out to them.
The effort needed to implement it (and the extra cost in performance penalties) therefore would not be offset by any advantage it would bring.
RE: Is it hard to add jump to Ryzom game engine? - Added by jfnullsum about 5 years ago
I agree it's not needed, furthermore, I understand the work involved and the work being done is much more important. I never implied it should be done immediately, nor is it on the top of the "TODO list". I'm just optimistic about the whole thing and that there are workarounds that could be implemented. I also understand that even a cosmetic jump is a lot of work even without a "functional" jump. All I'm trying to do is put ideas out there for someone willing and with the experience to work them out.
I know I am definetely going to try to work it out myself. I've been waiting for something like this to happen for a long, long time ( Open source mmo, yes please! ). We're programmers, it's not in our nature to be pessimistic in the face of a challenge! While others with a lot more experience and time than myself are working on stabilizing, fixing and "bettering" ( I know it's not a word it just sounded better in my head :P ) the core of the software. People like me who have no real time to put into the project can work on "simple" things in spare time.
I wasn't trying to belittle the work that's needed. I know the full extent of banging my head against the desk trying to solve 1 + 1 = 2 ( joke ). Again, just saw an idea, seemed like a possibility ( a lot less work than the latter ) and replied!
-J
RE: Is it hard to add jump to Ryzom game engine? - Added by velogfx about 5 years ago
well actually it could have. no jumping, no flying, no diving. it would bring even deeper gameplay. so imo it would bring more than one advantage.
RE: Is it hard to add jump to Ryzom game engine? - Added by Kane about 5 years ago
Jumping is not going to happen anytime soon period =)
Now if you want you can animate Jump but it would be like an Animation I think SWG did this if I recall?
RE: Is it hard to add jump to Ryzom game engine? - Added by Minthos about 5 years ago
I might go ahead and implement cosmetic jumping as my first exposure to ryzom, with no gameplay effect and no animation, just vertical translation. I'm quite busy with other things right now so it probably won't happen until next month.
jfnullsum wrote:
stabilizing, fixing and "bettering" ( I know it's not a word it just sounded better in my head :P )
"Bettering" is in fact a word, it's roughly synonymous with "improving".
RE: Is it hard to add jump to Ryzom game engine? - Added by Nin-lil-izi about 5 years ago
Shame, I'd love this feature. As I feel that any additional freedom to movement helps immersion
RE: Is it hard to add jump to Ryzom game engine? - Added by khelkun about 5 years ago
I'm also interested by this subject but I'm still not enough involved in NeL & Ryzom code to pretend writing some relevant code about that.
But if someone's planing or already began to work on that I guess we could try to write a todo list based on what was already said on this thread.
Anyway first reading & fully understanding the related code about this article sounds to be a good start for me: http://www.gamasutra.com/view/feature/1421/propagation_of_visual_entity_.php
By the way is this article still up to date compared to the present soure code of NeL ?
Thanks
- Khelkun
RE: Is it hard to add jump to Ryzom game engine? - Added by jwenting about 5 years ago
velogfx wrote:
well actually it could have. no jumping, no flying, no diving. it would bring even deeper gameplay. so imo it would bring more than one advantage.
A true 3D engine with full freedom of motion along all axes would certainly have distinct advantages and was at one time planned (there are underwater cave entrances visible in some places for example, a clear indication that something was scheduled to be done under water).
The problem though I have with jumping (as usually done in mmos) is that it leads to players jumping all over the place like rabbits rather than walking.
In part that's because of terrain quircks, which should have been caught in testing, in part because it seems to be "expected" that you move that way.
The world design as currently implemented of course is created so no jumping, diving, or flying is required to reach any place where there's actual content (unless something exists in that underwater cave in sunken city that only the dev that originally put it in may still know about).
So within the context of Ryzom such development isn't needed. To make the engine more versatile for future use (and maybe that might include expanding the Ryzom content) it might be nice if we can avoid the phenomenon you see in so many mmos that player hop around instead of walking around.
Maybe having jumping cause a massive drain on stamina so you can only jump say 2-3 times before you have to stop for 5 minutes or so would help in that. Not sure if the engine controls that or the world data.
RE: Is it hard to add jump to Ryzom game engine? - Added by kervala about 5 years ago
You will notice all diving/swimming animations are already done (which is not the case for jumping) but some of them are just not used yet :(
RE: Is it hard to add jump to Ryzom game engine? - Added by jwenting about 5 years ago
well, swimming already exists, doesn't it :)
Except of course it's on the surface only.
What also exists (or so I've been told) are 3D models of some underwater animals, so supposedly at some point there was a plan to create aquatic wildlife that players could interact with (either by hunting them or being hunted by them).
The decision to remove the 3rd dimension from the freedom of movements table would have inevitably led to those being removed from the game.
RE: Is it hard to add jump to Ryzom game engine? - Added by TomH about 5 years ago
There's actually some aquatic monsters, one of the is (GO_MO_Clapclap.max) and I'm assuming the name is Clap Clap? :P
RE: Is it hard to add jump to Ryzom game engine? - Added by jwenting about 5 years ago
Yes, they are modelled but not in-game presumably because that would require a true 3rd dimension of movement which currently isn't available.
Avians I guess were somehow tricked in but aren't actually flying (technically, they can't go over obstacles for example).
RE: Is it hard to add jump to Ryzom game engine? - Added by Troublesome_God about 5 years ago
I have been thinking about this and just as Avians were hacked in I bet something for jump could be too. Although it might not be shiny and fancy like jump in some MMORPG's. When Ryzom Core was released I immediately checked out the game. Jump is the only thing I found missing. SOE seems to do the same thing in their games. SWG, EQ etc... You can make an MMO without it of course but if you want to make complex mazes or something so to speak it is definitely helpful.