3 / 3 / 0
Регистрация: 12.12.2013
Сообщений: 93

Как сделать сохранение в игре?

07.10.2015, 16:47. Показов 6474. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Недавно я решился попробовать создать RPG игру на C++ поскольку с языком у меня особых проблем нету, и мне захотелось поэксперементировать со своими навыками. И, собственно, когда я создавал сохранения, использующие чтение из текстового файла, у меня назрел вопрос: "Можно ли сделать так, чтобы пользователи не могли изменять этот файл, или каким образом мне лучше сделать структуру сохранений?".
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.10.2015, 16:47
Ответы с готовыми решениями:

Как сделать Game over в игре
Здравствуйте, разрабатываю змейку через OpenGL на с++ и в принципе игра работает , но хотелось бы как то сделать что бы если змейка...

Как сделать сохранение?
как сделать сохранение всех сточек в текстовый файл для этой программы? подскажыте...

Подскажите как сделать несколько шашек в игре
Здравствуйте, уважаемые, вот я сделал недо програму для игры в шашки(поле 10 на 10). программа пока умеет только рисовать поля и двигать...

7
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.10.2015, 16:57
Зашифруй.
0
3 / 3 / 0
Регистрация: 12.12.2013
Сообщений: 93
07.10.2015, 17:19  [ТС]
Огромное спасибо за столь неразвернутый, неясный и ни капли не исчерпывающий ответ. В ответ к тебе у меня только один вопрос: "Что ты имел в виду?".
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
07.10.2015, 17:23
Ответ мой предельно ясный. Ты не хочешь, чтобы файл редактировали - я предложил зашифровать.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
07.10.2015, 23:09
Лучший ответ Сообщение было отмечено ApocalypsisRus как решение

Решение

Цитата Сообщение от ApocalypsisRus Посмотреть сообщение
В ответ к тебе у меня только один вопрос: "Что ты имел в виду?".
http://g.zeos.in/?q=%D1%81%2B%... %D0%B5&m=1


плюс к этому ещё можно провернуть трюк с контрольной суммой.
суть такая: после зашифровки срисовываем контрольную сумму файла.
её может организовать шифровальная библиотека.
ну или просто зашифрованный файл вычитываем и смотрим сумму значений байтов.

при загрузке проверяем контрольную сумму.
если не изменилась - скорее всего никто ничего в файле не менял.

в контрольную сумму можно так же включать дату последнего изменения файла.
0
0 / 0 / 1
Регистрация: 09.10.2015
Сообщений: 9
09.10.2015, 21:18
ApocalypsisRus: Поясняю про ответ "зашифровать". Вот скажем ты подготовил файл сохраненку текстовую. Далее в нем каждый байт сдвигаешь на известное число , точнее (байт+икс)%256. Скажем если икс 10, то 150 превратится в 160, а 250 не в 260, а в 5.
Теперь файл выглядит внешне совершенно бессмысленно. Конечно сколь-нибудь разбирающийся в хакинге это раскодирует мигом) Но вот простой пользователь - увидит только бессмысленный набор символов.

Ну и при обратном чтении, при загрузке - надо раскодировать.

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

НО!!! Сам пытаюсь писать игру, и скажу, что защита ее от читерства - далеко не самая первая задача...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.10.2015, 10:55
Цитата Сообщение от ApocalypsisRus Посмотреть сообщение
"Можно ли сделать так, чтобы пользователи не могли изменять этот файл, или каким образом мне лучше сделать структуру сохранений?"
Можно сделать что угодно, вопрос только в том, в какую цену это выльется. Можно кучу времени убить не плохо взламываемые файлы сохранения, а можно это время потратить на то, чтобы сделать хорошую игру. У тебя ещё нет ни одного пользователя, а ты уже пытаешься с ними бороться
0
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 8
20.10.2015, 22:50
Чтобы обычный юззверь не понял что да как в файле, записывай в двоичном режиме.
Двоичный файл отличается от текстового тем, что данные в нем представлены во внутренней форме. А поскольку при внутреннем представлении используется двоичная система счисления, то «в честь ее» файлы и называются двоичными. По существу, двоичный файл является аналогом внутренней (оперативной, физической) памяти – неограниченным массивом байтов с возможностью непосредственного обращения (произвольного доступа) к любой его части.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2015, 22:50
Помогаю со студенческими работами здесь

Как сделать победу в игре Крестики-Нолики
Я пытался создать игру XO(крестики и нолики) но вот как сделать победу я не знаю. думал каждый вариант победы прописать в коде для...

Как сделать сохранение
Есть программа для вот её задание (Постановка задачи. Составить программу для наблюдения за своевременной оплатой электроэнергии...

Как сделать камеру (в игре) :D
Пишу 2D игру на движке HGE. Надо сделать камеру, чтобы она следовала за игроком (по Х-координате). Сделал так: float Offset =...

Как сделать обновление карты в игре
Наше такую штуку. Допустим есть функция draw_map() - рисует карту, и чтобы она обновлялась её пихают в цикл, например: while(1) { ...

Как в игре сделать счёт голов?
Помогите пожалуйста. Как в игре сделать счёт голов? Думал сделать что когда мяч достигает координат пола, тогда засчитывался гол, но так...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru