Чи непрофесійно залишати ігрові ресурси відкритим оком?


43

У мене все ще виникають проблеми з запакуванням моїх ресурсів, після проходження складних API та в основному лише поштових файлів, які виснажують мій мозок, я подумав, що зможу також запакувати гру з ресурсами, видимими людському оці, у просту папку.

Це було б непрофесійно? Особисто я ніколи навіть не бачив, щоб ігри робили це, це в основному означало б, що гравець може просто редагувати все, що хоче в грі, як-от перейти в map1.txt і додати десь X, щоб створити стіну або змінити прайтер гравця на поні в MS PAINT.


30
Просто подумайте про це як про модную спільноту :)
Орін Макгрегор

1
Ви професійний розробник ігор з бюджетом? Я думаю, що це добре, якщо ви не плануєте заробляти багато грошей на цій грі. Однак у мене є кілька порад. Якщо ви відчуваєте себе краще, я редагував збережені файли в X-COM / UFO Defense
wolfdawn

6
@ArthurWulfWhite: Я вважаю, що замість того, щоб заробляти гроші чи ні, точка розщеплення - це те, що стосується модифікованих ресурсів для гри. Для MMORPG модифіковані ресурси / клієнт можуть дати несправедливу перевагу певним гравцям, тому ви хочете запобігти цьому якомога більше. Для багатьох інших ігор, сприятливий для модінгу клієнт робить його привабливим для моддингового співтовариства, що розвивається навколо вашої гри, і, як правило, вважається хорошою справою.
Лі Лі Райан

1
Модерний аспект у Quake (1) дуже добре оброблявся, не піддаючи моделей та файли bsp випадковим геймерам. Я не думаю, що погано приховувати речі, зберігаючи їх легко доступними. Мені сподобалося те, що я можу редагувати збережені файли в X-COM, я бачив це як особливість. Однак було б нерозумно, якби був текстовий файл під назвою money.txt, де я міг би просто набрати, скільки грошей я хочу почати, тому що це наче розмиває межу між пісочницею та грою.
вовкдаун

2
Мені подобається спосіб інтроверсії : Помістіть файли у перейменовані поштові файли, наприклад sound.dat. Використання нестиснених папок з кількома сотнями файлів робить установку (де) досить дратівливою.
Тобіас Кіенцлер

Відповіді:


44

Ні, це не так, зміна ігрових даних називається модінгом, що є звичайною практикою і часто сприймається як позитивний ефект. Насправді добре зберігати дані гри максимально прозорими та редагувати їх максимально без проблем. Тим більше, якщо ви вибираєте більш "просунутих" гравців в якості цільової аудиторії.

Причина, по якій ви не знайдете багато AAA-ігор, які використовують для своїх даних просту структуру папок, полягає в тому, що вони використовують оптимізовані архівні формати, щоб покращити час завантаження. Мінусом є зниження прозорості та додаткові необхідні інструменти в ланцюжку інструментів. Однак для менших або двомірних ігор ці дві речі зазвичай коштують більше, ніж покращений час завантаження.

Просто переконайтесь, що те, що бачать люди, - це не просто величезний безлад :), розмістіть файли у належній структурі папок.


Речі також упаковані як форма стримування від крадіжок (хоча в кінцевому рахунку неефективна, якщо її натиснуть)
CobaltHex

15

Окрім інших відповідей, слід врахувати ще два важливих питання:

Бридні сюрпризи
Скажіть, що я перебуваю на півдорозі гри та відкрию папку "відео". Цікаво, я натискаю на один і трапляюсь бачити остаточний розріз гри.

Втрата виклику
Той самий сценарій, але я вважаю, що збережений формат гри має значення "золото". Я змінюю його з 250 на 999999999, і він працює. Раптом ваша ретельно складена крива складності, максимізуючи задоволення від гри, пропала.

Обидва можуть призвести до того, що хтось втратить інтерес до гри, частково, якщо не цілком. Це може призвести до нижчого загального враження від того, наскільки гра була хороша (несправедлива, але правдива).

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

Навіть якщо ви хочете заохотити модінг, ви все одно можете захистити користувачів від руйнування власного досвіду гри «випадково».


4
Точно правильно. Це не завадить, якщо вам потрібно пройти кілька перешкод, перш ніж ви зможете модифікувати гру. +1 для сценарію відео
вовкдаун

14

Можливо, непрофесіонал - це неправильне слово. Це дійсно залежить від гри, чи не залишати відкриті файли поганою справою.

За просту одиночну гру гратимуть вас гравці та моддери. Ви б давали їм можливість легко змінювати свою гру і робити все, що вони хочуть. І майте на увазі, завжди будуть моди для гри, незалежно від того, наскільки гра мала. Багато геймерів будуть відчувати себе здивованими, якщо модінг утруднений, зрештою, вони купили вашу гру, і вони повинні мати можливість робити в ній все, що хочуть.

З іншого боку, легко редагувати ігрові активи погано для багатокористувацької гри, оскільки це вважається обманом. Зловмисні гравці можуть замінити вміст, щоб зробити ворога помітнішим, стіни прозорими і т. Д. Хоча ваш ігровий код дійсно повинен примушувати до того, що активи не підлягають підробці, підхід "пакет активів" має перевагу, що допомагає стримувати цю діяльність (безпека через незрозумілість).


1
Якщо ви достатньо хороші, щоб обійти контрольну суму, ви також досить поспішати з упакованими активами. Я не думаю, що упаковка є більш безпечною.
mmyers

11

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

rename *.txt *.map

А потім помістіть їх у папку \ map

Ви можете отримати доступ до командного рядка з Windows, що працює cmd

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

Так, воно все одно буде редагуватися .. Люди просто будуть рідше помічати це.

Щоб відповісти на коментар Еріка Робертсона

Якщо ви хочете належним чином приховати вміст вашої гри від гравців, ви можете використовувати шифрування RSA для цих текстових файлів і об'єднати їх в один текстовий файл, поки ви знаходитесь в ньому. Це не повинно створювати особливих проблем, хоча я підозрюю, що це набагато більше, ніж перестаратися.


1
-1 Це насправді не "виправлення". Ресурси все ще доступні для очей.
Ерік Робертсон

6
@Eric Robertson Ну, це можна сказати і про упаковку стилю Quake (1). Не існує магічного рішення, щоб повністю приховати активи. Це лише покликане приховати їх від випадкового гравця і дещо обійти проблеми, про які він згадав. Якщо говорити, що їх розміщення в структурі папок або пакета активів не означає, що активи також відсутні (доступні для очей), якщо ви не використовуєте шифрування.
вовкдаун

Я знаю, що розширення файлів для Linux не мають жодного значення, але ви впевнені, що це буде працювати в Windows?
jcora

1
@Bane Ім’я файлу не має значення періоду, спробуйте це, перейменуйте .txt файл у .zip, .bmp чи .xyz та знову відкрийте його в блокноті. Ім'я файлу має значення лише під час перегляду файлів на ПК, наприклад .xyz має певний значок, пов’язаний з ними, якщо ви бажаєте відкрити файл із програмним забезпеченням xsoftware, він відображатиме лише * .x файли за замовчуванням, відображатиметься блокнот. Файли txt, mspaint показуватимуть gifs, jpegs, bmps, pngs, tiff, icos тощо. Назви файлів - це лише зручна умова (так що вам не доведеться переглядати та аналізувати дані всередині файлу, щоб визначити характер його зміст.
вовкдаун

1
Дякуємо за пояснення! Тоді Windows, здається, не так сильно відрізняється від Linux у цьому домені
jcora

3

Якщо це колись було непрофесійно, то, можливо, цього більше не буде. На початку ігор використовували свої власні формати пакетів, насамперед для збереження своєї інтелектуальної власності (IP).

Ви можете подолати деякі обмеження, такі як фрагментація та непотрібні виклики функцій базової файлової системи, запакувавши всі ресурси в єдиний архів. Це робить події фрагментації менш ймовірними при розгортанні пакету на ПК клієнта.
У гіршому випадку, у вас може виникнути крихітні окремі файлові ресурси, розкидані по ваших секторах жорсткого диска. (З приходом SSD цей пункт часто видається спірним)

Але всі ці переваги можна отримати і у вільному (Unix) віковому .tarархівному форматі.

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

Підсумовуючи , я б заперечував за прозорість у розвитку Indie, якщо тільки явно не потрібно захищати свій IP.


Щодо чудових моментів, які викликаєMGOwen : Щоб запобігти зіпсованим сюрпризам, ви можете перейменувати розширення файлу, змінити атрибути файлів, використовувати незвичайні медіа-формати, вирізати заголовок медіа-файлу та зберігати його в іншому місці тощо. Щоб запобігти втраті проблеми, використовуйте бінарну серіалізацію сценарій, щоб зберігати стан вашої гри з додатковим шифруванням та перемінними змінними, якщо потрібно.

Відмова: Я не розробник ігор. Розглядайте цю публікацію лише як відправну точку ...


1
"Щоб запобігти втраті виклику, використовуйте пристрій запису бінарної серіалізації для зберігання стану вашої гри з додатковим шифруванням та перемінними приманками, якщо потрібно." Якщо люди хочуть обдурити, вони обдурять. За допомогою налагоджувача в пам'яті, який шукає, що чотири байти в пам'яті співвідноситься з вашим золотом, і відстежує зміни, якщо це необхідно.
Випадково832

1
@ Random832 Амінь до цього.
Лоренц Ло Зауер

Ваша відповідь неправильна. Доступ до вмісту 6000 тонких файлів, на мій досвід, від 5 до 10 разів повільніше, ніж доступ до одного і того ж вмісту з 1 файлу. У випадку, коли завантаження займає 5 секунд на SSD, 15 секунд із звичайного жорсткого диска розбиває ті самі дані до редагованих файлів, а завантаження стрибає на понад 30 секунд на обох (HDD та SSD). Так, чомусь збільшення сильніше виражений на SSD, ніж на HDD. (Немає RAID в обох випадках)
Койот

@Coyote Я був під враженням, що я сперечався за той же пункт у пості ...? Фрагментація (тобто обмеження апаратного контролера, фізичні обмеження блюд ...) + багато викликів API файлової системи (часто через обгортки) = Повільно
Лоренц Ло Зауер

Цей конкретний вирок тоді неправильний: "З приходом SSD цей пункт виводиться суперечливим"
Койот

1

Це легко виправити та іншим чином індексація пошуку знайде ваші фінальні відео тощо. Отже,

Для файлів даних: переверніть біти з xor

   realByte_cpp = readByte_cpp ^ 0x44; // xor

Щоб приховати "Золото: 250" від GREP.

Просто кодуйте однакове (випадкове) значення xor.

Щоб схилити сцени від випадкових користувачів, спробуйте це: Machinarium переклав назви файлів, щоб \ video стали \ 0101, і всі файли тоді мали 8-двійковий розряд, а потім .101, щоб зупинити асоціації файлів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.