Развитие игровой вспышки
Текущее время: Вс ноя 18, 2018 12:57 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 4:51 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт фев 25, 2011 1:59 pm
Сообщений: 733
Откуда: Киев
Сайт: https://www.facebook.com/waterknightgame
Игру заапрувили в AppStore 3 недели назад.

После этого я нашел издателя и зарегал игру на его аккаунте(на своем удалил)

Нужен был новый апрув. Но пришел отказ. Ваша игра на IOS 6.1 показывает черный екран.

В чем может быть проблема? Я использую CS6 + AIR 3.5. На IOS 6.0 все работало отлично...


Последний раз редактировалось mila Чт янв 31, 2013 4:55 pm, всего редактировалось 2 раз(а).

Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 4:52 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт апр 23, 2010 8:43 pm
Сообщений: 765
mila писал(а):
Игру заапрувили в AppStore 3 недели назад.

После этого я нашел издателя и зарегал игру на его аккаунт(на своем удалил)

Нужен был новый апрув. Но пришел отказ. Ваша игра на IOS 6.1 показывает черный екран.

В чем может быть проблема? Я использую CS6 + AIR 3.5...


В отказе сказали, что тестировали на iPad?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 4:53 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт фев 25, 2011 1:59 pm
Сообщений: 733
Откуда: Киев
Сайт: https://www.facebook.com/waterknightgame
We found that your app exhibited one or more bugs, when reviewed on iPad (3rd Generation) running iOS 6.1, on both Wi-Fi and cellular networks, which is not in compliance with the App Store Review Guidelines.

Specifically, when launching the app, a blank black screen is displayed.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 5:01 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт апр 23, 2010 8:43 pm
Сообщений: 765
Круто. Значит я присоединяюсь к вопросу.
Такая же фигня - у аппруверов все время черный экран. У меня на реальном устройстве c Development Provisioning Profiles все бегает отлично (правда там не 6 IOS).
У меня собрано на SDK 6.0, AIR 3.5. Аппрувили два раза на 6.0.1 iPad.
Жду пока на тестинг принесут iPad 4 с IOS 6.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 5:28 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт фев 25, 2011 1:59 pm
Сообщений: 733
Откуда: Киев
Сайт: https://www.facebook.com/waterknightgame
Проблема именно в IOS 6.1

А можно указать для AppStore, что игра работает только на IOS до 6.0 включительно?
И где это указывается?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 5:31 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт апр 23, 2010 8:43 pm
Сообщений: 765
mila писал(а):
Проблема именно в IOS 6.1

А можно указать для AppStore, что игра работает только на IOS до 6.0 включительно?
И где это указывается?

Нельзя. Все последние версии IOS приложение должно поддерживать по-умолчанию.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 5:40 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4996
Откуда: Пока не знаю
все у кого проблемы с черным экраном пишите мне в скайп. Он на сайте.
P.S. прежде чем писать - пробуйте сборку на последнем Air


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Чт янв 31, 2013 5:44 pm 
Не в сети
Аватар пользователя

Зарегистрирован: Пт апр 23, 2010 8:43 pm
Сообщений: 765
TheRabbit писал(а):
все у кого проблемы с черным экраном пишите мне в скайп. Он на сайте.
P.S. прежде чем писать - пробуйте сборку на последнем Air

Последний это бета 3.6 или стабильный 3.5?


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Пт фев 01, 2013 5:12 am 
Не в сети
Аватар пользователя

Зарегистрирован: Вс дек 19, 2010 5:31 pm
Сообщений: 4996
Откуда: Пока не знаю
Короче так. Проблем с черным экраном может и не быть. Дабы не плодить вопросы, на которые существует пачка ответов - сделаю краткий экскурс.

1) Adobe Air сам по-себе занимает ~9.5 мегабайт

2) Очень часто ребята загружают в память бинарник, который занимает 25 мегабайт. Как это случается. Берете свою swf браузерную и смотрите - если занимает больше 1.5 мегабайте то делаете следующим образом:
- если звук в игре зациклен (конец и начало без прерываний), то надо создать отдельный swf и его подгрузить уже после того, как игра запустится

- если звук не зациклен - кидаете его сразу внешним мп3 файлом и подгружаете

- если используете большие фоны (jpeg/png), то делайте их внешними и загружайте после того, как приложение запустилось

- напишите тулзу, которая будет брать ваши jpeg/png и выкидывать их в чистый байткод заранее. На стадии загрузки ассетов - подтягивайте эти файлы и делайте setPixels для BitmapData. Сэкономите время, память и рейтинг приложения не испортите

- по-возможности все ассеты храните во внешний файлах. Мелочевку можно держать в основном swf. Все другое, что подгружается по ходу игры - держать там не надо

- проектируйте игры так, что при выходе из неё она будет сохранять статус и при возобновлении ( Event.Activate ) будет происходит задержка в 1-2 секунды перед снятия таймера игры с паузы. Это надо для того, чтоб перед продолжением игры девайс выровнял FPS. Пользователю показывайте табличку со смыслом "Возобновление".

- меньше используйте вызовов функций и статических переменных и ссылок через них. Только тогда, когда это действительно надо. В AMV2 вызовы статических функций занимают больше времени, чем вызов private или public. Используйте пулинг объектов. Если на экране идет снег - не надо в конце его жизни удалять снежинку. Сбрасывайте её положение в ноль и пускайте снова. Таким образом сократите прилично ресурсов.

- избегайте откладывания ассетов за экраном. Любой ассет, хранящийся за экраном - участвует в рисовке. Да! Вот такие новости. Сам удивился. Только он не выводится на экран, а участвует в просчете offscreen текстур. Идеальное решение скрывать его через Visible = false (если речь о DisplayList). Если объект использует математику и это позволительно - при visible = false исключайте его из общего tick процесса ( из EnterFrame)

- Не городите по 50 вызовов функций из функций.

Кривой пример:

functon init():void{
loadApp();
}

function loadApp():void{
loadTextures();
}

правильный пример

functon init():void{
/**** загружаем приложение ****/
// код загрузок

/**** загружаем текстуры ****/
// код загрузок
}
- Если ситуация позволяет - используйте исключительно for для циклов и исключительно с обратным просчетом. Для больших циклов делайте их разбивку на 2-3 цикла. Сократите шанс hogging cpu

- на сегодня мультипоточность не доступа в ios на air, по-этому, там где это возможно - вешайте хитрые расчеты с отсрочкой. Банальный пример - надо загрузить 50 текстур. Грузим пакетами по 5 штук. Между пакетом - делаем setTimeout в 250мс, к примеру. Этим самым деаем девайсу шанс разгрузиться. На iPad1 популярная проблема вылета приложений - чрезмерно быстрая забивка памяти. Не пытайтесь в рот засунуть сразу 250 грамм красной икры. Делайте это красиво - по 50 грамм.
}

- очень распространена ошибка разработчиков при масштабировании объектов. Запомните. Любое изменение размера графики - это нагрузка на процессор. Если используете Ретину и не ретину, то делайте 2 набора графики. Вращайте, двигайте и играйтесь с коэффициентом:

image.x = 45 * scaleFactor;
image.x = 125 * scaleFactor;

Лучше приложение будет иметь внешних ассетов на 4 мегабайта больше, чем оно будет тормозить в 4 раза сильнее.

- всегда округляйте координаты положения. Флеш тратит память на хранение и отрисовку картинки с координатой 115.8 на 0,99% больше, чем при положении 115. Расчет простой - 115\115.8
Кажется это мелочи, но недавний эксперимент позволил в моем TRW движке поднять FPS с 23 до 27. Очень большая разница при том, что максимальный был установлен на 30.

- Очень важный момент, о котором знают многие. Но не задумывались. Очень важно для мобильной разработки кешировать значения:

Код:
import flash.display.BitmapData;
import flash.utils.getTimer;
import flash.display.Bitmap;

var image : BitmapData = new img();
var bitmap : Bitmap = new Bitmap(image);

var cachedWidth : int = image.width;
var cachedHeight : int = image.height;


var i : int = 0;

var timer1 : int;
var timer2 : int;

var benchmark : int = 0;
benchmark = getTimer();

for ( i = 0; i < 15000; i ++ ){
   if ( image.width > image.height ) {
      bitmap.x += 1;
      bitmap.rotation += 2;
      bitmap.x -= image.width * 0.05;
   }
}
timer1 = getTimer() - benchmark;


benchmark  = getTimer();
for ( i = 0; i < 15000; i ++ ){
   if ( cachedWidth > cachedHeight ) {
      bitmap.x += 1;
      bitmap.rotation += 2;
      bitmap.x -= cachedWidth * 0.05;
   }
}
timer2 = getTimer() - benchmark;

trace ( 'ms, getter: ', timer1, " vs cached: " , timer2);



Запустите тест на компе и увидите, что закешированная ширина и высота вычисляется на 30-40% быстрее. Это связано с тем, что получая тот же width/height вы по-сути запускаете функцию возврата значения в виде нового объекта в добавок с просчетом boundbox для DisplayObject объекта. По-этому, если Ваши объекты не изменяют свои размеры - в пору использовать кеширвание.

Конечно, можно сказать на 15 000 итерациях мелочь. Соглашусь. Но когда вопрос о мобильном устройстве, на экране хотим 60 кадров в секунду - каждая операция отъедает не мало и там где мы видим в холостом ходу на 15 000 итерациях превосходство в 8 мс, в реальных условиях мы получим до 20-30 мс разницы.

- старайтесь использовать векторы вместо массивов. Очень важно использовать вектор фиксированной длины. Наполнение ветора через push очень сильно отличается по производительности от наполнения на компьютере. Там, где тратится 2мс на компьютере - будет тратиться 50мс на мобильном устройстве.


3) Отмороженная модерация в компании огрызка с хвостиком не редко называет "черный экран" состояние, когда разработчик забыл засунуть в приложение Splash Screen. Что такое Splash Screen, как оказалось - знают не многие. Это не заставка в самой флешке с анимацией спонсора. Сплеш в iOS это картинка, которая показывается в промежуток, когда пользователь нажал на иконку и вплоть до загрузки приложения. Всегда её используйте. Если приложение будет долго загружаться и не будет этого самого сплеша - это назовут "черный экран", подумают баг и, если модератору у огрызков наступили в метро на ногу - он отомстит всем. В первую очередь тому, кто загружает приложение с "черным экраном". При этом на просьбу предоставить краш лог Вы будите посланы в заморские приключения. По-факту лога просто нет.

Конечно, есть вероятность того, что приложение занимает много мегабайт. И оно, конечно же - вылетать будет. Как лучше всегда тестировать? Просто. Накачайте мусора разного и запустите приложений в количестве 10 штук. Или 20. Сколько получится. И попробуйте запустить своё. Многие могут сказать, что не влияет сколько открыто - оно же не запущено. Могу опровергнуть. Если открыть лог с Low Memory предупреждением, то четко видно сколько кушает приложение, которое свернуто в Background режим.

Как следить за размером:

- генерируете IPA файл
- входите в него с помощью ZIP
- ищите файл без расширения. Обычно он носит название swf файла
- если он занимает больше 12-15 мегабайт, то Вы не оптимально использовали ресурсы

Так получилось, что я очень много сделал приложений для iOS и всегда получал опыт, который позволял делать шустрые приложения. Их высокая производительность обусловлена лишь одним фактором - отсутствие лени. Многие ребята сделав игрушку для веба - бегут портировать её на iOS и думают, что за пару дней они это сделают. Такие ребята сталкиваются с десятками проблем на 90% состоящий их результата ленивости. Лучший способ избежать проблем - начать писать грамотный код сразу или не полениться переписать заведомо медленный метод. Сохраните время не только себе но и тому, кто Вам помогает решить проблему.


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Проблемы с новой IOS 6.1
СообщениеДобавлено: Пт фев 01, 2013 9:34 am 
Не в сети
Аватар пользователя

Зарегистрирован: Чт мар 22, 2012 4:14 pm
Сообщений: 1867
TheRabbit, мегапост! Спасибо!
Сохранил себе и покажу друганам в теме )


Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 49 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB