Ваша игра ожидает загрузки определенного ресурса, но он не найден. Как справиться с ситуацией? Например:
Texture* grassTexture = LoadTexture("Grass.png"); // returns NULL; texture not found
Mesh* car = LoadMesh("Car.obj"); // returns NULL; 3D mesh not found
Он мог быть случайно удален пользователем, поврежден или написан с ошибкой во время разработки.
Некоторые потенциальные ответы:
- Утверждения (в идеале только во время разработки)
- Выйти из игры изящно
- Брось исключение и попробуй его обработать.
Какой способ лучше?
Один из способов сделать это - проверить, не повреждены ли данные игры. Если нет, автоматически загрузите недостающие данные. ошибка> попросить пользователя подтвердить данные> загрузить. Вам, очевидно, нужно создать небольшой инструмент для этого.
—
Сидар
@ Сидар Мне нравится то, что вы сказали, больше, чем ответ с наибольшим количеством голосов, может быть, вы сможете лучше объяснить, что вы пытаетесь сказать
—
concept3d
Гадость ошибок в том, что иногда она просто ломает игру, и люди не могут в нее поиграть / запустить ее. Например, в Steam, если ваша игра не работает должным образом, вы можете проверить данные игры. Когда что-то кажется поврежденным / отсутствующим / измененным, Steam автоматически повторно загрузит эти файлы. Я не знаю точно, как они это делают. Но они, очевидно, сверяют это с некоторыми данными. Возможно хэш-коды? Я действительно не знаю. Но у вас всегда должен быть стандартный ресурс для замены (просто текстура с надписью «ошибка» или что-то в этом роде)
—
Сидар
@ Сидар, почему бы не отформатировать его в ответе?
—
concept3d
Потому что я не знаю точно, как это работает, и не хочу быть дезинформирующим об этом. Поэтому я не могу дать вам правильный ответ.
—
Сидар