Их контекст заключается в том, что я писал свою игру на Lua и с помощью LÖVE. Я написал 0 строк кода на C и C++, всё писалось на Lua. Поэтому многие из этих уроков связаны с самим Lua, хотя большинство из них применимы и к другим языкам.
nil
90% багов, получаемых от игроков, связаны с доступом к переменным nil.
Сишник не только не освобождает от вылетов из-за разыменования нулевого указателя, но и добавляет вылеты от разыменования указателя с любым неправильным значением (при условии если операционка не давала память с этим адресом, а если давала — то получаешь кота в мешке)…
Да, в современных версиях C++ есть полезные фичи на этот счёт, но вот так рассуждать, что использование C++ априори спасёт от подобных багов — это сильно переоценивать C++. Пока не придумали такой язык, где без самодисциплины со стороны программиста компилятор сам найдёт все баги.
люблю/ненавижу в LÖVE, Lua
Вместо того чтобы влепить кучу лого движков на картинку и потом ругать пару не очень удобных из них, попробовал бы уже Godot 3 :-)
Сишник не только не освобождает от вылетов из-за разыменования нулевого указателя, но и добавляет вылеты от разыменования указателя с любым неправильным значением (при условии если операционка не давала память с этим адресом, а если давала — то получаешь кота в мешке)…
Да, в современных версиях C++ есть полезные фичи на этот счёт, но вот так рассуждать, что использование C++ априори спасёт от подобных багов — это сильно переоценивать C++. Пока не придумали такой язык, где без самодисциплины со стороны программиста компилятор сам найдёт все баги.
Вместо того чтобы влепить кучу лого движков на картинку и потом ругать пару не очень удобных из них, попробовал бы уже Godot 3 :-)