JohnJ2, для звука библиотек много разных. Мне например нравится BASS, они просты, так что обарачивать толком уже никакой функционал не надо, всё и так примитивно. Лоад, плей, стоп :)
KEFIR написал:
Тут уже был срач на эту тему :) На самом деле нет. Нужно просто уметь нормально организовать код и использовать что-то помощьнее блокнота. Лично у меня никаких проблем с рефакторингом никогда не было. Можно хоть какую-нибудь проблему для примера?
На счет этого пункта мне сложно сказать, потому что как-то люди на нем пишут, хотя мне и неизвестно как (покрывать тестами то что может проверить статический анализатор?
KEFIR написал:
Давай разберемся. Что именно перестало работать? Единый стандарт есть. Но и некоторые браузеры любят бежать впереди паровоза и внедряют эксперементальные функции. Но в документации они всегда обозначены как эксперементальные и которые могут исчезнуть в последующих релизах.
Я использовал kineticJS во всех браузерах были какие-то изменения в методе fillRect() там то ли вместо первого параметра раньше кисть передавалась, а потом перестала, или наоборот, не помню. Второй раз еще какая-то хрень был с изменением АПИ, и игра криво выглядела.
KEFIR написал:
По мне так он уже вполне на уровне, которые позволяет разрабатывать вполне серьезные вещи. Скажем возможностей уже не меньше, а скорее даже больше чем когда-то было в ныне таки умершем Flash.
Но на мертвом флешь почему-то все еще больше хитов.
Html5 выглядит красиво и вкусно, но когда его кусаешь, понимаешь что он сырой.
- Та же перерисовка экрана, во флеше есть механизм, который обновляет только измененную часть экрана и это нативно (читай быстро), в html5 это этого нет, а если нужно делать, то на js(js медленней нативных оптимизаций)
- Во флеше есть DisplayList и он опять же нативный, в HTML5 его его нужно писать на js
- Редактор анимации?
Сколько я не искал аналогов FlashProfessional, никто даже рядом с ним не стоит. А всякие конвертеры fla->html5 имеют кучу ограничений.
- и еще куча всяких мелочей которые за много лет были учтены во флеше, но хи отсутствие делают неудобной разработку на html5
JohnJ2 конкурсы с таким ограничением диким уже редкость и скорее ограничение уже характер носит рекомендательный\бонусный.
Врядли. Времена, когда все конкурсы были 256-512Кб прошли уже давно :)
http://igdc.ru/igdc_top.php?&konkurs=89 Тут у меня игра на кводэнджине, с бассом, музыкой и прочим была, при ограничении в 13Мб. У меня она была меньше, уже не помню точно, что-то вроде 8.5.
0nni
С fillRect за последние 2 года точно ничего не менялось. Вот у меня поделка на чистом canvas с 2013 года работает без проблем: http://miriti.github.io/games/onesword/. Может быть это с самим kineticJS что-то не так?
Но на мертвом флешь почему-то все еще больше хитов
Ну оно не удивительно. Сколько лет существует флеш?
- Та же перерисовка экрана, во флеше есть механизм, который обновляет только измененную часть экрана и это нативно (читай быстро), в html5 это этого нет, а если нужно делать, то на js(js медленней нативных оптимизаций)
- Во флеше есть DisplayList и он опять же нативный, в HTML5 его его нужно писать на js
Нативный DisplayList из флеша всегда был чудовищно медленным (видимо для хоть какого-то ускорения применялась частичная отрисовка что само по себе анахронизм). Я помню кучу проблем из-за этого. Для того, чтобы обойти это тормозуху всегда использовали отрисовку в bitmap, потом, когда появился Stage3d кажется уже никто этот DisplayList не использовал. Появился божественный Starling и до появления WebGL это было самое быстрое что можно было делать в браузере.
- Редактор анимации?
Сколько я не искал аналогов FlashProfessional, никто даже рядом с ним не стоит. А всякие конвертеры fla->html5 имеют кучу ограничений.
Flash Pro был прекрасен, но из-за того, что DisplayList ни в какие ворота, использовать его для более-менее быстрых вещей все равно не удавалось. Если к этому еще прибавить отрисовку векторной графики на лету... Лично я все делал во FlashDevelop. А для анимации использовал спрайты как это приходится делать в любом другом движке. Для создания такой анимации полно инструментов.
Html5 выглядит красиво и вкусно, но когда его кусаешь, понимаешь что он сырой.
Не понимаю :) Абсолютно не нахожу чего бы мне не хватало в html5. Флеш не открывал уже года 3.
моя поделка на HTML5, марта 2010-го года, также отлично себя чувствует и сейчас, http://uvadzucumi.pp.ua/projects/sokoban/ , наверное только стоит убрать проверку IE. и фиксы для оперы.
KEFIR написал:
С fillRect за последние 2 года точно ничего не менялось. Вот у меня поделка на чистом canvas с 2013 года работает без проблем: http://miriti.github.io/games/onesword/. Может быть это с самим kineticJS что-то не так?
Но проблема решилась копанием в сорцах движка и удалением первого аргумента из fillRect() и это случилось почти одновременно во всех браузерах (какраз когда я искал работу и прикреплял игру к резюме =)
KEFIR написал:
Нативный DisplayList из флеша всегда был чудовищно медленным (видимо для хоть какого-то ускорения применялась частичная отрисовка что само по себе анахронизм). Я помню кучу проблем из-за этого. Для того, чтобы обойти это тормозуху всегда использовали отрисовку в bitmap, потом, когда появился Stage3d кажется уже никто этот DisplayList не использовал. Появился божественный Starling и до появления WebGL это было самое быстрое что можно было делать в браузере.
Самая медленная операция это BitBlt. Если ты создаешь средствами WinApi Bitmap, размером с экран, равзернешь его на весь экран и попробуешь 30 в секунду рисовать его в окне, то 30-ти кадров в секунду ты не добьешься.
У старлинга те же беды что и у html5, ну кроме что проблем с разными браузерами.
Это и отсутствие редактора, нет поддержки некоторых возможностей, например хитрые маски. Все это решается но через одно место.
Веду сейчас проект на старлинге, потому знаю =)
0nni
Может быть это этот kineticJS использовал какую-то нестандартную возможность, которая выпилилась с обновлением браузеров? Ни разу не напарывался на проблемы с поддержкой в разных браузерах стандартных вещей. Все равботает асболютно одинаково во всех.
Копирование битмапа во флеше всегда работало очень быстро. На этой особенности было куча движков типа Flixel, Stancil и прочих. Они все не использовали стандартный flash.display.*. Даже я когда-то пилил свой недодвижок на этом деле. Перерисовка битмапа 1024x576 с кучей спрайтов вполне удавалась при 60fps.
Отсутствие редактора это не проблема API :) Сам по себе Flash не имеет редактора, это просто рантайм, платформа. Редактор это отдельный продукт совершенно. И на сколько я понимаю последние версии Adobe Flash Professional вполне себе сохраняют анимацию в html5. Только для реально динамичных игр этот редактор был всегда бесполезен к сожалению.
KEFIR написал:
Копирование битмапа во флеше всегда работало очень быстро.
Да, это я перепутал с кем-то другим.
KEFIR написал:
Отсутствие редактора это не проблема API :) Сам по себе Flash не имеет редактора, это просто рантайм, платформа. Редактор это отдельный продукт совершенно. И на сколько я понимаю последние версии Adobe Flash Professional вполне себе сохраняют анимацию в html5. Только для реально динамичных игр этот редактор был всегда бесполезен к сожалению.
Но это проблема популярности апи, если нет удобного инструмента, никто не будет им пользоваться.
Не вижу проблем использовать флеш в динамических играх.
0nni
Но это проблема популярности апи, если нет удобного инструмента, никто не будет им пользоваться.
Не вижу проблем использовать флеш в динамических играх.
Проблема в том, что DisplayList супер медленный. Не знаю как сейчас, но еще в 2013 году он не использовал аппаратное ускорение! Именно из-за этого возник Starling. Более того, во флеше долгое время были проблемы с поддержкой многоядерности.
Вообще для разработки игр есть куча инструментов и редакторов чего угодно (Tiled, Spine, тысячи их). И все их можно использовать в разных движках и ничего не мешает использовать из для разработки игр на js.
А вот Adobe Flash Professional только для Flash и только.
Тысячи редакторов и ни одного удобного.
Вот в чем можно создать окно? Взять несколько битмапов, покидать их в редактор, расставить кнопочки, текстовые поля, декорчик всякий, анимацию. Можно добавлять кастомные классы и назначать их клипам, это очень удобно.
Если подскажешь мне такой редактор, желательно бесплатный. Буду благодарен.
Onni, ты все еще описываешь прелести редактора, а не платформы :) Уверен что все перечисленное есть в Юнити и других движках, которые имеют возможность экспортировать все это дело в том числе и в html5.
KEFIR
Ты прав, громадные преимущества(но и не маленькие накладные расходы) дает наличие редактора и инфраструктуры под работу с ним. Действительно удобная штука.
Что тогда объясняется отсутствие огромного числа коммерческих проектов у уже который год революционного html5?
В html5 мы имеем просто API для рисования кривых и растра, ничего даже рядом стоящего с DisplayList.
Есть конечно библиотеки типа KineticJS и PixiJS, которые пытаются подражать флешу. Но если ты писал на чем-то из этого, то знаешь что они сильно уступают флешовому DisplayList по возможностям (ну еще бы флешу 18 лет, а фреймворкам максимум по 2-3).
Я с флешем знаком только два года, до это считал его отстоем и даже писал на html5, в том числе и на pixiJS и на KineticJS, когда я после этого попробовала флеш, у меня просто не возникало таких проблем как с html5 (речь сейчас именно про апи, а не про редакторы), все было продуманно, программа вела себя так, как и того от нее ожидаешь, мне не приходилось ломать голову "а почему так?".
Я не говорю что html5 плох и что его надо списывать, я верю что когда-то он дорастет и вытеснит флеш, но объективно, сейчас он зеленый и не годится как серьезный инструмент.
Хотя кажется для следующего проекта я буду его использовать =)
0nni написал:
Что тогда объясняется отсутствие огромного числа коммерческих проектов у уже который год революционного html5?
В html5 мы имеем просто API для рисования кривых и растра...
-кстати, да - что меня в свое время напрочь отвратило от html5 (это было когда стандарт еще устаканивался(код выполняемый на каждом браузере по-своему был нормой, и невыполняемый вообще на 1-2х из них - тоже), хотя и сейчас, имхо, ситуация неособо лучше) - это полное отсутствие инфраструктуры: IDE, редактора, библиотек, поддержки... богомерзкий js к которому надо лепить обертку из не менее богомерзкого html, css.. О_о )) в этом флеш был на порядок круче, и что-то мне подсказывает, что html5 его во многих моментах всё еще не догнал.
А те кто пишут на коленке(читай - "в блокноте"), и этим гордятся... ну, на вкус и цвет...
P.S.: как говорится: о мертвых или хорошо, или никак. (
Игры на html5 (canvas) я не делал ещё, поэтому не знаю движков и редакторов и что там есть для этого. С тем багажом знаний, что есть сейчас, для разработки игры я бы использовал phpStorm - делал на нём раньше сайты. На сколько я помню, он очень хорошо подходит и для написания javascript. Для рисования менюшек и прочее использовал бы inkscape. Если ещё нет перевода из svn в canvas и объекты javascript (для навешивания событий) - стоило бы сделать. Было бы очень удобно :)
0nni написал:
В html5 мы имеем просто API для рисования кривых и растра, ничего даже рядом стоящего с DisplayList.
Собственно во флеше мы тоже имеем только API для рисования кривых и растера + stage3d. DisplayList это только часть стандартной библиотеки. Я не понимаю твоего восторга на счет нее :) Я делал различные приложения и игры на флеше несколько лет. flash.graphics.* - это очень тормозная штука, которая даже не имеет аппаратной поддержки. Да, редактор Adobe Flash Professional очень удобен, но ограниченные возможности стандартной библиотеки убивают все. Если бы DisplayList был так прекрасен, то не появились бы супер популярные Starling, Flixel и прочие. А ведь все эти библиотеки исключают возможность использования AFP. Как же так?
0nni написал:
если ты писал на чем-то из этого, то знаешь что они сильно уступают флешовому DisplayList по возможностям
Писал на PIXI.js и даже немного контрибьютил :) Я не знаю о каких сильных уступках ты говоришь. Тот же DisplayList, маски, фильтры, все есть. API полностью покрывает то, что я использовал во флеше + дополнительные плюшки, динамичное развитие и возможность контрибьютить. К этому еще аппаратная поддержка и пользователю не нужно устанавливать плагин (да, флеш уже не входит в поставку браузеров, такие дела). Если выбор между Starling и PIXI.js то очевидный выбор это PIXI.js.
0nni написал:
но объективно, сейчас он зеленый и не годится как серьезный инструмент.
Нет, это очень субъективно :) Граф. API уже давно устаканилось. WebGL поддерживают все браузеры, в том числе мобильные. Игр на html5 делается полно. Я не понимаю что вы там называете серьезными проектами? Понятно что крузисы и GTAV на html5 не делают, но в целом игр на html5 очень много. Вот например, проекты на pixi.js, еще каждая вторая игра на Ludum Dare.
Да, технология молодая и она сейчас выстреливает. Флеш точно уже можно забыть.
Вообще удивительно, еще пару лет назад я был адптом флеша и делал все только на нем, а сейчас я будто выстпаю против него :-D Хотя это не так, AS3 это до сих пор один из любимейших мной языков. Но вот то, что флеш мертв, это действительно объективно. Число проектов падает, сам флеш почти не развивается, поддержка флеша выпиливается из браузеров и т.д. Увы.
Plastic написал:
хотя и сейчас, имхо, ситуация неособо лучше) - это полное отсутствие инфраструктуры: IDE, редактора, библиотек, поддержки... богомерзкий js к которому надо лепить обертку из не менее богомерзкого html, css.. О_о )) в этом флеш был на порядок круче, и что-то мне подсказывает, что html5 его во многих моментах всё еще не догнал.
А те кто пишут на коленке(читай - "в блокноте"), и этим гордятся... ну, на вкус и цвет...
Видимо ты очень давно в последний раз смотрел на html5 :) У меня по началу были точно такие же мысли. Но уже 2-3 года назад все было совсем не так как ты пишишь.
IDE для JS полно. Я лично использую WebStorm (точнее PhpStorm, но он в себя включает WebStorm), есть еще куча всего, но этот имхо лучший.
Про отсутствие редактора это вообще странно :) Это все равно что обвинять OpenGL в отсутствии редактора. Но это же всего лишь API, это даже не движок. Редакторы бывают частью движков, бывают отдельные редакторы уровней (типа Tiled), анимации (Spine например), да кучи всего. Есть движки, которые умеют экспортировать проекты в html5, тот же Unity.
Про библиотеки вообще не правда :) Библиотек для чего угодно на js больше чем на любом другом ЯП (пруф статистикой с гитхаба). Десятки либ для рендера, для звука, анимации, куча физических движков на любой вкус, все что угодно там есть.
Про поддержку не совсем понял :) JS поддерживается всеми браузерами и если не использовать нестандартное API, то все заводится одинаково во всех браузерах.
Обертку из html и css нужно лепить точно также как нужно было вставлять swf файл через совсем уже богомерзкий <object> или SWFObject, так что это странная претензия :) Вот это вот значительно лаконичнее и понятнее чем то, что приходилось лепить для того, чтобы вставить swf в html страницу. И да, это весь html/css код, больше не нужно.
KEFIR, а менюшки на чём рисуешь? Только на Unity или ещё что-нибудь есть специализированное для html5?
В твоём примере html+css файла не увидел самого canvas :) или он у тебя в скрипте создаётся?