Я хочу создать игру, которая сохраняет ваш прогресс с помощью файлов. Можно ли что-то сделать в соответствии с этим псевдокодом?
/*game_data = The game's content*/
function saveGame () {
create_file(game_data, "your-game-progress.txt")
}
function loadGame () {
game_data = load_file("your-game-progress.txt")
}
Есть ли способ сделать это с внешними библиотеками или без них?
Используете ли вы фреймворк вроде React или NextJS? Если это так, есть несколько вариантов хранения плоских файлов.
Если вы используете vanilla JS, единственным реальным вариантом для хранения на стороне клиента является метод localStorage()
.
/*game_data = The game's content*/
var game_data = {
"player_name": "Joe",
"experience": 4347873,
"level": 10,
"HP": 255
};
function saveGame () {
localStorage.setItem('game_data', game_data);
//create_file(game_data, "your-game-progress.txt")
}
function loadGame () {
game_data = localStorage.getItem('game_data');
//game_data = load_file("your-game-progress.txt")
}
function deleteGame() {
localStorage.removeItem('game_data');
/* OR */
localStorage.clear(); // clears all local storage items
}
Однако проблема заключается в том, что игровые данные будут потеряны, когда срок действия файла cookie истечет, или пользователь очистит свои файлы cookie или использует другой браузер. Возможно, вы захотите рассмотреть решение на стороне сервера.