Войти
ПрограммированиеФорумВеб

Браузерка

Страницы: 1 2 Следующая »
#0
12:38, 29 янв. 2013

Добрый день коллеги,
вопрос возник в процессе написания движка (он в принципе уже написан и работает, но теперь хочу оптимизировать некоторые процессы).
коротко о главном так сказать, я пишу браузерку по технологиям html, js, php (планируется внедрение nodejs но пока только в проекте), вопрос возник в отрисовке карты, а точнее в алгоритме этого дела, изначально это обычная таблица с клетками у которых в фоне картинка аля /path/to/image/y-x.jpg, как вы понимаете каждый раз отрисовка этой карты браузером похоже на квадратный калейдоскоп :)
есть несколько идей как переписать данный процесс:
1) на стороне сервера генерить карту чисто под текущие координаты персонажа, + в том что карта загружается одним куском и проявляется быстро, - в том что трафика будет жрать немерено.
2) использовать canvas с предзагрузкой карты, точно также кусочки подгружать как и в таблице (то бишь они в кеш попадать будут), просто сделать прелоадер типа "Подождите загрузка", + в том что будет работать кеш, - в том что будет прелоадер
3) плагины для браузеров с содержанием кеша и карты, + экономия трафика и скорость работы, - слишком много времени на разработку под каждый браузер.

Какие варианты еще можно рассмотреть, предлагайте все что можно :)


#1
12:40, 29 янв. 2013

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

#2
12:58, 29 янв. 2013

Грузить карту в стиле google maps, квадратиками. При увеличении зума если такая функция будет, переключаться на следующий уровень зума. Рисовать чем угодно, канвас вроде годится.
Плагины плохо.
Если проект серьёзный, то использовать баловство вроде похапе или ноды - неразумно. Другие варианты - java, erlang, ruby/python слыхал там тоже появилась поддержка вебсокетов, Erlang.

#3
13:10, 29 янв. 2013


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

#4
13:40, 29 янв. 2013

ZDragon
> или руководствоваться принципом "работает - не тронь" :)
Да, очень полезный принцип. Позволяет закончить приемлемо продукт в ограниченные сроки ;)
ZDragon
> что пхп, что нода вполне доточены до поддержки проекта такого уровня
Ну верно, если цель тысяча юзеров и три десятка онлайн пхп как раз то что надо. Если цель тысяча онлайн, нода кое-как со скрипом справится, но код будет похож на кастрюлю вчерашнего спагетти. А если цель миллион онлайн, то Эрланг с Явой царствуют практически без конкуренции.

#5
14:57, 29 янв. 2013

kvakvs с тысячей конечно загнул, 10000 в бд и 2000-3000 онлайн тянет вполне не плохо, но то что это тупиковый путь развития факт не оспоримый, но как говорится у нас на Руси пока петух не клюнет...

П.С. в результате изысканий остановился на библиотечке http://leafletjs.com

Сегодня CloudMade анонсировал Leaflet — новую JavaScript-библиотеку с открытым исходным кодом для интерактивных карт.

#6
15:44, 29 янв. 2013

Вот карта WoW, на движке гуглмапсов.
http://mapwow.com/
плохонько грузится но думаю гугл не виноватый.

#7
16:00, 29 янв. 2013
kvakvs
> Эрланг с Явой
Никто не пробывал подружить софт на этих двух языках через сообщения(те что между нодами летают по сети)? Попробывать эрланг хочется, но переписывать весь проект на него не вариант:)
#8
17:34, 29 янв. 2013

Mephistopheles
> Никто не пробывал подружить софт на этих двух языках через сообщения(те что
> между нодами летают по сети)? Попробывать эрланг хочется, но переписывать весь
> проект на него не вариант:)
Есть такая штука, erlang binary term format, стандартный способ сериализации чего угодно внутри вирт.машины эрланга - легко реализуется на любом языке. Позволяет обмениваться сообщениями в нативном для эрланга формате.
Есть порты (подключение к эрлангу через stdout/stdin)
Есть драйверы (DLL модуль к эрлангу)
Есть либы типа thrift, google protocols, 0mq, JSON либы типа jiffy, jsx, mochijson(2)
Есть просто ТСР подключения
Есть фанатская реализация эрланг-ноды на Go  https://github.com/goerlang/eclus вроде очень маленькая и компактная
Чего не получается то? ;)

#9
18:09, 29 янв. 2013

kvakvs
> Есть либы типа thrift, google protocols, 0mq, JSON либы типа jiffy, jsx,
> mochijson(2)
так что протокол сообшений ерланга может работать поверх протокола типа jsona?

kvakvs
> Чего не получается то? ;)
Да я теоритически. Давно руки чешуться пощупать эрланг, а на хеллоуворде не интересно. Вот думаю имплементацию кластерной ноды на нем написать и так чтобы не накушаться фекалий при совмешении с джавой:)

#10
18:14, 29 янв. 2013

так это... раньше активно применялось в веб дизайне (когда инет медленный был) - фоновая подгрузка картинок
делаются мелкие img 0 пикселов шириной где-нть внизу страницы, и джава скрипт обрабатывает для них onLoad.
когда все загрузятся - назначам урлы тем img к-рые видит юзер

#11
18:28, 29 янв. 2013

Mephistopheles
> так что протокол сообшений ерланга может работать поверх протокола типа jsona?
Нет, это варианты на выбор. Когда у тебя сообщение уже закодировано жсоном, другие способы просто лишние. Открываешь ТСР подключение, пишешь туда длину (4 байта например) и JSON. Читаешь ответ. И всё.
Для настоящего протокола сообщений, тот который Pid ! Message, надо поднимать полноценную эмуляцию эрл-ноды. Это сделано для Go, для явы не уверен.

#12
18:33, 29 янв. 2013

kvakvs
> Открываешь ТСР подключение, пишешь туда длину (4 байта например) и JSON.
> Читаешь ответ. И всё.
Великолепно:) Надо будет только будет akka.io его подсунуть. Доку дома почитаю. Спасибо:)

Прошло более 7 месяцев
#13
20:22, 24 сен. 2013

ZDragon
> П.С. в результате изысканий остановился на библиотечке http://leafletjs.com

Здравствуйте.

Я тут в изобретении своего велосипеда столкнулся с такой же проблемой. Все-таки будете использовать Leaflet?

Прошло более 12 месяцев
#14
0:36, 20 сен. 2014

В чем проблема разбить мир на части в каждом по неск сотен юзеров? И тогда что нода что пхп могут выдерживают хоть миллионы.

А возиться с эрлангом и строить супермаштабируемую архитектуры чтобы после запуска проекта обнаружить что в него играет 15 чел онлайн?

Страницы: 1 2 Следующая »
ПрограммированиеФорумВеб

Тема в архиве.