Я делал разработку
Физическое передвижение игрока
посмотри код и комментарии, может чего полезного найдёшь. Я там пытался все моменты выловить: игрок на краю, подвижен или нет, в воздухе ли и т.п.
Помню тоже вылетала игра в отдельном ехе (а в компиляторе нормально всё было). Не могу найти строку и вспомнить что именно было.
Но вроде понял что ограничение If нужно где-то ставить (то ли загружен или доступен ли игрок, то ли проверку свойства collision_detect-а уловить)
И не создавай физическую поверхность мира в координате 0,0,0 (и ниже), так как в самом центре 0,0,0 есть какая-то невидимая штуковина, а по 0x,0Y плоскость физ земля растянута.
Так вот вроде, думаю, нужно проверку делать "не вычисляем ли мы параметры collision-а когда игрок стокнулся с физ. землёй 0,0 (или пустотой, на воздухе какой-нибудь баг)