for 3d I did my own sliding box collision by making a box in a 3d modelling program, I separated all the sides of the box into separate limbs.
I then performed a collision check between each limb and the environment model.(eg map, level, inverted box in my case) if there was collision then i moved the box in the opposite direction. with each face of the cube detecting and repelling you get a pretty good sliding collision system with very little maths involved.
there is 1 for collision, 0 for no collision and -1 for inside but not colliding.
i use this system because it is the most logically simple method for creating basic 3d sliding collision. if you use eg. if object collision = 1 then stop moving, your motion will freeze and its annoying.
I wanted to program it for myself too. once I managed to do it by myself I took the sensible option and started using sparks collision which has an awesome sliding collision system.
anyway, i could post an example but that may spoil the fun eh?
hope this helps
Sometimes I like to use words out of contents