14 января 2008 года в Mobile and Devices Developer Center появилась статья "Ten tips to help you develop better Flash Lite games". Ее вольный перевод следует ниже.
hitTest
x
y
width
height
setInterval
Используйте целочисленные значения для координат надписей. Избегайте полужирных начертаний (bold). Старайтесь задавать выравнивание текста по левому краю там, где это возможно. Используйте размер шрифта, кратный 8: 6, 16, 24, 32 и т.д. Это позволит выиграть в производительности.
eval("number" add 1) = 1;
Однако, ошибки производителности часто возникают только на реальных мобильных устройствах. Они связаны с переполнением памяти. Они могут зависеть от других функций устройства, таких, как звонки, SMS и т.п. Поэтому так важно тестировать игру на реальном телефоне, когда уже исправлены технические ошибки, проверенные на эмуляторах Adobe Device Central. Чтобы захватить максимальный круг устройств при тестировании, привлекайте к этому друзей, рассылая им свою игру. Выпускайте игру на рынок только после тщательной проверки качества.
Одиннадцатый совет: почитайте оригинал статьи, там есть иллюстрации, ссылки и подробности.
Кстати, а кто в рунете делает мобильные игры?
Rost, предлагаю расширить вопрос, кто вообще делает на флеше игрухи в рунете? Я делаю, может кто еще? Под флеш лайт пробовал - но довести до конца руки еще не дошли.
Бестолковая статейка. Не хочу никого обижать, но тут вперемешку и програмирование, и геймдизайн, и тестинг... Каша какая-то.
а правда что флешеры настолько бестолковы в программировании что не знают, что размер экрана надо в константе держать ?
Ребята, а если вам подарить 10 000 000 баков в бумажном ящике, вы упрекнете в том, что ящик из обычного гофрокартона, бумажный, а не титановый?
Но за крититку спасибо, бодрит Ж-)
zwitter, флэшеры разные бывают. Как и другие программисты.
спасибо, успокоили. а то я уже начал было плакать над статьей. о том как избаловано молодое поколение средствами :)
Kradar, другой пока нет, так что придется как-то пережить смутное время с этой :)
По моему нормальная статья, я делаю игры самостоятельно, и гейм дизайн и графику и анимацию и программинг, я думаю что оптимизация, а тут как раз речь идет об оптимизации - важнейший элемент любого гейм дизайна, тем более что свфки весьма требовательны к ресурсам. Я когда в инете нахожу флешовые игрушки, то многие из них весят по 5-10 метров, и тормозят безбжно, и непонятно как можно в такую простую игру впихнуть столько метров "чегото", а флеш лайт (точнее телефоны) имеют небольшую оперативку и чем меньше игруха весит и лучше оптимизирована - тем больше шансов у нее увидеть "живого" юзера.
Согласен с ded pb|xto. По долгу службы да и по собственному желанию разрабатываю игры, чаще всего приходится работать и гейм дизайнером и программистом (работал бы еще и художником да руки не оттуда растут). Стать для флеш геймдевелопмента вполне отличная. Оптимизация действительно рулит, потому как правильно было замеченно выше, часто делают монстров на пустом месте. С флеш лайтом на практике не знаком, но судя по мои РСС фидам флеш лайт идет широкими шагами на рынок мобильных игр, почти половина новостей по геймдевелопмнету во флеше пишется про флеш лайт. Ну а может мне так с подписками повезло.
> а правда что флешеры настолько бестолковы в программировании что не знают, что размер > экрана надо в константе держать ?
Нет, флешеры настолько толковы, что размер экрана хранят в конфигурационном xml-файле.
А по теме.
На мой взгляд, Flash Lite пока сильно отсасы... отстаёт от JavaME. Как по функционалу, так и по быстродействию (по крайней мере на моём мобильнике).
то Dan не только на твоём. Пока что на лайте можно делать очень несложные приложения, типа крестики нолики, снайк, тетрис - более сложные вещи сильно тормозят - просто сильно, так что о радужных перспективах говорить рано, вот когда АМР процы поставят на телефон гдето под гигагерц хотя-бы :) тогда можно уже о чем то говорить, самые быстрые приложения пока-что с++,потом джава, ну а флеш лайт - чистая экзотика, пока... Но со временем все может поменяться... А пытаться все равно нужно, пройдет эпоха мобилок - появятся другие девайсы, какие нибудь там стаканы или интерактивная упаковка с кранчами - процы там тоже слабые будут и опыт флеш лайт девелопмента для таких штук пригодиться... Опять будут повторяться тежи тетрисы и снейки :)
Для Flash Lite можно писать приложения на языках ActionScript 1.0 или ActionScript 2.0. Известно, что AS2-код в результате компилируется в AS1. Но именно AS2 предлагает вам ООП, от которого многие до сих пор необдуманно отказыватся, аргументируя это якобы низкой производительностью. Это полная чушь.
Нет, куча классов принципе не повредит головоломкам(мемори например), настольным игрым (шахматы, пасьянс) и прочим играм, где динамика до одного места. Но когда надо писать аркаду, доходит до того что даже в конечном коде, переменные типа displayWidth переименовываються в x1, просто для того чтобы выиграть еще пару миллисекунд.
текст не о чем писать на FLite 1.1 не реально, так же как не реально, что то нормальное сотворить на Flash 4 :)... какая она поддержка ас2 в FLite?
По поводу ООП.
Вот есть интересный сайт посвящённый оптимизации JavaME игр: http://supremej2me.bambalam.se/guides/programming-tips/
Там сказано, что надо изменить своим привычкам и делать всё "неправильно". Во-первых, постараться уместить всё в два класса: мидлет и канвас. Соответственно, код станет скорее процедурным, чем объектно-ориентированным. Кроме того, следует отказаться от геттеров/сетеров и обращаться к полям напрямую.
> Там сказано, что надо изменить своим привычкам и делать всё "неправильно"...
Вот по этой причине я буду обходить мобайл-девелопмент до тех пор, пока положение не изменится.
Ух народ, тяжело наверное с девелоперами игр в рунете - у всех в голове ООП, сеттеры-геттеры, на спектрум (к примеру) никто не писал игрухи на ООП и тем не менее у народа получались бестселлеры и умещалось все в какието 32К, а сейчас такую игруху чтоб написать нужно 10 человек со знанием сеттеров и геттеров, куча художников и менеджеров, бюджет солидный и все опять приведет к 10 метровому тетрису. Хотя для игры важнее знание оптимизации, физики, и хитрость - большинство спец-эффектов играх это все - обман зрения, причем тут сеттеры? Складывается впечатление что народ у нас учит акшн-скрипт ради акшн-скрипта, а не для того чтобы игра захватывала дух и была интересна. У флеша такой понециал - единство графики и кода! а все кинулись писать на ООП, да никто из пользователей даже не знает как написана игра - им нужно что? чтоб можно было ее быстро скачать и интересно поиграть, а не так что качаеш 100М демку, запускаеш - а там полная ..вно, зато рекламы сколько! Все сейчас кинулись на папервижн 3Д, да это коасиво, но зачем повторять на флеше то что делали уже на С++, асме? У меня ноут выть начинает когда в фаерфоксе запустиш какую-нибудь написанную на 8м или 9м флеше игруху - все тормозит, кругом блуры и градиенты, тени! Круто! чувак умеет составить класс и задать обьекту блур - и что? пользователь потом его похвалит за знания скриптов? Да пользователю время нужно убить на игру а не нервничать когда ком работает как черепаха и дымится из за того, что кто-то повыпендривался со знанием скриптов, а тут как раз и нужна оптимизация - я делал много (очень много) банеров-игр, там требование -20кБ размер флешки, так вот иногда, на штуки счет шел точек на кривых! А нынешнее поколение программистов избаловано Гигабайтами и гигагерцами, только игры от этого лучше не становятся - пакман как был крутой аркадой так его до сих пор клонируют, и ООП там небыло, а был нормальный подход, с оптимизацией и кода и графики!
ded pb|xto, искуство это хорошо, но не путайте его с бизнесом. С точки зрения бизнес-цинизма, в игры не должны играть - их должны покупать, программами не должны востаргаться - за них должны платить, и т.д. и т.п. А прочее - романтика инди-сцены. Это мило, и это должно существовать, но это не бизнес.
А про игры на спектруме - забудьте т.к. это не для энд-юзера, о "Mom Test" тогда даже не думали.
Kradar да я смотрю вы бизенес мен. =)
Не обижайтесь, но вы говорите чушь. С точки зрения прибыли, намного важнее получить постоянных клиентов, а это делаеться именно качеством, бонусами прочими фенями=)
Очень зря, за неправильный код иногда в правильных местах, платят очень большие деньги =)
Мне сейчас в одном очень правильном месте, платят очень большие деньги за "нифига не делать". И что? Это показатель? Нет, я не считаю деньги, достаточным поводом, к примеру, нифига не делать.
Kradar - Я о искувстве не говорил, я говорил об оптимизации. А по поводу вашего "бизнес-цинизма" как вы обьясните что крупнейшие производители игр пооткрывали спешно у себя отделы казуальных игр? не потому ли что в их здоровенный и требовательные игрушки, к тому же дорогие, играет очень маленькая часть пользователей, в то время как в зуму играют практически все. А люди с подобным мнением как у вас потом копируют и на рынке потом 347 вариантов зумы, 412 вариантов тетриса и т.д. И судьба у них - так себе. Вот пример - написали чуваки игру N+ (harveycastle помоему) и че - игра понравилась народу - и теперь ее делают под все консоли и ребята получили прибыль, а люди с бизнес-цинизмом потом просто собирают объедки за ними.
Я и не обижаюсь. На реалии-то гляньте. Блат, связи и кумовство - вот основные способы получить постоянных клиентов.
А если говорить о качестве, то не понимаю, где я не прав? Ну вообразите, у вас дорогущий контракт с постоянным клиентом на разработку и сопровождение комплекса ПО. Вот поставили вы клиенту это ПО (оптимизированное донельзя, набитое виртуозными хаками и прочими нетипичными инди-приемами), а ведущий программист взял и уволился... И что? Как вы это все сопровождать-то будете?
Вообще сложные вещи сопровождаются документацией и коментариями, и потом если человек шарит - то он шарит. \\ ... и Блат, связи и кумовство - вот основные способы получить постоянных клиентов \\
Ну вот никогда бы не подумал что флешеры по блату устраиваются на работу...
А не правы вы ( на мой взгляд) как раз вот в чем, если вы наняли программера для написания игры и он вам наваял 10К строк ООП кода и не доделал это все до конца, уволился, проект нужно заканчивать, поэтому вы нанимаете другого программера, переплачиваете ему за то чтобы он разобрался в этих 10К строках ООП кода и т.д. пока силами неправдами этот тетрис увидет свет в размере 10 мегабайт и 10 патчами и заплатками. И другой вариант - программер делает игру быстро и без заморочек, не применяя (в данном примере) ООП, и игра быстро выходит в свет и весит меньше и экономия нервов и баксов и человеко-часов. или я не прав?
Ну гм. я сейчас этим и занимаюсь =) только я делаю нетолько Софт но и Хард.
На самом деле это легко решаеться, при наеме людей на ключевые должности, всегда идет контракт, при котором он (ведущая должность) должен научить своего саксессора перед тем как уйдет (за отдельную плату конечно) или компенсировать мне мои затраты. Я считаю что человек получающий 60-75 тысяч в год (а lead-programmer столько обычно и получает, бывает и больше) может позволить себе потратить недельку на объяснения своей замене.
Нет, вы не подумайте что я стороник спагети кода. Просто я занимаюсь тем что делаю компактные системы, и очень хорошо вижу, что ООП это комфорт разработчика, за счет скрости выполнения программы. Вот у нас был случай недавно, что при просмотре видео в высоком качестве (7 каналов аудио, при разрешении 1920x1080 пикселей) были лаги раз в полчаса на 100-200 миллисекунд. При работе с Word такое вообще ничего, но это очень раздражает когда ты смотришь фильм, вообще при просмсотре фильма любой лаг крайне раздражает.
Все закончилось тем, что сначала мы переписывали С код в ассемблер, а потом вызывали дядю из Дании на один день, который за день работы берет 2 тысячи евро. И он нам за 1 день наколдовал, и оптимизировал. Только не надо мне говорить, что можно было нарастить систему, расчетная стоимость модификаций была выше 10 штук. Кстати я заметил, что на ассемблерщиков и Сишников умеющих работать на любых осях (большинство Сишников специализируються на чем то одном) стоят просто в десятки раз больше "традиционных" программистов.
А еще у мы заказывали другим людям разработку пульта управления (меньше кпк, точскрин), я даже боюсь представить с какими проблемами столкнулись они, если мы маялись с плеером размером с консумерский ноутбук/двд плеер.
При этом, наш сервер пашет на Питоне, и сейчас мы его переписываем на руби, ибо там нам не надо ничего ужимать, оптимизировать и тд, там просто сервер который вносит изменения в баши, и перезапускает демоны или всю систему.
Всему есть свое место и время, просто лично мой опыт говорит мне, что специалисты по низкоуровневым языкам, или те кто могут написать быстрый (пусть и уродский) код на той же яве, получают намного больше. Это не значит что так оно на самом деле, я не охватываю и десятка отраслей, и это может быть "местой" особеностью.
nirth, я совершил ошибку, позволив себе ответить на "душевное" сообщение ded pb|xto и ввезавшись в спор. Простите. Вы сказали "Всему есть свое место и время...". Я тоже так считаю. За сим прекратим эти бессмысленные препирательства.
Так что игры никто не делает?
Я делаю. Не на лайте, на простом флеше. Использую ООП по максимуму. Потому что: 1. Многие игры похожи - нужно повторно использовать код 2. Над одной игрой может работатъ несколъко человек 3. Заказчик порой сам не знает, что он хочет. Приходится часто вноситъ изменения
Раньше делал казиношные. Можно посмотреть, например, тут: http://stanjamescasino.com/ Некоторые делал не я, некоторые делал совместно с другими разработчиками, некоторые целиком мои (кроме графики, разумеется).
Сейчас делаю логичесткие и "релаксационные" игры. Посмотреть пока негде.
Ясно, вобщем не динамические я правильно понимаю?
chudo-yudo.com, если интересно, она еще в процессе приготовления, но общие черты видеть можно. Если получиться возможно к марту закончу ее.
> Ясно, вобщем не динамические я правильно понимаю?
В некоторых казиношных играх бонус-игры - аркады. И, по моим наблюдениям, на производительность гораздо больше влияет сложная анимация, чем код (по крайней мере в играх).
Хотя и код оптимизировал, например, использовал хеш-таблицы для определения столкновений и отключения объектов, которые находятся за экраном. Но это, опять же, в основном для уменьшения количества одновременных анимаций, чем для ускорения выполнения кода.
P.S. Когда только-только начинал разбираться с Flash-ем, делал пятикилобайтовую псевдо-трёхмерную демку, которую заооптимизировал по самое "небалуйся" с помощью flasm. Правда, заметного прироста производительности практички не дало. Позволило лишь выиграть около килобайта в размере. А позже я сделал вывод, что низкоуровневая оптимизация хороша для самоделок, которые сам придумываешь, сам делаешь. Если делаешь под заказ и в команде, то лучше делать код понятным и расширяемым, чем заточенным и быстрым.
Спасибо, тоесть для декстопа всетаки флэш прет.
Ну то, что для десктопа он прёт - это давно известно. Я говорю про то, что в десктопных игрушках можно и нужно использовать ООП. А вот в мобильных это пока непозволительная роскошь.
2Nirth: Я считаю что человек получающий 60-75 тысяч в год (а lead-programmer столько обычно и получает, бывает и больше) может позволить себе потратить недельку на объяснения своей замене.
Я не слышал о таких суммах в России в кило$$ для Lead/Senior Flash/Flex программиста. Если же вы живете в европе, то учитывайте налоги. Возможно оно и выйдет одинаково в конце концов в районе 30-45 за год.
Предыдущий пост
Следующий пост