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

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

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

Регистрация: Aug 2008
Сообщений: 8
Flame MySQL запросы в online играх

Вообщем проблема такова, начал писать движок для on-line игры RPG типа Ragnarok. Сделал самые основы: генерация локации, расстановка преград, персонаж бегает и т.д.
Решил пока на этом остановиться т.к. один вопрос вышел у меня на первый план:
Получается, что flash клиент должен постоянно передавать данные и очень часто т.к. персонажи постоянно бегают, и надо отслеживать их движения, причем всех сразу...

в коде AS это происходит таким образом
Код:
onEnterFrame = function() {
         .... КОД ....
         loadVariables("update.php?id="+user_id+"&x="+x+"&y="+y , "_root", "POST");
}
Все это дело заноситься в базу а в обратку идет запрос из базы, "типа что еще твориться на локации" (P.S. Все это делалось на Denwer)
Запустил Flash вроде как все заработало, залогинился, побегал по карте, проверил БД координаты обновляются, НО не прошло и минуты как flash начал тормозить, и апач начал очень сильно грузиться...
Теперь у меня тупиковая ситуация, проект забрасывать неохота, а реального выхода пока не вижу, может есть на форуме люди которые занимались этим или может кто-нить знает другие варианты решения этой проблемы?

Старый 07.09.2008, 18:53
Predtech вне форума Посмотреть профиль Отправить личное сообщение для Predtech Найти все сообщения от Predtech
  № 2  
Ответить с цитированием
Predtech

Регистрация: Dec 2002
Адрес: Куев
Сообщений: 39
не зная точно что вы делаете трудно дать однозначный совет, но думается мне курить надо в сторону изменения логики сохранения данных. Например, не сохранять каждую точку положения объекта в базе, а только начальную и конечную координту объекта. промежуточные значения хранить и обрабатывать во флеше

Старый 08.09.2008, 11:59
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 3  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Цитата:
Сообщение от altoff Посмотреть сообщение
Получается, что flash клиент должен постоянно передавать данные и очень часто т.к. персонажи постоянно бегают, и надо отслеживать их движения, причем всех сразу...
?
А мне кажется что этот момент ключевой.
Я бы начал думать о конкретной реализации игры исходя из того как
решить проблему большого потока данных.
Например, игра может быть не такой динамичной, видимая облать малой (герой шарахается по темным узким подземельям - разгулятся негде), передвижение крипов обновляется не с сервера а зашито во флешке...

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

Регистрация: Aug 2008
Сообщений: 8
terbooter

совершенно верно, это и есть игра, но походу реализовать я ее не смогу...
за это время я связался с etc и он объяснил мне, что такие серверная часть для таких игр пишется через C++ либо C# , но никак не php...

Обмен в таких игрушках идет таков Flash <=> Socket <=> MySQL иначе никак...

Цитата:
Например, игра может быть не такой динамичной
Сразу меняется смысл игры
Цитата:
видимая облать малой
Это большую роль не играет
Цитата:
передвижение крипов обновляется не с сервера а зашито во флешке...
пробывал не помогает (((

Старый 15.09.2008, 16:21
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 5  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
Я бы тоже прошел легбез от __etc на тему "Архитектура MMORPG игр: Flash <=> Socket <=> MySQL".

А чем плохи (хуже сокета на C) потоковые серваки? (Red5)

__etc, может откроешь раздел в блоге и помещать туда самые интересные и полезные свои ответы -)

Цитата:
Сразу меняется смысл игры
Вот именно это я и хотел сказать, что проблема которую вы назвали (большой трафик),
не какой-то баг который надо фиксить, а самый первый вопрос который надо решать когда вы
задумываете какую-то игру.


Последний раз редактировалось terbooter; 15.09.2008 в 16:26.
Старый 15.09.2008, 19:20
Air_mAn вне форума Посмотреть профиль Отправить личное сообщение для Air_mAn Найти все сообщения от Air_mAn
  № 6  
Ответить с цитированием
Air_mAn
 
Аватар для Air_mAn

Регистрация: Apr 2008
Сообщений: 102
Цитата:
Сообщение от terbooter Посмотреть сообщение
А чем плохи (хуже сокета на C) потоковые серваки? (Red5)
Они не плохи, просто для конкретной задачи свое решение, Red5 это для передачи потока видео или аудио, у игры своя специфика и есть специально для этого движки типа SmartFoxServer

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

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

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


 


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


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