Комментарии 34
Да когда же этот IE уже вымрет наконец?
Эх. Как бы парадоксально не звучало, но у нас в компании (ie ниже 9 версии — не поддерживаем) вечно трепает нервы не Ишак, а Опера. Учитывая, что мы используем передовые технологии, которые ещё не очень обкатаны — Опера принесла нам больше WTF, чем Chrome+Firefox+IE9 вместе взятые.
при этом у оперы меньше 2%, а у осла половина.
Кстати, по моим наблюдениям выходит также — Опера может и не обгоняет ИЕ по количеству и качеству «неожиданностей», то держится где-то совсем рядом.
у нас неожиданностей нет, но работает все из рук вон плохо, т.е. медленно. Вся надежда на 12 версию, где обещают графику подтянуть. Другое дело, что мы проверяем все только в последней стабильной версии 11.5х, даже на 11.0 не смотрим. Что уж тогда говорить о 9.5 — 10.х.
Вообще релизы от 9.5 до 11 (не включая) были у Оперы очень тяжелыми. Много регрессий, багов и проблем со стабильностью. С 11 версией стало лучше.
Вообще релизы от 9.5 до 11 (не включая) были у Оперы очень тяжелыми. Много регрессий, багов и проблем со стабильностью. С 11 версией стало лучше.
А с чем больше возникает проблем — с CSS или с JS? Лично у меня были проблемы только с дробными значениями в css, да с парой js-событий. В то время как для IE9 писать собственные CSS-правила приходилось регулярно.
1. Производительность отрисовки на Canvas
2. Ужасный сборщик мусора
3. Отсутствие вменяемых кросс-доменных запросов (Comet). В Фоксе и Хроме можно в полпинка сделать через CORS, в IE9, вроде, есть костыль в виде XDomainRequest. Мы нашли кривоватое решение через iframe, document.domain, поддомен и jsonp для синхронных запросов, но пока не занимались.
4. Отсутствие нативного bind
5. Ужасный, тормозной, глючный дебагер. После волшебного дебагера в Хроме это просто вынос мозга. Хотя IE9 тоже в этом плане тосклив не менее, чем в Опере
6. Очень наглое кеширование, которое выносит мозг при постоянном обновлении арта (во время альфа-теста). Пока не сделали
7. Куча мелких багов, которые просто вынесли мозг понемногу. Один из эпичных примеров — у картинок обнуляются свойства при переходе в полноэкранный режим. У меня есть автонарезка картинки на спрайты, которая из-за этого глючила. Вот представьте, что всё везде работает прекрасно, пока пользователь в Opera не нажмёт f11. В 12-ой уже поправили.
И так далее. Конечно, со временем мы это всё обнаруживаем, я фиксю LibCanvas, добавляю хаки. Но, в основном, ситуация с Оперой — очень плачевная.
2. Ужасный сборщик мусора
3. Отсутствие вменяемых кросс-доменных запросов (Comet). В Фоксе и Хроме можно в полпинка сделать через CORS, в IE9, вроде, есть костыль в виде XDomainRequest. Мы нашли кривоватое решение через iframe, document.domain, поддомен и jsonp для синхронных запросов, но пока не занимались.
4. Отсутствие нативного bind
5. Ужасный, тормозной, глючный дебагер. После волшебного дебагера в Хроме это просто вынос мозга. Хотя IE9 тоже в этом плане тосклив не менее, чем в Опере
6. Очень наглое кеширование, которое выносит мозг при постоянном обновлении арта (во время альфа-теста). Пока не сделали
imageurl?artversion={current-version}
— постоянно трахались с ним.7. Куча мелких багов, которые просто вынесли мозг понемногу. Один из эпичных примеров — у картинок обнуляются свойства при переходе в полноэкранный режим. У меня есть автонарезка картинки на спрайты, которая из-за этого глючила. Вот представьте, что всё везде работает прекрасно, пока пользователь в Opera не нажмёт f11. В 12-ой уже поправили.
И так далее. Конечно, со временем мы это всё обнаруживаем, я фиксю LibCanvas, добавляю хаки. Но, в основном, ситуация с Оперой — очень плачевная.
Ого, спасибо за подробный ответ. Есть пара хороших новостей — CORS вот вот добавят, если уже не добавили. Нативный bind есть в 12 альфе. По поводу остального да, печаль. Дебагер, как и весь dragonfly оставляет желать лучшего, как и аналог в IE.
По поводу кеширования — а как обстоит ситуация с этим в других браузерах? В виду чего возникает проблема? Опера не может определить правильно условия сброса кеша или просто время жизни кеша в опере больше?
7. Баг не наблюдаю — 12 опера, альфа. Или я его не понимаю, или он исправлен ) Все время 16х16.
По поводу кеширования — а как обстоит ситуация с этим в других браузерах? В виду чего возникает проблема? Опера не может определить правильно условия сброса кеша или просто время жизни кеша в опере больше?
7. Баг не наблюдаю — 12 опера, альфа. Или я его не понимаю, или он исправлен ) Все время 16х16.
> В 12-ой уже поправили
пардон, как то проглядел )
пардон, как то проглядел )
Кеширование — как-то да, плохо обновляется. Очень не хватает ctrl+f5, который бы внаглую полностью сбросил кеш.
В 12-ой много чего пофиксили, но, к сожалению, слишком поздно. =(
У нас необходимость 10.6+ и постоянно натыкаемся на грабли. Тот же CORS был уже в fx3.5 двухлетней давности. Версии 10.6 всего год, а CORS всё ещё нету =(
7 и 4 тоже пофиксили в 12-тке. В Линуксе без дров на видяху скорость отрисовки Canvas всё так же печальна.
В 12-ой много чего пофиксили, но, к сожалению, слишком поздно. =(
У нас необходимость 10.6+ и постоянно натыкаемся на грабли. Тот же CORS был уже в fx3.5 двухлетней давности. Версии 10.6 всего год, а CORS всё ещё нету =(
7 и 4 тоже пофиксили в 12-тке. В Линуксе без дров на видяху скорость отрисовки Canvas всё так же печальна.
ctrl + r — сбрасывает кеш, во всяком случае у меня с этим проблем не было :)
> В Линуксе без дров на видяху скорость отрисовки Canvas всё так же печальна.
Кстати, недавно снова запилили webGL. У меня начались такие страшные глюки со шрифтами и графикой в целом, что пришлось отключать :) В хромиуме работало нормально. Видимо с web-gl пока тоже всё плохо, судя по комментариям к билду такая проблема далеко не только у меня.
> В Линуксе без дров на видяху скорость отрисовки Canvas всё так же печальна.
Кстати, недавно снова запилили webGL. У меня начались такие страшные глюки со шрифтами и графикой в целом, что пришлось отключать :) В хромиуме работало нормально. Видимо с web-gl пока тоже всё плохо, судя по комментариям к билду такая проблема далеко не только у меня.
Одного не пойму — почему вы так мало пишете багрепортов, если обо всём можете подробно рассказать, да ещё и с примерами.
Кстати, попробуйте свежую сборку — там и аппаратное ускорение, и CORS с XHR2. Насколько она вас устраивает? Ведь если вы сейчас расскажете о проблемах, то к финалу их уже не будет. Значит и ваша жизнь станет проще, ведь правда?
Давно известный факт. У осла все баги обычно давно изучены вдоль и поперек и все знают как их фиксать, а у оперы с каждой минорной версией баги новые и неизведанные.
я говорю о 9-м осле =)
Вы будете удивлены, но во времена IE6 все было точно так же. Я сам этого не помню, но старшие товарищи оперу на дух не переносят еще с тех времен.
Где можно поиграться в живую в ваше техническое демо?
И ссылочку на git пожалуйста.
О релизе игры мы сообщим отдельно
Релиз релизом, но хотелось бы уже посмотреть демо, потому что качественных и комплексных HTML5 игр практически нет. А до релиза же видимо еще как до луны (= несколько месяцев), так долго ждать.
Сейчас в бете, уже довольно серьёзно: apps.facebook.com/berserkthecataclysm/
Также пишут, что World Of Tanks Generals будет на html5. Видимо, будет вполне качественной и комплексной. Уже закрытая альфа.
Также пишут, что World Of Tanks Generals будет на html5. Видимо, будет вполне качественной и комплексной. Уже закрытая альфа.
Спасибо. Интересно, что обе игры ККИ. Хотя надеялся, что World Of Tanks Generals, т.к. есть плотная ассоциация этого бренда с 3D, будет 3D игрой-шутером.
Хотелось бы так же услышать технические характеристики движка, например:
1. В каком формате анимации
2. Сколько объектов «держит» движок на приемлемом fps (выше 20)
3. Поддерживает ли динамические объекты (мобов), как быстро при этом сортируется сцена.
4. С чем связано использование не самой привычной для пользователя проекции, почему не изометрия (подозреваю из-за более медленной сортировки?)
5. Есть ли изменение масштаба
6. Какие оптимизации реализованы и планируются (например отсечение невидимых объектов, ограничение числа одновременных анимаций)
7. Как решили проблему (и решили ли) с отловом мыши над перекрывающимся объектом
8. Мышиная «хит» область объектов на карте по видимому контуру или по всей битпаме?
1. В каком формате анимации
2. Сколько объектов «держит» движок на приемлемом fps (выше 20)
3. Поддерживает ли динамические объекты (мобов), как быстро при этом сортируется сцена.
4. С чем связано использование не самой привычной для пользователя проекции, почему не изометрия (подозреваю из-за более медленной сортировки?)
5. Есть ли изменение масштаба
6. Какие оптимизации реализованы и планируются (например отсечение невидимых объектов, ограничение числа одновременных анимаций)
7. Как решили проблему (и решили ли) с отловом мыши над перекрывающимся объектом
8. Мышиная «хит» область объектов на карте по видимому контуру или по всей битпаме?
1) Анимации спрайтовые, но могут быть реализованы и в любом другом виде. Спрайтовую анимацию из коробки поддерживает LibCanvas
2) 3) В LibCanvas реализован механизм, который позволяет перерисовывать только изменяющиеся части сцены. Это очень положительно влияет на производительность игры, особенно на планшетах
6) Да, планируется отключение анимации, которая не видна игроку.
7) Этот механизм реализован в LibCanvas. События навешиваются на объекты. Отрабатывает на основе zindex. Событие может быть проваливающимся или останавливающимся на первом срабатывании
8) Не совсем понял вопрос. Видимо речно о том, сразу ли рисуется вся игровая область. Да, нарисована вся, скрывается за счет css
2) 3) В LibCanvas реализован механизм, который позволяет перерисовывать только изменяющиеся части сцены. Это очень положительно влияет на производительность игры, особенно на планшетах
6) Да, планируется отключение анимации, которая не видна игроку.
7) Этот механизм реализован в LibCanvas. События навешиваются на объекты. Отрабатывает на основе zindex. Событие может быть проваливающимся или останавливающимся на первом срабатывании
8) Не совсем понял вопрос. Видимо речно о том, сразу ли рисуется вся игровая область. Да, нарисована вся, скрывается за счет css
Спасибо за ответы, но хотелось бы все-таки уточнить еще пару моментов )
2. 3. Было бы интересно узнать о числе объектов, при котором можно более или менее нормально играть, не проводились ли тесты на карте с 200-400 статических объектов и 10-20 мобов (это не самая большая карта для казуалок в соц. сетях, но время рендеринга такой сцены было бы показательным, при 20 fps оно не должно превышать 50 мс.
8. Имелось в виду лишнее срабатывание мышки на прозрачной области вокруг объекта (rollover/rollout/click) — отсекаются такие события или нет. Когда растровый контент, приходится решать задачу вводом векторной обводки (отрисованной вручную или программная трассировка) или проверкой пикселя на прозрачность.
2. 3. Было бы интересно узнать о числе объектов, при котором можно более или менее нормально играть, не проводились ли тесты на карте с 200-400 статических объектов и 10-20 мобов (это не самая большая карта для казуалок в соц. сетях, но время рендеринга такой сцены было бы показательным, при 20 fps оно не должно превышать 50 мс.
8. Имелось в виду лишнее срабатывание мышки на прозрачной области вокруг объекта (rollover/rollout/click) — отсекаются такие события или нет. Когда растровый контент, приходится решать задачу вводом векторной обводки (отрисованной вручную или программная трассировка) или проверкой пикселя на прозрачность.
Я думаю, что про техническую сторону игры будет отдельный пост, в котором я приведу данные о производительности. Пока сказать ничего не могу конкретно.
События навешиваются на фигуры(шейпы). Объект состоит из шейпа и графики, которая отрисовывается в этом шейпе. Но шейпы могут быть не только квадратные и круглые, но и любой произвольной формы — полигон. Так что можно сделать к примеру звезду, которая будет правильно обрабатывать события.
События навешиваются на фигуры(шейпы). Объект состоит из шейпа и графики, которая отрисовывается в этом шейпе. Но шейпы могут быть не только квадратные и круглые, но и любой произвольной формы — полигон. Так что можно сделать к примеру звезду, которая будет правильно обрабатывать события.
Спасибо за ответ, насчет шейпов понятно, отлично, что подумали об этом, многие забывают ) По производительности тогда буду ждать продолжение, т.к. тема интересная.
Если интересно, можете посмотреть примеры от разработчика LibCanvas libcanvas.github.com/.
Из всех доступных библиотек именно эта подкупила тем, что автор легко идет на контакт, помогает дельными советами и оперативно внедряет необходимые функции.
Так же порадовало то, что фреймворк завязан на ооп и atomjs, который мне пришелся по душе.
Из всех доступных библиотек именно эта подкупила тем, что автор легко идет на контакт, помогает дельными советами и оперативно внедряет необходимые функции.
Так же порадовало то, что фреймворк завязан на ооп и atomjs, который мне пришелся по душе.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Анонсы Alawar: движок HTML5-игр, поддержка IE9 pinned site и собственная сборка браузера