Spearmint should be fixing up the ladders & making them climbable by both bots & humans. There are a few examples of maps with ladders in Q2/Q1, & I think once ladders are fixed for bots/humans, these maps will be perfectly navigable in Spearmint. Don’t you agree @zturtleman?
A lot of Quake 3 based games have ladders too (probably more than half). Such as Return to Castle Wolfenstein, which I intend to eventually support running on Spearmint. And my own game Turtle Arena (lacks working bot ladder AI). So yeah, I may eventually fix bot ladder AI.
However, adding ladder support to Spearmint Quake 3 causes questions of physics, player animations, and probably other things. I haven’t actually played Q1 or Q2 to know how their ladders behave in gameplay (I do own them though). There isn’t a guarantee that any maps with ladders will actually be made or ported. I’m not entirely opposed to there being ladder support, but it’s not a high priority for me personally.
Actually enabling the game logic for ladders seems like something for mods / new games. However, because it’s a really common feature in other games, it might be useful to add (disabled) code to the mint-arena code base though. :shurg:
Additionally it is worth noting that not only the current AI code has to be fixed (which isn’t a big deal), there is also a serious AI ‘logic’ problem to solve: In some cases a few bots will climp upwards, whereas other bots will climb downwards, you have to find a good ‘obstacle blocking on ladders behaviour’ in this case!
Iirc, this is why RtCW bots (and Onni-bots?) sometimes fall (or jump) down from ladder into death! They simply realease from ladder, which looks weird! Though even this problem is solveable!
The biggest problem are indeed the climbing animations, as zturtleman already said!
And also the fact that most Q3A players don’t even HAVE climbing animations, so they would have to be generated & added to their animation.cfg as they climb the ladder(s) if they haven’t been added already. Also, I figured this would eventually happen due to there being ladder reachabilities in bspc.
As far as I know, you can’t add new animations to key-framed models later! You need a bone animated model format. So I’m in doubt current Q3A/Spearmint models will ever have climbing animations. If you know a way to add new animations to existing models I would be glad!
Note, Spearmint also supports et/rtcw models (they have climbing animations already)!
You would simply put them after the last animation in the animation.cfg (but try not to mess up the leg turning animation). A suggestion for what the animation should be called would be BOTH_CLIMB.
Oh! That works for you? How do you get the animation (player legs, arms attached to ladder) into the md3 model?
I mean how did you made it so that the model moves the legs and arms accordingly to run a real climbing animation (into existing models)?
I haven’t really done any experimentation with the animations yet, but it’s possible to do that. Just needs some code put into the engine (the ladder animation code for BOTH_CLIMB) & have it only use that animation when on ladders. New animation.cfg’s for each & every Q3A model would need to be done for this to happen.
For example, Razor’s animations go like this:
// animation config file
// first frame, num frames, looping frames, frames per second
0 30 0 25 // BOTH_DEATH1
29 1 0 25 // BOTH_DEAD1
30 30 0 25 // BOTH_DEATH2
59 1 0 25 // BOTH_DEAD2
60 30 0 25 // BOTH_DEATH3
89 1 0 25 // BOTH_DEAD3
90 40 0 15 // TORSO_GESTURE
130 6 0 15 // TORSO_ATTACK (MUST NOT CHANGE – hand animation is synced to this)
136 6 0 15 // TORSO_ATTACK2 (MUST NOT CHANGE – hand animation is synced to this)
142 5 0 20 // TORSO_DROP (MUST NOT CHANGE – hand animation is synced to this)
147 4 0 20 // TORSO_RAISE (MUST NOT CHANGE – hand animation is synced to this)
151 1 0 15 // TORSO_STAND
152 1 0 15 // TORSO_STAND2
153 8 8 20 // LEGS_WALKCR
161 12 12 20 // LEGS_WALK
173 9 9 17 // LEGS_RUN
183 10 10 20 // LEGS_BACK
193 10 10 15 // LEGS_SWIM
203 8 0 15 // LEGS_JUMP
211 1 0 15 // LEGS_LAND
212 9 0 15 // LEGS_JUMPB
221 1 0 15 // LEGS_LANDB
222 10 10 15 // LEGS_IDLE
232 10 10 15 // LEGS_IDLECR
242 8 8 15 // LEGS_TURN
You could specify the new animation after LEGS_TURN, which again would be BOTH_CLIMB.
But the animation frames are inside the model itself, and not in the cfg I thought. How would you apply new frames to models via engine code changes? Simply tweak the animation.cfg won’t work I think. Maybe I do understand you completely wrong, but I think you mean by adding something into animation.cfg will create a new animation, that’s not the case. You have to create the move of model parts (arms/legs) in your program (Milkshape, Blender, etc.).
I think you have to create all the models a new, from scratch?
Is it possible to use the ET/RTCW models in Spearmint Q3A?
Would it also be possible to make the engine use Q2 MD2 models as well as Q1 MDL models? The Q1 models might be a bit diminutive compared to the others, but I think it’d be fun to use them anyway… Also, Wilma Flintstone would be nice to play around with in Spearmint Q3. I’ll try to see if I can pull request in pure Q2 MD2 and/or Q1 MDL support.
This is something only zturtleman will decide!
Back to topic, it would really help if you know a way to add new animations into existing models later. If so, the chance to see working ladder code in mint-arena is much higher!
How will you get new animations into existing md3 models?
I don’t yet, but I have a few starts on where I could do that. So it’s still relatively unknown right now, unfortunately…
Currently new animations require editing the model files as well as animations.cfg. Also, BOTH_ animations need to be before TORSO_ or LEGS_ in the model file and animations.cfg. Additionally, it would be useful to have ladder idle, climb up, and climb down.
ET/RTCW models are supported by the Spearmint engine, but are not really usable as player models in Spearmint Quake 3 (would need separate models like Q3, instead of combined legs/torso like RTCW). The RTCW/ET player models have ladder animations, but it’s not directly connected to the model format.
I’ve thought about MD2 support, but it’s not very useful and I should probably draw a line somewhere so there isn’t lots of unnecessary bloat features. For now at least, I’m mainly sticking to id Tech 3 level stuff. You could convert MD2 models to MD3.
Most likely you could use BOTH_LADDER1 for climb up, BOTH_LADDER2 for climb down, & BOTH_LADDERI for ladder idle. And if we do make new animations for the player models, just make sure you use the original animations as a reference so that way they look & feel like the same person animation-wise.
fwiw Turtle Arena has BOTH_LADDER_STAND, BOTH_LADDER_UP, BOTH_LADDER_DOWN.
I’m not really in favor of adding new player animations to the default Q3 players in Spearmint Quake 3. 1) copyright infringement concern. 2) all the addon player models won’t have the animations… so would have to support not having the new animations anyway. 3) It’s just not something I want in my flavor of Quake 3.
So Turtle Arena’s getting ladder reachablilities, while Q3A isn’t.
If this is a question, than no, the AI reachabilitities has nothing to do with animations.