Среда, 27 Ноября 2024, 02:57

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Деление страницы на области
webpsyhopatДата: Четверг, 15 Сентября 2011, 16:55 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте,уважаемые форумчане!
Полазил немного по форуму, но ответ на глаза не попался, поэтому спрошу тут.
В каждой браузерке присутствует деление страницы на несколько областей - основное окно, чат, кто онлайн и т д. В старых играх это реализовано через фреймы.
Как можно сделать то же самое, но без фреймов?
Создать вместо фреймов дивы и аяксом подгружать туда информацию? Есть ли какие-нибудь подводные камни в таком случае?
Какие есть варианты?
Смотрел как сделано в игре Грани реальности - там без фреймов, подключаемые скрипты не разбирал, но в исходном коде заметил много элементов которые не отображаются на странице - что это? куча слоев со сменой их порядка яваскриптом в зависимости от нажатой ссылки?

Заранее благодарен за ответ.
kroftikusДата: Пятница, 16 Сентября 2011, 18:44 | Сообщение # 2
был не раз
Сейчас нет на сайте
Да, создать дивы и аяксом подгружать туда информацию. Причем можно даже сделать всего 1 див, и в него уже подгружать различные макеты, в зависимости от того находится ли к примеру пользователь в бою. Никаких подводных камней нет, разве что не стоит сразу размечать все элементы страницы, гораздо проще сформировать страницу на стороне сервера и загрузить в один из контейнеров(к примеру в чат или список игроков). Так же не стоит делать разные запросы для подгрузки информации, нужно сделать 1 запрос к серверу(к примеру раз в 2сек) и он должен возвратить всю информацию в формате javascript. К примеру твои дивы имеют индексы - c1,c2,c3 , тогда ответ сервера будет выглядеть так - с1.innerHTML='текст модуля c1'; с2.innerHTML='текст модуля c2'; с3.innerHTML='текст модуля c3';
webpsyhopatДата: Суббота, 17 Сентября 2011, 15:43 | Сообщение # 3
был не раз
Сейчас нет на сайте
Ну я где-то так и представлял. Только мне кажется что такой подход будет сильнее нагружать сервер чем фреймы - поэтому про подводные камни и спросил.
Спасибо за ответ. буду думать в эту сторону и пробовать реализовать.
kroftikusДата: Суббота, 17 Сентября 2011, 23:53 | Сообщение # 4
был не раз
Сейчас нет на сайте
Тебе кажется, сервер нагружает в первую очередь количество запросов, а с фреймами для каждой отдельной области необходимо создавать отдельный запрос, т.к. фрейм это самостоятельная страница, что как раз и создает чрезмерную нагрузку на сервер. Думать и пробывать реализовывать не стоит, стоит почитать книжку про php, в том числе про Ajax и Comet технологии, тогда подобные вопросы сами отпадут. Так же неплохо было бы разобраться как работает Apache.

Сообщение отредактировал kroftikus - Воскресенье, 18 Сентября 2011, 00:21
cougraAccДата: Воскресенье, 18 Сентября 2011, 12:25 | Сообщение # 5
Яркая личность GD
Сейчас нет на сайте
Поддержу отписавшегося выше, используй разбитие div блоками и ajax. ajax для подгрузки и обновления и самое то
LocksleyДата: Воскресенье, 18 Сентября 2011, 12:49 | Сообщение # 6
почетный гость
Сейчас нет на сайте
чем тебя фреймы не устраивают? если использовать технологию ajax то придется разбираться с альтернативным вариантом загрузки для мобильников.

умных ответов счетное множество, глупых вопросов - континуум
ZelebobaДата: Воскресенье, 18 Сентября 2011, 13:00 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Лучше вообще обойтись без частых обращений к данным, в играх ресурсы беречь нужно, использовать кэширование, key value базы данных и т.д. так что подумай нужны ли вообще эти фреймы либо постоянные подгрузки через ajax
kroftikusДата: Воскресенье, 18 Сентября 2011, 14:57 | Сообщение # 8
был не раз
Сейчас нет на сайте
Quote (Zeleboba)
Лучше вообще обойтись без частых обращений к данным, в играх ресурсы беречь нужно, использовать кэширование, key value базы данных и т.д. так что подумай нужны ли вообще эти фреймы либо постоянные подгрузки через ajax

Если ты делаешь браузерку, то как ты планируешь обойтись без частых обращений к данным? Как поможет тебе в этом деле кеширование и использование выборки данных по ключам в бд? Надеюсь ты знаешь что игрок может легко отредактировать любые данные поступающие к нему и послать к серверу абсолютно любой запрос, к примеру что он победил в бою, и если не вести ВСЕ расчеты на сервере, то будет эпик фейл.

Quote (Locksley)
чем тебя фреймы не устраивают? если использовать технологию ajax то придется разбираться с альтернативным вариантом загрузки для мобильников.

1)Увеличение нагрузки на сервер, чтобы игра хоть как то работала на фреймах приходится сильно снижать время отклика.
2)Проблемы с программной реализацией, у вас нет никакой прямой возможности скоординировать действия модулей, это приходится делать через http запросы, в ajax приложении же нам достаточно просто вызвать необходимые процедуры. К примеру тебе нужно сделать проверку на то онлайн ли текуший пользователь(если он не онлайн его должно выкинуть на главную страницу проэкта), с фреймами необходимо делать такую проверку в КАЖДОМ модуле, ну или создать отдельный файл с проверкой и инклюдить его, в аджакс мы просто пишем проверку перед исполением всего остального кода. Чем больше будет разрастаться ваша программа, тем больше будет проблем, головной боли с которыми можно легко избежать, не используя устаревшие технологии.
3)Невозможость сделать нормальный дизайн страницы, нет никакой возможности заменить разделительные полосы фреймов на свои, если же их убрать и делать навигацию как будто фреймов тут и вовсе нет, они будут очень активно тебе мешать.
4)Фреймовые приложения имеют поганую привычку мигать при обновлении, это раздражает гораздо сильнее чем ты думаешь.
5)Одна из областей может просто не загрузится, в итоге игрок будет наблюдать не очень красивую картину.
6)И да, еще они засирают историю загрузок.
ZelebobaДата: Воскресенье, 18 Сентября 2011, 22:55 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
kroftikus, Че написал, сам наверно не понял...
Quote
Если ты делаешь браузерку, то как ты планируешь обойтись без частых обращений к данным? Как поможет тебе в этом деле кеширование и использование выборки данных по ключам в бд? Надеюсь ты знаешь что игрок может легко отредактировать любые данные поступающие к нему и послать к серверу абсолютно любой запрос, к примеру что он победил в бою, и если не вести ВСЕ расчеты на сервере, то будет эпик фейл.

Эпик фейл будет если у программиста мозг отключен, и он не проверяет приходящие на сервер данные.
Теперь по кэшу, он предназначен для оптимизации, а не для защиты, по этому кэшировать нужно максимально возможный объем данных, напимер статы игрока, инфу о шмотках, в общем абсолютно все! Нагрузка идет в первую очередь от частых запросов к БД, а не из за того что просто установлен фрейм, с аяксом буду точно такие же проблемы если скрипт не оптимизирован!
Quote
6)И да, еще они засирают историю загрузок.

Я смотрю ты писал все что тебе в голову приходило? Какую нах историю загрузок? Мож они тебе карму портят?
kroftikusДата: Понедельник, 19 Сентября 2011, 00:02 | Сообщение # 10
был не раз
Сейчас нет на сайте
Zeleboba, Повторюсь, при чем здесь кеширование и запросы к бд, если мы обсуждаем совершенно другое? Кешировать статы игрока это вообще лол, я думаю ты достиг этим впечатляющего прироста производительности! Про остальное я уже достаточно подробно написал.

Ладно, пойду ка я лучше с этого форума, с школьниками-разработчиками много ненаобсуждаешь.
ZelebobaДата: Понедельник, 19 Сентября 2011, 00:36 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
kroftikus, Мда... Видимо сложнее калькулятора ты ничего не писал.
Еще раз повторю, при выводе страница (будь то аякс или фрейм), происходит работа с данными, я не думаю что ему нужно постоянно показывать одни и те же данные, так вот, эти обращения как раз таки и дают самую большую нагрузку, по этому ннужно кешировать выводимые результаты (хотя бы в файлы).
Теперь о кешировании статов персонажа:
Каким образом происходит бой?
Для начала получаем статы игроков, дальше расчитываем результат хода, и выводим результат, при следующем ходе операция повторяется.
Статы хранятся чаще всего в БД, как ты думаешь если сохранить выборку в кеш и после первого хода брать статы не из БД а из оперативной памяти, результат будет одинаков?
Учи мат часть, и попробуй поработать с проектами в которых больше 100 человек находятся онлайн, тогда ты поймеш что кеш жизнено необходим.
webpsyhopatДата: Понедельник, 19 Сентября 2011, 09:04 | Сообщение # 12
был не раз
Сейчас нет на сайте
Вижу пока меня не было целый холивар разразился))
Вобщем я так и не понял что лучше - фреймы или аякс. Если страница состоит из 5 фреймов - из которых один - это полная статика с верхним горизонатльным меню, который никогда не меняется, второй - чат на аяксе, который каждые 5-10 сек дергает базу на предмет новых сообщений и из оставшихся трех - один главное окно, который изменяется только после действия пользователя, остальные же два - информационные, которые изменяются еще реже. И пердположим такая же схема но на дивах с аяксом. По сути нагрузка на сревр не должна различаться в таких случаях - единственная разница на мой взгляд в том что при фреймовой структуре исходящий с сервера трафик немного увеличится из-за объема посылаемых данных (если учесть что в обоих случаях формируется и отправляется идентичный код - то при фреймах доп трафик создадут заголовки).
Quote (kroftikus)
Думать и пробывать реализовывать не стоит, стоит почитать книжку про php, в том числе про Ajax и Comet технологии, тогда подобные вопросы сами отпадут. Так же неплохо было бы разобраться как работает Apache.

Можно попросить порекомендовать что-либо конкретное?

Quote (Locksley)
чем тебя фреймы не устраивают? если использовать технологию ajax то придется разбираться с альтернативным вариантом загрузки для мобильников.

Для мобильников планируется облегченная версия игры.

Quote (Zeleboba)
Теперь по кэшу, он предназначен для оптимизации, а не для защиты, по этому кэшировать нужно максимально возможный объем данных,

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

В целом спасибо всем за ответы, меня интересуют все взгляды на данный рабочий момент.

З.Ы. В плане оптимизации - что если создать две базы данных - одна с большим объемом данных, но чтоб ее меньше дергали (например игровые объекты, данные для авторизации, таблица шмоток и т д), а вторая - которая дергается чаще первой - чат, бои, инвентарь и т д?

Оффтоп.
to Zeleboba
у тебя в подписи ссылка на блог разработчика браузерок - срок регистрации истек. надо бы продлить ((


Сообщение отредактировал webpsyhopat - Понедельник, 19 Сентября 2011, 09:11
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг