Сховати дані гри від гравця?


13

Я працюю над своєю першою грою (C ++), і хочу використовувати дизайн на основі компонентів. Нещодавно я багато читав про це, і вчора вирішив, що хочу зберігати дані об’єктів у зовнішніх файлах JSON, щоб забезпечити більшу гнучкість та легкість доступу.

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

Я не переживаю за показ коду розробникам, тому що гра буде відкритим кодом, але я боюся, що недосвідчений геймер може зламати гру або принаймні зіпсувати задоволення.

Я щось пропускаю? Яка політика щодо приховування даних про ігри (у іграх з відкритим кодом)? Чи нормально все залишати зрозумілим для всіх?

Якщо ні, то який спосіб є прихованим?


3
Зазвичай можливість модифікувати гру - це особливість, а не помилка, особливо для одиночних ігор.
jprete

8
Я б не переймався, насправді. Ваш час краще витратити на хорошу гру. =)
Jari Komppa

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

Відповіді:


33

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

Це як занепокоєння, що гравці використовуватимуть чіт-код режиму бога та переживають, що гравець не буде викликом.

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


20

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

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

Моя порада - скопіювати його та перейменувати розширення файлу. Це дозволить уникнути випадкового вигляду, але вам не складе труднощів працювати. Ви можете використовувати щось на зразок PhysicsFS для роботи з файлами.


5
Так. Я пам’ятаю, як грав на «Колонізації» на «Амізі». Параметри одиниць зберігалися у простому текстовому файлі зі стандартним txtрозширенням. Зігравши досить багато, я вирішив, що ускладнюватиму гру, відрегулювавши ці параметри. Пізніше я поділився цими налаштуваннями з друзями. Було весело ...
liori

3

Ви можете зберігати зашифровані дані , використовуючи симетричну схему шифрування (AES), але це безглуздо: програмне забезпечення є відкритим джерелом , тому кожен може прочитати ключ і, отже, розшифрувати дані. Це просто "зупинило" випадкового геймера від обману.

І це було б безглуздо навіть у проектах із закритим вихідним кодом, оскільки знайти ключ до ігрового бінарника досить просто.

Отже, у вас є дві можливості:

  1. просто залиште матеріал незашифрованим (але принаймні збирайте хеш md5 кожного файлу, щоб ви могли перевірити його під час виконання на будь-який збиток у розповсюдженні вашої гри);
  2. перейдіть із закритим кодом , зашифруйте дані (за допомогою таємного оборотного багатоступеневого алгоритму, наприклад, зворотний рядок + байт та обміняння балів + xor з постійною рядком тощо), а потім зашифруйте все за допомогою AES. Комусь буде важче відновити дані. Набагато важче.

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

@jprete: точно. Це просто питання часу, але час є критичним для людей, тому зробити його важким і невигідним, іноді, досить просто.
gd1

3

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

Також полегшує роботу з іншими розробниками.

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