There is a “work-around” for basic mesh-to-mesh… using built-in collision system (non-physics engine). You use a fancy method called .moveWithCollisions() It uses mesh.ellipsoid, mesh.ellipsoidOffset, and scrub-off angle can be adjusted with engine.collisionsEpsilon
It takes a little practice to wire the player movements to player.moveWithCollisions(directionalMagnitude)… but not too bad. The system has SOME limitations… such as dive-under, climb-over, and jittering… when constantly forcing repeating collision (constant pushing of player against wall/object) (held nav-key).
A physics engine would keep player (bottom of mesh.ellipsoid) against ground… automatically.
Using the BJS built-in/moveWithCol system… no gravity on .checkCollisions = true mesh… i don’t think. Also, if you have .checkCollisions true on the ground, the bottom of player.ellipsoid could be in continuous collide with it… which means checking for wall/obstacle collision on SIDES of player.ellipsoid… might be wonky/intermittent. Better to just force player to be certain height above floor, and don’t use colliding on floor.
But watch out for dive-under and climb-over. Colliders are round… so they “scrub-off” or “slide-along” each other, depending upon engine.collisionsEpsilon settings.
It might require that player y-position be constantly set in renderloop… while player is moving-with-collision(). IF you do THAT… now you get full control of player.ellipsoidOffset.y… to use as a player height, and not be concerned with “managing it”… to avoid floor-to-feet collider scrubbing during player moves (spoke-of earlier).
Making a move-with-collision mesh mover… is good fun… but be ready for surprises, especially for low-altitude obstacles) (like knee-high stuff). You MAY find yourself constantly tweaking engine.collisionsEpsilon during the game… depending upon what kind of obstacles you are presenting to your player.
heavy, huh? nod. FUN! Good luck.
Here is a playground (series-of many)… where we once did experiments with dragging and keypress-moving barrels… which had their ellipsoids showing… via an ugly helper-func. WASDQE to keypress-moveWithCollision left barrel, same keys but SHIFTED… for right barrel. And mouse-dragging is active… somewhat.