![]() |
xml или MySQL
Здравствуйте, есть задача в написании сетевой игры- где и как хранить состояние пользователя- уровень, баллы, приобретения и т.д.. когда он не онлайн:
1. Хранить на сервере папку с именем пользователя а там xml? 2. Или хранить все в MySQL, и во время игры создавать с использованием Java из базы xml файл, работать с ним во флеш и обратно через Java кидать в базу? Мне кажется при выборе первого решения облегчится переносимость игры, али нет? |
Если файл на диске, то надо гарантировать, что одновременно в него может писать только один поток и во время записи из него никто не читает. Иначе у вас появятся редкие и практически невоспроизводимые ошибки с очень широким спектром действия. Вот собсно от такого спасает MySQL, переносимость тут ни при чем.
|
Нет, не облегчится.
К тому же запись в файл медленнее записи в бд. Другой вопрос — кэширование последних результатов. 1. [много_случайных_цифр].xml в доступном по http:// месте для каждого пользователя. 2. [пофиг].xml в недоступном по http:// месте. транслируется Java скриптом после проверок аутентификации. 3. в MySQL доп. табличка типа user_summary, в которой все хранится 1. никаких скриптов, никаких MySQL выборок, но, однажды узнав имя файла юзера, можно всегда видеть его результаты. 2. скрипт проверки авторизации/прав доступа — нагрузка на проц сервера + чтение из файла. 3. скрипт проверки авторизации/прав доступа — нагрузка на проц сервере + чтение из базы. Ну я бы так рассуждал. может кто дополнит/отбракует. Я, в свою очередь, выбрал вариант 3. Потому что (при прочих равных с вариантом 2) читать из бд вроде должно быстрее. Да и писать в процессе активности пользователя тоже быстрее. К варианту 1 прибегаю при больших нагрузках для кэширования/верстки и без того публичных данных. Добавлено через 2 минуты +1 в пользу MySQL (и варианта 3 в частности) замечание от -De- |
Тогда другой вопрос: ведь из флеш напрямую нельзя писать и читать из бд, как вы тут делаете?
И при активности пользователя не лучше ли работать с (временным хотя бы) xml файлом, чем 100 раз обращаться к базе? |
С помощью PHP можно связать Flash и СУБД.
О какой активности идет речь? |
Цитата:
Цитата:
|
Цитата:
То есть пых-пыхом тут не обойтись =) |
1.Записывать лучше не только "при выходе"- оборвалась связь- бедный игрок теряет нажитое-записывать надо по-моему постоянно
2. Как хранить все данные игры (КУЧА!!) "в оперативной памяти сервера"- с использованием переменных сеанса?? 3.Я понимаю что писать и читать в базу надо с использованием скриптового языка или Java- вопрос как именно(можно ли обойтись при этом без xml) |
1) оборванная связь и есть выход
2) для этого нужен сервер на [язык, нормально работающий с сокетами] (JAVA, C++ ...) 3) писать и читать из базы можно в любом виде. Главное - обрабатывать данные после чтения / перед записью, приводя их в удобный вид. Вы скажите, что конкретно будете делать? |
Буду писать игру как ферма в одноклассниках, помогите пожалуйста правильно начать- не изобретать колеса. На стороне сервера работаю на Java. Ну как хранить информацию о поле конкретного игрока, как ее обновлять- не знаю.
Что касается конфигурации самой игры(общей для всех- там какие товары есть в магазине и т.д.)-тут сделаю xml- тогда игру легко будет расширять и редактировать, али нет? |
| Часовой пояс GMT +4, время: 17:39. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.