Comments
Прошу прощения, но как физически выглядит загрузка центрального процессора в 168 процентов?
Так вот откуда 146% взялось! 100% за одного и 46% за другого. Спасибо, теперь все понятно.
Ну вот: кому-как удобнее считать;) Я, например себе в угол экрана вывожу LA/num_cores * 100% и меня устраивает, т.к. числа до 100 как-то нагляднее.
Баг с ВНЕЗАПНОЙ перезагрузкой страницы, к сожалению, не дает насладится игрой :(
Играть удобно с геймпадом. Примерно вот так :-D



Софтин для эмуляции нажатий клавы с джойстиков/геймпадов много, я обычно Joy2Key пользуюсь.
К сожалению, на Firefox 13 дикие лаги (при передвижении двигается через секунд 5 после нажатия кнопок. Играть нереально так.
Закончилась загрузка файла на сайт, игра стала работать побыстрее. Уже вполне реально поиграть. Спасибо.
Не играет что-то, в консоль пишет: Unexpected response code: 200. Браузер Chrome 19.0.1084.52 m
Жаль не получилось сыграть.
OS: Ubuntu 11.04
Браузер: Chrome Версия 19.0.1084.52
Дык ява… Было бы оно на сервере на чистом си, тогда может и в 1,65 Mb уложились.
Основное место занимают не явовские структуры а различные буфера. Тем не менее, она просто кушает -Xmx1024M, а использует лишь малую часть этого.
Значит, в подобных графиках ещё разумно отражать состояние java heap. Я так понимаю, он все отведённые 1024М отжирает, чтобы реже запускать GC?
Да, всё так. Руки пока не дошли показывать состояние jvm. Но я иногда пробегался jmap-ом и видел что утечек и диких выделений памяти нету.
Для тайлов удобнее использовать не drawImage, а createPattern и fillRect. fillRect также удобнее тем, что им можно нарисовать несколько одинаковых подряд идущих тайлов, и это будет быстрее.
Данный тест раскрывает странный эффект: что для текстур 32×32 есть существенный прирост производительности на айпаде в 2.5 раза:
jsperf.com/canvas-texture-draw-vs-fill

Очень важно, чтобы люди, которые прочитали этот пункт не бросались бездумно заменять все drawImage на fill-pattern.

Картинка отрисовывается начиная с координат, в то время как паттерн начиная с 0-0. Что это значит? Чтобы правильно отрисовать картинку — необходимо сперва сделать translate в нужную координату.



Но этот баг не заметить если делаешь тайловый движок, потому определённо может быть резон в том чтобы использовать pattern+fillRect.
Думал. Посмотрел на то что даже на айпаде у меня тормозит вовсе не отрисовка больших кусков, и решил не делать.
А что тормозит даже на айпаде? Лично у меня на айпаде до gpu-ускорения тормозило… clearRect больших участков.
Кстати, как профилируешь на айпаде?
Замерял сколько жрут разные части рендеринга и выводил в то окошко с FPS. Лаги смерти возникают когда надо нарисовать несколько только что полученных чанков, много тайлов. Я знаю что это можно сгладить, если я буду рисовать новый чанк в кеш не сразу а по частям, но просто не хочу это кодить. Потрачу сэкономленное время на переход к webgl.
Здравствуйте

Скажите я правильно понял что pattern + fillRect быстрее прорисовывает картинку чем drawImage?

Существуют случаи, когда drawImage быстрее pattern + fillRect?

Спасибо за ответы.
Оно действительно быстрее на новом Chrome и на iPAD, но тормознее в опере. Выигрыш зависит от размера картинки, в каждом случае надо тестить. Учтите что при fillRect возможно надо делать translate + scale, и например сочетание scale и rotate на 90 градусов даёт странный эффект на iPAD. Но при рисовании тайлов это всё не нужно, и fillRect работает просто отлично!
Интересно, что судя по другому тесту оно даже в опере значительно быстрее:

jsperf.com/canvas-texture-draw-vs-fill/2

Вообще я получил странные результаты. Даже на одном браузере несколько запусков подряд были противоположно разные значения:
habrastorage.org/storage2/3e8/25f/91d/3e825f91d15a101490e83c50f9b410fa.png
habrastorage.org/storage2/b77/958/bcb/b77958bcbd3546914c4309d1dc82c783.png
Это что, в опере рулят транслейты?
Там же ещё имеет значение offscreen/не-offscreen вроде?..
Да и возможно свой тест надо делать.
Ну оно всё рисуется в пределах экрана, да и я удивился и сам проверил — действительно рисуются.
Если у вас критическое к скорости приложение, то стоит попробовать перевести его на fill-pattern и посмотреть, какой будет результат
Да вот тоже игру делаем и как раз в производительность на клиенте все и упирается.
Почитав информацию и погуглив дополнительно — ех… буду переделывать клиент :)
А какой подход в целом? Можно в личку?
Т.К. я и с drawImage не имею особо проблем с производительностью
Ми только изучаем все прелести HTML5.

Ну как у нас сейчас — есть реализован сервер и практически реализован клиент.
Принцип отрисовки прост — один канвас и FPS 30.
То есть 30 раз в секунду все перерисовывается — теперь я понимаю насколько єто глупо.

Смотрю Вы разбираетесь в JS — так как я не очень.
Если интересно принять участие в проекте — пишите в личку и я дам свои координаты можем больше пообщаться. Сами мы с Украины (Киев — Івано-Франковск).
Ну я автор LibCanvas, так что на Canvas разрабатываю уже более 2 лет. И сейчас занят серьёзным комерческим проектом.
Могу помочь консультациями и советами, в скайпе, shock13666
4. Веб-функционал — Node.js (packages: express, mysql, request, nodemailer, validator, moment, forever)
5. Клиентсайд — GWT, транслируемый в javascript

UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
UFO landed and left these words here
К сожалению с таким latency играть пока просто не возможно. Жмешь кнопку двигаться, а он двигается в лучшем случае через секунду. Уже несколько раз умер изза этого. Поберегу-ка я свои нервы до следующего бета-теста.
Это проблема с каналом до сервера в частном случае… На данный момент движок очень требователен к нему.
Интересно конечно, но играть невозможно, каждые 5 мин всевиснет, приходится перезапускать браузер.
Каждую минуту выскакивает яваскрипт с предупреждением в хроме что некоторые плагины перестали работать (тулбар скайп в частности).
А в целом очень понравилось. Успехов вам.
Удалите грёбанный скайп-тулбар для начала. Один из самых долбанутых плагинов для браузера.
Не знаю, все может быть, я не пользуюсь ни хромом ни тулбарами которые на нем стоят, да и если честно впервые узнал что такой бывает.
Залез в него лишь потому что в других браузерах поиграть было просто нереально из-за тормозов.
Аналогично. Началось такое вчера часов в 18. До этого работало нормально.
Ubuntu 64 Firefox proxy: сайт грузится — игра нет. Javascript и флеш включены.
То есть собственная комната, куда можно загнать друзей по приглашению и пофаниться?
Мне нравится, что-то мы такую идею упусти ли…
При запуске игры в консоли вот такое:

WARNING: error in render com.google.gwt.core.client.JavaScriptException: (NS_ERROR_NOT_AVAILABLE): Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCanvasRenderingContext2D.drawImage] QueryInterface: function QueryInterface() { [native code] } result: 2147746065 filename: bombermine.ru/play/app/DD177CA4CF1111D73CCFA09F9901E244.cache.html lineNumber: 6993 columnNumber: 0 inner: null data: null initialize: function initialize() { [native code] }

И такого там много.
Пара вопросов нуба, который хочет понять как окупать такие игры.

1. Над игрой работало в общей сложности 6 человек, специалистов в своей области. Вопрос. Сколько времени прошло с момента идеи до запуска сервера в продакшен? Сколько оценочно человекочасов потребовалось?

2. Как собираетесь монетизировать? Пока наблюдаю только рекламу вашего же хостера, и все. Планируете ли зарабатывать на этой игре? Или этот проект просто для саморекламы и ислледования возможностей используемых технологий?
Рискну за всех ответить.
Пока мы все работаем на голом энтузиазме, бюджета нет. Все работают в разной степени, так художники пока не очень заняты. Связано с сильной загрузкой программиста, который не успевает реализовывать все идеи и параллельно оптимизировать движок.
Так что время оценить очень сложно… Безусловно, все можно было бы сделать в два-три раза быстрее, будь мы полноценной сработавшейся командой.

Сама игра изначально задумывалась как полигон для тестирования движка, но очень полюбилась народу. В какой-то момент мы решили его сделать полноценной игрой.
Собственно говоря, поскольку мы планируем выход в социальные сети, донат все таки появится и будет носить чисто декоративный характер (в основном кустомизация). «Зарабатывать» — вряд ли получится, а вот набрать стартовый капитал вполне возможно. Конечно, есть возможность того, что игра «выстрелит». Но на джекпот рассчитывать не стоит никогда.

Прикрутите возможность играть на тач устройствах пожалуйсто.
На первом айпаде приемлимый фпс а вот поиграть не получается
Only those users with full accounts are able to leave comments. Log in, please.