Непрофессионально ли оставлять игровые ресурсы открытым глазом?

43

У меня все еще есть проблемы с упаковкой своих ресурсов, после прохождения сложных API-интерфейсов и в основном просто zip-файлов, которые истощают мой мозг, я подумал, что я мог бы также упаковать игру с ресурсами, видимыми человеческому глазу, в простую папку.

Это было бы непрофессионально? Лично я никогда не видел, чтобы игры делали это, это в основном означало бы, что игрок мог просто отредактировать все, что он хочет в игре, например пойти в map1.txt и добавить X где-нибудь, чтобы создать стену, или изменить спрайт игрока. пони в MS PAINT.

Bugster
источник
30
Просто подумайте об этом как о сообществе моддинга :)
Orin MacGregor
1
Вы профессиональный разработчик игр с ограниченным бюджетом? Я думаю, это хорошо, если вы не планируете зарабатывать много денег из этой игры. У меня есть несколько советов, хотя. Если вам от этого легче, я обычно редактировал сохраненные файлы в X-COM / UFO Defense
wolfdawn
6
@ArthurWulfWhite: Я думаю, что вместо того, чтобы зарабатывать деньги или нет, точка расщепления заключается в том, каково значение моддированных ресурсов для игры. Для MMORPG моддированные ресурсы / клиент могут дать несправедливое преимущество некоторым игрокам, поэтому вы хотели бы предотвратить это как можно больше. Для многих других игр дружественный к моддингу клиент делает его привлекательным для сообщества моддеров для развития вокруг вашей игры и, как правило, считается хорошей вещью.
Ли Райан
1
Аспект моддинга в Quake (1) был очень хорошо обработан, без показа моделей и файлов bsp обычному геймеру. Я не думаю, что это плохо - скрывать вещи, сохраняя их доступность. Мне понравилось то, что я мог редактировать файлы сохранения в X-COM, я видел это как особенность. Однако было бы глупо, если бы существовал текстовый файл с именем money.txt, в котором я мог бы просто указать, сколько денег я хочу начать, потому что это как бы размывает границу между песочницей и игрой.
волчий рассвет
2
Мне нравится способ Introversion : помещать файлы в переименованные zip-файлы, например sound.dat. Использование несжатых папок с несколькими сотнями файлов делает (де) установку довольно раздражающей.
Тобиас Кинцлер

Ответы:

44

Нет, изменение игровых данных называется моддингом, что является обычной практикой и часто рассматривается как положительный эффект. На самом деле хорошо держать данные игры как можно более прозрачными и редактировать их как можно проще. Тем более, если вы выбираете более «продвинутых» игроков в качестве целевой аудитории.

Причина, по которой вы не найдете много AAA-игр, которые используют простую структуру папок для своих данных, заключается в том, что они используют настраиваемые оптимизированные форматы архивов, чтобы улучшить время загрузки. Недостатком является снижение прозрачности и дополнительные необходимые инструменты в наборе инструментов. Однако для небольших или 2D-игр эти две вещи, как правило, имеют большую ценность, чем улучшенное время загрузки.

Просто убедитесь, что то, что люди видят, не просто огромный беспорядок :) поместите файлы в правильную структуру папок.

API-Beast
источник
Вещи также упакованы, чтобы быть формой сдерживания от кражи (хотя в конечном итоге неэффективно, если ее толкнуть)
CobaltHex
15

В дополнение к другим ответам следует учитывать две важные проблемы:

Испортите сюрпризы
Скажите, что я на полпути через игру и открою папку "видео". Любопытно, я нажимаю на одну и вижу финальную заставку игры.

Проигрышный вызов
Тот же сценарий, но я считаю, что сохраненный игровой формат имеет значение «золото». Я меняю его с 250 на 999999999, и он работает. Внезапно ваша тщательно продуманная кривая сложности, обеспечивающая максимальное удовольствие от игры, исчезла.

И то, и другое может привести к потере интереса к игре, частично, если не полностью. Это может привести к более низкому общему впечатлению о том, насколько хороша игра (несправедливо, но верно).

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

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

MGOwen
источник
4
Совершенно верно. Это не повредит, если вам нужно пройти через несколько препятствий, прежде чем вы можете мод игры. +1 за сценарий видео
волчья заря
14

Возможно, непрофессионально это неправильное слово. Это действительно зависит от игры, плохо ли оставлять открытые файлы.

Для простой одиночной игры игроки и моддеры будут любить вас. Вы дадите им возможность легко менять свою игру и делать то, что они хотят. И имейте в виду, всегда будут моддеры для игры, независимо от того, насколько она маленькая. Многие геймеры будут чувствовать себя ущемленными, если моддинг будет сложным, в конце концов, они купили вашу игру и должны иметь возможность делать в ней все, что захотят.

С другой стороны, легко редактировать игровые ресурсы плохо для многопользовательской игры, так как это считается мошенничеством. Злонамеренные игроки могут заменять контент, чтобы сделать врагов более заметными, стены прозрачными и т. Д. Хотя в коде игры действительно должно быть обеспечено, чтобы активы не были подделаны, подход «пакет активов» имеет преимущество, помогая сдерживать эту деятельность (безопасность посредством неизвестность).

SomeWritesReserved
источник
1
Если вы достаточно хороши, чтобы пропустить проверку контрольной суммы, вы достаточно хороши, чтобы связываться с упакованными ресурсами. Я не думаю, что упаковка более безопасна.
ммс
11

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

rename *.txt *.map

А затем поместите их в папку \ map

Вы можете получить доступ к командной строке из Windows, запущенной cmd

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

Да, это все еще будет редактируемым .. Люди просто с меньшей вероятностью заметят это.

Ответить на комментарий Эрика Робертсона

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

wolfdawn
источник
1
-1 Это не совсем «исправить». Ресурсы все еще там доступны для глаз.
Эрик Робертсон
6
@Eric Robertson Ну, это можно сказать и про упаковку в стиле Quake (1). Не существует волшебного решения, чтобы полностью скрыть активы. Это просто для того, чтобы скрыть их от случайного игрока и несколько обойти упомянутые проблемы. Это означает, что размещение их в структуре папок или в пакете ресурсов не означает, что ресурсы отсутствуют (доступны для глаз), если только вы не используете шифрование.
волчий рассвет
Я знаю, что расширения файлов не имеют значения в Linux, но вы уверены, что это будет работать в Windows?
Jcora
1
@Bane Имя файла не имеет значения точка, попробуйте это, переименуйте файл .txt в .zip, .bmp или .xyz и снова откройте его с помощью блокнота. имя файла имеет значение только тогда, когда вы просматриваете файлы на вашем компьютере, например, .xyz имеет определенный значок, связанный с ними, если вы хотите открыть файл с помощью xsoftware, он будет показывать только файлы * .x по умолчанию, покажет блокнот. TXT-файлы, mspaint покажет GIF, JPEG, BMP, PNG, TIFF, ICOS и т. д. Имена файлов являются просто удобным соглашением (так что вам не нужно просматривать и анализировать данные внутри файла, чтобы определить природу его файла). содержание.
волчий рассвет
1
Спасибо за объяснение! Тогда Windows в этом домене не сильно отличается от Linux
jcora
3

Если это когда-либо было непрофессионально, это не может быть больше. На ранних этапах игры использовались собственные форматы пакетов, прежде всего для сохранения их интеллектуальной собственности (ИС).

Вы можете преодолеть некоторые ограничения, такие как фрагментация и ненужные вызовы функций базовой собственной файловой системы, упаковав все ресурсы в один архив. Это снижает вероятность фрагментации при развертывании пакета на клиентском ПК.
В худшем случае вы можете получить крошечные отдельные файловые ресурсы, разбросанные по секторам жесткого диска. (С появлением SSD этот пункт часто становится спорным)

Но все эти преимущества также можно получить с помощью бесплатного, старого .tarформата Unix .

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

В заключение я бы поспорил о прозрачности в инди-разработке, если только вам явно не нужно защищать свой IP.


Что касается замечательных моментов, поднятых MGOwen: Для предотвращения неожиданностей, связанных с порчей, вы можете переименовать расширение файла, изменить атрибуты файла, использовать необычные форматы мультимедиа, вырезать заголовок мультимедиа, сохранить его в другом месте и т. Д. Во избежание потери вызова используйте двоичную сериализацию Писатель для хранения состояния вашей игры, с дополнительным шифрованием и переменными-приманками, если необходимо.

Отказ от ответственности: я не разработчик игр. Рассматривайте только этот пост как отправную точку ...

Лоренц Ло Зауэр
источник
1
«Чтобы предотвратить проблему« Потерять », используйте средство записи двоичной сериализации для хранения состояния вашей игры, с дополнительным шифрованием и переменными-приманками, если необходимо». Если люди хотят обмануть, они будут обманывать. С помощью отладчика в памяти, который ищет, какие четыре байта в памяти соотносятся с вашим золотом и отслеживает изменения в нем, если это необходимо.
Random832,
1
@ Random832 Аминь этому.
Лоренц Ло Зауэр
Ваш ответ неверный. В моем опыте доступ к содержимому 6000 жестяных файлов в 5–10 раз медленнее, чем доступ к одному и тому же содержимому из 1 файла. В случае, когда загрузка занимает 5 секунд на SSD, 15 секунд с обычного жесткого диска, разделяющего те же данные на редактируемые файлы, и загрузка переходит к более чем 30 секундам на обоих (HDD и SSD). Так что по какой-то причине увеличение более выражено на SSD, чем на HDD. (Нет RAID в обоих случаях)
Койот
@Coyote У меня сложилось впечатление, что я доказывал ту же мысль в посте ...? Фрагментация (т. Е. Ограничения аппаратного контроллера, физические ограничения платтеров ...) + много вызовов API файловой системы (часто через обертки) = медленно
Lorenz Lo Sauer,
Это конкретное предложение неверно: «С приходом SSD этот пункт становится спорным»
Койот
1

Это легко исправить, иначе поисковая индексация найдет финальное видео и т. Д. Итак,

Для файлов данных: перевернуть биты с помощью xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Спрятать «Золото: 250» от GREP.

Просто закодируйте с тем же (случайным) значением xor.

Чтобы сохранить сцены вдали от случайных пользователей, попробуйте следующее: Machinarium перевел имена файлов, чтобы \ videos стал \ 0101, а затем все файлы имели 8-значный двоичный код, за которым следовал .101, чтобы остановить ассоциации файлов.

user1212212
источник