Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
ApocalypsisRus
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 58
#1

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

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

Недавно я решился попробовать создать RPG игру на C++ поскольку с языком у меня особых проблем нету, и мне захотелось поэксперементировать со своими навыками. И, собственно, когда я создавал сохранения, использующие чтение из текстового файла, у меня назрел вопрос: "Можно ли сделать так, чтобы пользователи не могли изменять этот файл, или каким образом мне лучше сделать структуру сохранений?".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2015, 16:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать сохранение в игре? (C++):

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

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

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

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

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

Как изменить 2d графику на 3d в игре? - C++ Builder
собственно требуется в игре арканоид(или рикошет) написанной на 6ом билдере изменить 2d шар и блоки на 3d. не подскажете литературу или...

7
nmcf
5350 / 4670 / 1562
Регистрация: 14.04.2014
Сообщений: 18,605
07.10.2015, 16:57 #2
Зашифруй.
0
ApocalypsisRus
0 / 0 / 0
Регистрация: 12.12.2013
Сообщений: 58
07.10.2015, 17:19  [ТС] #3
Огромное спасибо за столь неразвернутый, неясный и ни капли не исчерпывающий ответ. В ответ к тебе у меня только один вопрос: "Что ты имел в виду?".
0
nmcf
5350 / 4670 / 1562
Регистрация: 14.04.2014
Сообщений: 18,605
07.10.2015, 17:23 #4
Ответ мой предельно ясный. Ты не хочешь, чтобы файл редактировали - я предложил зашифровать.
0
hoggy
6672 / 2856 / 491
Регистрация: 15.11.2014
Сообщений: 6,367
Завершенные тесты: 1
07.10.2015, 23:09 #5
Цитата Сообщение от ApocalypsisRus Посмотреть сообщение
В ответ к тебе у меня только один вопрос: "Что ты имел в виду?".
http://g.zeos.in/?q=%D1%81%2B%2B%20%...1%8B%D0%B5&m=1


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

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

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

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

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

НО!!! Сам пытаюсь писать игру, и скажу, что защита ее от читерства - далеко не самая первая задача...
0
Evg
Эксперт CАвтор FAQ
18029 / 6261 / 427
Регистрация: 30.03.2009
Сообщений: 17,200
Записей в блоге: 27
10.10.2015, 10:55 #7
Цитата Сообщение от ApocalypsisRus Посмотреть сообщение
"Можно ли сделать так, чтобы пользователи не могли изменять этот файл, или каким образом мне лучше сделать структуру сохранений?"
Можно сделать что угодно, вопрос только в том, в какую цену это выльется. Можно кучу времени убить не плохо взламываемые файлы сохранения, а можно это время потратить на то, чтобы сделать хорошую игру. У тебя ещё нет ни одного пользователя, а ты уже пытаешься с ними бороться
0
OverDrive1g
0 / 0 / 0
Регистрация: 25.05.2013
Сообщений: 8
20.10.2015, 22:50 #8
Чтобы обычный юззверь не понял что да как в файле, записывай в двоичном режиме.
Двоичный файл отличается от текстового тем, что данные в нем представлены во внутренней форме. А поскольку при внутреннем представлении используется двоичная система счисления, то «в честь ее» файлы и называются двоичными. По существу, двоичный файл является аналогом внутренней (оперативной, физической) памяти – неограниченным массивом байтов с возможностью непосредственного обращения (произвольного доступа) к любой его части.
0
20.10.2015, 22:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2015, 22:50
Привет! Вот еще темы с ответами:

При открытии файла через SaveFileDialog сделать его автоматическое сохранение - C++ Builder
давно не работал с ними, вот наткнулся... С помощью openfiledialog открываю файл нужного мне разрешения и по определенному действию мне...

Размышления о том как связать класс и картинку в игре 2D - C++ Builder
Всем привет! :) наверняка многие пробовали делать простые игры. После нескольких моих попыток я понял, что нужно все делать просто и...

Как сделать сохранение результатов в игре ? - Java SE
import java.io.IOException; public class game { public static void PrintField() { for (int i = 0; i < 3; i++) { for...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru