Ответ на Вопрос: потому что далеко не все ошибки сводятся к опечаткам в операторах, названиях функций и т.д.
Например, если написать
Cube = CreateCube()
Texture = LoadTexture("C:\Grass.jpeg")
EntityTexture Cube, Grass
А файла "C:\Grass.jpeg" не окажется, то блиц об этом не узнает, пока не попытается загрузить. В переменной Texture окажется 0, но никто не запрещает переменной иметь значение 0. То есть программа будет работать нормально до момента, когда попытаются несуществующую текстуру присвоить на объект.ри одном и том же коде проблемной строки ошибкаможет возникать, а может и не возникать.
Если мы "забудем" строчку Cube = CreateCube(), то переменная Cube будет равна 0, а ошибка вылетит только тогда, когда мы с этим нулём попытаемся что-то сделать ("передвинуть" сили "повернуть")
Кстати если текстура не загрузилась LoadTexture(), то ф-я возвращает 0. То есть ты сразу после загрузки, проверив на 0, можешь узнать, загрузилась или нет. (В Ксорсе ошибка вылетает прямо при загрузке)
Ответ на Вопрос2
Использовать дебаггер! Почему-то многие новички (и не только

) вообще о нём не знают или пренебрегают им, а это супер вещь!
Проверь Program -> Debug Enabled галка должна стоять (при компиляции для "релиза" надо отключать, он немного затормаживает логику)
При вылете ошибки дебаггер (длинное окошко внизу) покажет строчку, где произошла ошибка. Справа можно увидеть текущие значения всех переменных и структур.
То есть в случае-примеревыше он подсветит строчку EntityTexture Cube, Grass ,а справа будет видно, что значение переменной Texture 0. Очевидно, что проблема в этом -> надо искать где она грузится и грезится ли вообще.
З.Ы. Вот тут только вчера ещё одному товарищу объяснил как юзать дебаг
http://forum.boolean.name/showpost.p...5&postcount=18