Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.08.2010, 16:59
Anig вне форума Посмотреть профиль Отправить личное сообщение для Anig Найти все сообщения от Anig
  № 1  
Ответить с цитированием
Anig

Регистрация: May 2010
Сообщений: 347
По умолчанию xml или MySQL

Здравствуйте, есть задача в написании сетевой игры- где и как хранить состояние пользователя- уровень, баллы, приобретения и т.д.. когда он не онлайн:
1. Хранить на сервере папку с именем пользователя а там xml?
2. Или хранить все в MySQL, и во время игры создавать с использованием Java из базы xml файл, работать с ним во флеш и обратно через Java кидать в базу?
Мне кажется при выборе первого решения облегчится переносимость игры, али нет?

Старый 25.08.2010, 17:16
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Если файл на диске, то надо гарантировать, что одновременно в него может писать только один поток и во время записи из него никто не читает. Иначе у вас появятся редкие и практически невоспроизводимые ошибки с очень широким спектром действия. Вот собсно от такого спасает MySQL, переносимость тут ни при чем.
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 25.08.2010, 17:29
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 3  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Нет, не облегчится.
К тому же запись в файл медленнее записи в бд.
Другой вопрос — кэширование последних результатов.

1. [много_случайных_цифр].xml в доступном по http:// месте для каждого пользователя.
2. [пофиг].xml в недоступном по http:// месте. транслируется Java скриптом после проверок аутентификации.
3. в MySQL доп. табличка типа user_summary, в которой все хранится

1. никаких скриптов, никаких MySQL выборок, но, однажды узнав имя файла юзера, можно всегда видеть его результаты.
2. скрипт проверки авторизации/прав доступа — нагрузка на проц сервера + чтение из файла.
3. скрипт проверки авторизации/прав доступа — нагрузка на проц сервере + чтение из базы.

Ну я бы так рассуждал. может кто дополнит/отбракует.

Я, в свою очередь, выбрал вариант 3. Потому что (при прочих равных с вариантом 2) читать из бд вроде должно быстрее. Да и писать в процессе активности пользователя тоже быстрее.
К варианту 1 прибегаю при больших нагрузках для кэширования/верстки и без того публичных данных.

Добавлено через 2 минуты
+1 в пользу MySQL (и варианта 3 в частности) замечание от -De-
__________________
Поймай яблоко 2!

Старый 25.08.2010, 17:59
Anig вне форума Посмотреть профиль Отправить личное сообщение для Anig Найти все сообщения от Anig
  № 4  
Ответить с цитированием
Anig

Регистрация: May 2010
Сообщений: 347
Тогда другой вопрос: ведь из флеш напрямую нельзя писать и читать из бд, как вы тут делаете?
И при активности пользователя не лучше ли работать с (временным хотя бы) xml файлом, чем 100 раз обращаться к базе?

Старый 25.08.2010, 18:00
e_gamer вне форума Посмотреть профиль Отправить личное сообщение для e_gamer Найти все сообщения от e_gamer
  № 5  
Ответить с цитированием
e_gamer

Регистрация: Aug 2010
Адрес: MSK
Сообщений: 104
Отправить сообщение для e_gamer с помощью ICQ
С помощью PHP можно связать Flash и СУБД.

О какой активности идет речь?
__________________
$world->answer_for_request($_REQUEST['hello,world!']);
ICQ: 336637242

Старый 25.08.2010, 18:23
Zebestov вне форума Посмотреть профиль Отправить личное сообщение для Zebestov Посетить домашнюю страницу Zebestov Найти все сообщения от Zebestov
  № 6  
Ответить с цитированием
Zebestov
Lorem ipsum
 
Аватар для Zebestov

модератор форума
Регистрация: May 2001
Адрес: Одесса
Сообщений: 4,869
Записей в блоге: 4
Цитата:
Сообщение от Anig Посмотреть сообщение
Тогда другой вопрос: ведь из флеш напрямую нельзя писать и читать из бд, как вы тут делаете?
e_gamer ответил. в твоем случае это будет Java + MySQL (или что там у тебя)
Цитата:
Сообщение от Anig Посмотреть сообщение
И при активности пользователя не лучше ли работать с (временным хотя бы) xml файлом, чем 100 раз обращаться к базе?
т.е. при определенной активности нужно будет обновить бд + xml — где выигрыш по скорости?
__________________
Поймай яблоко 2!

Старый 25.08.2010, 18:27
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
есть задача в написании сетевой игры
Если имеется в виду real-time игрушка, то лучше все данные хранить в оперативной памяти сервера, и только при входе считывать из БД, а при выходе - записывать конечное состояние.
То есть пых-пыхом тут не обойтись =)
__________________
...вселенская грусть

Старый 25.08.2010, 18:37
Anig вне форума Посмотреть профиль Отправить личное сообщение для Anig Найти все сообщения от Anig
  № 8  
Ответить с цитированием
Anig

Регистрация: May 2010
Сообщений: 347
1.Записывать лучше не только "при выходе"- оборвалась связь- бедный игрок теряет нажитое-записывать надо по-моему постоянно
2. Как хранить все данные игры (КУЧА!!) "в оперативной памяти сервера"- с использованием переменных сеанса??
3.Я понимаю что писать и читать в базу надо с использованием скриптового языка или Java- вопрос как именно(можно ли обойтись при этом без xml)

Старый 25.08.2010, 18:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 9  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
1) оборванная связь и есть выход
2) для этого нужен сервер на [язык, нормально работающий с сокетами] (JAVA, C++ ...)
3) писать и читать из базы можно в любом виде. Главное - обрабатывать данные после чтения / перед записью, приводя их в удобный вид.

Вы скажите, что конкретно будете делать?
__________________
...вселенская грусть

Старый 25.08.2010, 18:54
Anig вне форума Посмотреть профиль Отправить личное сообщение для Anig Найти все сообщения от Anig
  № 10  
Ответить с цитированием
Anig

Регистрация: May 2010
Сообщений: 347
Буду писать игру как ферма в одноклассниках, помогите пожалуйста правильно начать- не изобретать колеса. На стороне сервера работаю на Java. Ну как хранить информацию о поле конкретного игрока, как ее обновлять- не знаю.

Что касается конфигурации самой игры(общей для всех- там какие товары есть в магазине и т.д.)-тут сделаю xml- тогда игру легко будет расширять и редактировать, али нет?

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 23:25.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.