Программирование игры: файл .DAT? - PullRequest
2 голосов
/ 14 февраля 2010

Я видел, что во многих играх используется что-то похожее на файл .DAT или файл определенного типа, который игра имеет для себя. Я только начинаю с C ++ и DirectX, и мне было интересно хранить мою информацию в чем-то похожем на .DAT.

Моя первоначальная концепция заключалась в том, что он будет содержать информацию о файлах, которые вы хотите сохранить в файле .DAT. Нечто похожее на файл .RAR. К сожалению, мои навыки работы с Google не помогли мне найти ответы.

Сейчас я просто загружаю текстуры и звуковые файлы из папки с именем Data.

РЕДАКТИРОВАТЬ: Хотя я понимаю, что .DAT является коротким для данных, и я обнаружил, что файл .DAT, как правило, содержит любой ассортимент информации, я все еще не уверен, как поступить что-то вроде упаковки изображений и звуковых файлов в любой тип файла и возможности их чтения.

Я не уверен в том, что для выполнения своей задачи я буду использовать fstreams, однако я рассмотрю потоки, связанные с хранением данных, и способы их правильного чтения. Между тем, если у кого-то есть другой ответ на эту новую информацию, он будет признателен.

РЕДАКТИРОВАТЬ: Благодаря ответам, я наткнулся на аналогичный вопрос на стеке потока и чувствовал, что поделюсь им здесь. Объединение ресурсов в один двоичный файл

Ответы [ 6 ]

4 голосов
/ 14 февраля 2010

Не думаю, что на самом деле существует такая вещь, как формат файла .dat. Это сокращение от «data», и различные приложения просто помещают в него некоторые проприетарные вещи и называют его «.dat». Вы можете прочитать о классах fstream, чтобы выполнить ввод-вывод файла в C ++. См. Ввод / вывод с файлами .

Что вы тогда делаете, это создаете свой собственный формат файла. Например, первые 4 байта - это int, который указывает количество блоков в .dat, и для каждого блока у вас есть 4 байта, указывающих длину каждого блока, 4 байта, указывающих тип блока, сами данные переменной длины. что-то в этом роде.

1 голос
/ 14 февраля 2010

Профессиональные игры используют технику, в которой все необходимые ресурсы (модели, текстуры, звуки, ai, config и т. Д.) Упакованы в один файл, что делает его более быстрым в управлении, трудным для изменения (некоторые даже используют). виртуальной файловой системы из того, что находится внутри файла данных). Теперь то, что находится внутри файла, отличается в зависимости от потребностей игры и структур данных, которые вы используете.

Если вы только начинаете работать с gamedev, я рекомендую придерживаться того, чтобы все ваши активы были разделены и не слишком беспокоились о том, чтобы упаковать их в один файл.

Теперь, если вы действительно хотите начать использовать упакованный формат, вот хороший указатель: Создание формата файла PAK

1 голос
/ 14 февраля 2010

DAT, очевидно, обозначает данные, и нет никакого реального или фактического стандарта на то, к чему фактически относится это расширение. Ваши решения в отношении лучших форматов файлов должны основываться на технических соображениях, а не на бессмысленных попытках обеспечить безопасность из-за неясности.

0 голосов
/ 14 февраля 2010

Файл данных может действительно содержать что угодно. Это может быть как простой zip-архив с измененным расширением, так и полностью настраиваемый тип файла. Если вы только начинаете, вы, вероятно, не хотите писать свой собственный формат файла, хотя это может быть весело и познавательно. Если вы хотите инкапсулировать ваши файлы данных в какой-то контейнер, вам, вероятно, следует использовать zip, paq или tar.gz.

0 голосов
/ 14 февраля 2010

.dat, как уже говорили другие, буквально просто файл данных. На самом деле расширение файла означает не что иное, как ассоциацию с программой. Например, я мог бы создать текстовый процессор, который сохраняет все документы с расширением .mp3. Эти файлы не могут быть воспроизведены в любом мультимедийном программном обеспечении, но программное обеспечение может попытаться. Расширения файлов используются, чтобы помочь программам узнать, какие типы файлов они могут и не могут открыть, однако эти правила не должны соблюдаться.

В любом случае, вы можете записать любую информацию в файл. Программисты / авторы программного обеспечения часто выбирают .dat в качестве расширения этого файла, поскольку он стал стандартом для обозначения «этот файл содержит только тонну данных» и что данные не обязательно содержат какие-либо стандартизированные верхние и нижние колонтитулы или форматирование .

0 голосов
/ 14 февраля 2010

Вот ссылка , в которой утверждается, что .dat - это формат фильма, а DAT - сокращение от Digital Audio Tape.

Я не уверен, что верю ссылке, но я делаю помню кое-что о поддерживаемом Microsoft формате DAT, давно, когда я использовал более раннюю версию Windows.

Это более логично для логического расширения какого-либо файла DATA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...