Ігрові програмісти покладаються на один із двох основних методів зберігання даних:
- зберігати кожен файл даних як окремий файл
- зберігати кожен файл даних у власному форматі архіву
Недоліком першого рішення є проблема витраченого місця на диску, а також проблема повільніших установок.
Друге рішення передбачає власні підводні камені, по-перше, ви повинні написати все своє зображення / звук / тощо. завантаження процедур, які використовують користувацький API для доступу до архівованих даних. Наступним недоліком є те, що вам потрібно написати власну архівну утиліту, щоб створити архіви в першу чергу.
Якщо ви завжди завантажуєте всі файли з архіву, TAR / GZ може бути не дуже хорошою ідеєю, оскільки ви не можете витягти конкретні файли у міру необхідності. З цієї причини багато ігор використовують архіви ZIP, які дозволяють витягувати окремі файли за потребою (хороший приклад - Quake 3, файли PK3 - це не що інше, як ZIP-файли з іншим розширенням).
EDIT: "Сховати" структуру папки ігор та "Keep" лише виконувані файли
Інше рішення часто використовується для "приховування" ігрових файлів у структурі папок. Зберігайте лише свої виконувані файли та, можливо, файл readme у головному каталозі та переміщуйте ігрові файли у підпапку з назвою "дані" чи інші пов'язані з цим.
EDIT: Gamedev Tuts Plus мають хороший ресурс
EDIT: лібрхів
Одне потенційне бібліотечне рішення - це бібліотека архівації, яка буде обробляти вилучення файлів з архіву, наприклад, ZIP-файл. Це навіть дозволяє призначити витягнутий файл стандартному покажчику FILE, що зробило б взаємодії з будь-якими іншими бібліотеками потенційно більш простими.
EDIT: Файли ZIP-формату з альтернативним розширенням
Тут мені подобається коментар @Joachim Sauer
Використання файлів ZIP-формату з альтернативними розширеннями також має велику традицію поза межами ігор: Java це робить , формат OpenDocument (він же формат OpenOffice / LibreOffice) , навіть Office Open XML (він же "новий" формат Microsoft Office) робить це .