I have also tried using c_move and c_rotate and for me they get stuck often. I played around with them for a couple weeks and decided to make my own using ray tracing, I was suprised to find very satisfying results with my own version... I think the reason is that I completely understand how mine works because I coded it, I am also using a it on a level with a lot of crazy geometry(A model with the polygon flag set) and it still works smoothly instead of a level made in wed(mostly 90degree angled blocks) I recently finished the gravity code and have moved forward with my project. If you are interested on how I did It I suppose I could make time