Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37

Текстовый квест, работа с БД

13.02.2022, 14:40. Показов 1755. Ответов 11

Студворк — интернет-сервис помощи студентам
Доброго времени суток, я пишу текстовый квест на python и для хранения текста использовал txt и csv но, понял что это не практично и не профессионально. БД я использую как для создания save-ов для сохранения состояния на момент прохождения квеста, сохранение внутриигровых настроек и не посредственно для хранения всевозможного текста который мы можем прочитать. Т.к квестов много и они не маленькие, в результате только текста около 1Gb(без преувеличения). Задача в том чтобы найти лучшый БД модуль на питон. Не важно, будь то SQL, No-SQL, New SQL, простой JSON, BJOS, UJOS... Главное стобы работало бысто. PS. Т.к квест(особенно хороший) дело кропотливое, то я ищу весь материал в сети, книги конвертирую в txt, разбиваю текст на части и каждую часть и прогоняю текст через for-in и каждой часть по очереди записанную в переменую прогоняю через db.set('часть номер' , 'текст'), db.dump() и все данные сохраняются в таблице.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.02.2022, 14:40
Ответы с готовыми решениями:

Текстовый квест, работа с csv
Хорошое время для написания квеста, тк мне отказывали с моими извращенскими просьбами написать текст-квест полностьб в py-файлах, то я...

Текстовый квест на питоне
Напишите небольшой текстовый квест. Пользователю сообщается, что его персонаж находится в комнате, из которой есть несколько ходов (не...

Текстовый квест
Вечер добрый. Такое дело: я совсем новичок, захотелось написать простенький текстовый КВЕСТ (пока что без веток сюжета, тк сейчас чисто в...

11
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
13.02.2022, 15:22
Не ясна постановка вопроса. Если БД уже используется для сейвов, то зачем нужна еще одна БД? В той же БД еще таблицу текстов сделать и все.
0
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
13.02.2022, 17:38  [ТС]
Treasure Hunter, Вы не так поняли. Я использовал csv и txt для хранения информации, но понял что ето не практично, мне надо сменить БД которую я использую в качестве обработки информации на более быструю и надежную, но сколько я не перерыл информации, нигде не нашел ответ на то, какая БД лучше подойдет для моей задачи. Ранее использовал выше упомянутые спосоьы хранение информации, тк они самые простые и примитивные, а теперь мне надо выдвинуть свой проект на более высокий уровень
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
13.02.2022, 18:26
Т.е. БД - это сейчас подразумевается то, что является csv и txt? Реальная БД не используется?
Если это так, то как предполагается играть в игру? Т.е. где предполагается держать БД, в сети или на компе, где стоит игра?

Если нет какой-то определенности с БД, то советую ОРМ использовать (типа SQLAlchemy), а не чистые SQL-запросы. Потом, если не хватит производительности, просто поменять соединение на другую БД. В таком случае можно просто на компе опробовать что-то с SQLite, а затем на большую БД перейти, если будет необходимость.
0
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
13.02.2022, 18:35  [ТС]
Treasure Hunter, singleplayer only, бд с текстом, сейвами, exe-шник, файлы движка и все друг с другом, никаких серверов
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
13.02.2022, 18:47
pyatpy, SQLite тебе за глаза хватит
1
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
13.02.2022, 20:18
Цитата Сообщение от pyatpy Посмотреть сообщение
Treasure Hunter, singleplayer only, бд с текстом, сейвами, exe-шник, файлы движка и все друг с другом, никаких серверов
Если на компе, то SQLite (как и писал, можно попробовать обернуть в SQLAlchemy). Если данные можно представить в табличном виде, то это самый простой вариант будет. И быстрее, чем файловая система в Win. Если же данные проще представить как словарь (объект), то можно попробовать TinyDB (обертка json). Но по скорости может быть не будет выигрыша. Зато конвертация данных легко пройдет.
1
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
13.02.2022, 20:24
pyatpy, https://ru.wikipedia.org/wiki/Сетевая_модель_OSI - уже устарела, но для понимания, самое то))
1
 Аватар для pyatpy
3 / 2 / 0
Регистрация: 18.04.2021
Сообщений: 37
13.02.2022, 23:27  [ТС]
Aviz__, спустя час, я обработал внушительный кол-во байтов инфы, преисполнился в своем познании и "сетевоведении")
Я так понял(или нет), что вы в етом вопросе более компетентны, не подскажите БД, для моего проекта, или же по словам Treasure Hunter мне подойдет sqlite3, или tinydb
0
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
14.02.2022, 14:32
Цитата Сообщение от pyatpy Посмотреть сообщение
по словам
попробуй по словам одним, потом по словам другим, сделай замеры и реши сам)).
0
155 / 120 / 38
Регистрация: 12.12.2013
Сообщений: 374
14.02.2022, 15:58
Цитата Сообщение от pyatpy Посмотреть сообщение
Т.к квестов много и они не маленькие, в результате только текста около 1Gb(без преувеличения). Задача в том чтобы найти лучшый БД модуль на питон. Не важно, будь то SQL, No-SQL, New SQL, простой JSON, BJOS, UJOS... Главное стобы работало бысто.
Мое мнение, не нужно искать БД быстрее. Они почти все будут быстрее, чем файловая система. Мы же не изучаем досконально какую файловую систему применять на компе - NTFS или FAT32. Просто берем и пользуемся. Нужно искать более удобный путь для интерпретации своих данных. Что такое 1 гиг для БД? Да ничто. У нас на работе объем данных доходит до 100 тб. Вот его тяжело ворочать. Лучше представить как эти данные будут расположены. Если удобно в виде таблицы и доступ по индексам, то берем SQL. Если удобнее интерпетировать как словарь данных или объект, то берем NoSQL. Не надо брать что-то замороченное. Потом трудно будет искать ответы на вопросы, когда они возникнут. Не хватит быстродействия (что сомнительно), кешируем с помощью Redis или чего-то подобного.
Для всего, что не требует сервера БД, проще брать встроенные в Питон решения. И в этом как раз SQLite поможет.
Проблема с игрой в чем - как перенести ее на другой комп? С той же SQLite это проще всего. На новый комп нужно установить только Питон (а без него игра не будет работать и так) и перенести данные БД. Других действий не нужно.
0
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
14.02.2022, 17:21
Цитата Сообщение от Treasure Hunter Посмотреть сообщение
Если удобно в виде таблицы и доступ по индексам, то берем SQL. Если удобнее интерпетировать как словарь данных или объект, то берем NoSQL.
ТС еще не заморачивался с масштабированием и адаптацией под разные условия/требования потребителя своего продукта в условиях таймаута. именно для этого разработаны архитектурные подходы, когда удобство представления в игре объектами не зависит от того, куда их мапят, в sql базы, как записи таблиц, или в записи файлах.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.02.2022, 17:21
Помогаю со студенческими работами здесь

Текстовый квест
Доброго времени суток господа. Возникла не большая заминка, задали написать текстовую игру на подобие квеста, минимум из 5 действий. К...

Текстовый квест
Общая архитектура текстового квеста Не понимаю как её реализовать, нужна система вывода текста на экран, как это сделать? А также...

Текстовый квест
Хочу написать текстовый квест на подобии тех, что бы ли в Космических рейнджерах, но проще, без инвентаря. Но вообще не знаю за что...

Текстовый квест
Подскажите, кто может помочь в написании текстового квест на с++?; В универе задали создать текстовый квест, что-почем, с чего начать (идея...

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


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

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

Новые блоги и статьи
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, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
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 Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru