Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
3 / 3 / 0
Регистрация: 12.12.2013
Сообщений: 93

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

07.10.2015, 16:47. Показов 6469. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Философия технологии
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru