Самый реальный: читать оф. документацию.
Максимально просто: держите карту всех непроходимых статичных объектов, включая стены, в памяти и проверяйте возможное пересечение до перемещения. Если есть пересечение - укорачиваем вектор перемещения до непосредственного пересечения с объектом и перемещаем туда объект.
Вопрос в том, что если будут движущиеся непроходимые объекты, то проверять пересечения придётся все равно геометрически и радиально, высчитывая вписывание круга (шара) в многоугольник (многогранник). Поэтому это - "велосипед". Стандартные средства "движка" - справятся однозначно быстрее.