• Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    0
    Для iOS почти все сторонние фреймворки статические
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    0
    Да, Apple запрещает скачивание исполняемых файлов.
    developer.apple.com/app-store/review/guidelines/#software-requirements
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    +1
    По идее, при линковке удалится все, кроме этих 1-2 функций
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    0
    Мы стараемся чистить мусор. Но да, в первых версиях были с этим проблемы. Можно попробовать переустановить игру.
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    0
    У нас практически вся графика конвертируется в другие форматы. Есть даже специальный тест, который проверяет, что в билде нет лишних PNG. Самая лучшая оптимизация PNG, по нашему мнению, — заменить его на WEBP (прошу не считать рекламой).
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    0
    На страничке приложения указан размер на устройстве после распаковки. Размер ipa узнать не так то просто, к тому же он зависит от устройства и версии iOS.
    В билд включаются ресурсы, необходимые для начала игры. В том числе и первые уровни. Ресурсы, которые нужны на более поздних стадиях, скачиваются по мере прохождения игры.

    Иногда, несмотря на все усилия, даже ресурсы, требуемые для старта, не помещаются в 100 Мб. Тогда приходится делать так называемый «стартовый пак», который скачивается сразу после установки.
  • Сжимаем несжимаемое – как уменьшить дистрибутив мобильного приложения
    +1
    То и другое делается на стороне Apple. Они, конечно, понимают, что было бы лучше сперва сжимать, а потом шифровать. Одно из двух — либо у них есть свои причины так не делать, либо им просто лень :)
  • Как оптимизировать игру с помощью полигональных атласов
    0
    OpenGL ES — это подмножество OpenGL, ничего не надо транслировать
  • Как оптимизировать игру с помощью полигональных атласов
    0
    Под Windows — Angle. Под OSX — просто вызовы OpenGL.
  • Как оптимизировать игру с помощью полигональных атласов
    0
    Мип-мапов нет. Сколько внешних пикселей понадобится OpenGL — это зависит от масштаба с которым рисуется текстура. Если текстура при отрисовке уменьшается в 2 раза, то может потребоваться 2 внешних пикселя, и т. д.
  • Как оптимизировать игру с помощью полигональных атласов
    +1
    Не совсем так. Текстуры по краям уходят в альфу, и там 1-пиксельной обводки достаточно. А если распиливать текстуру на треугольники то получится что-то типа «склейки» текстур, и там все сложнее. Кроме того, надо учитывать что при конвертации в pvrtc текстура обрабатывается блоками 4x4 и если в этот блок попадут треугольники от разных текстур, то все опять же будет некрасиво.То есть да, теоретически можно попробовать разбить текстуру на треугольники с обводкой, но практически могут возникнуть проблемы при отрисовке и плюс неизвестно насколько велик будет реальный выигрыш памяти, потому что придется применять обводку к каждому треугольнику. Тут надо отдельно экспериментировать.
  • Как оптимизировать игру с помощью полигональных атласов
    +1
    Перед тем как разбивать текстуру на треугольники, к ней уже применена 1-пиксельная обводка. Вообще, обводка обязательна как для полигональных, так и для обычных атласов. Борьба с артефактами OpenGL это отдельная и сложная тема, и возможно про нее будет отдельная статья. Stay tuned!
  • Как оптимизировать игру с помощью полигональных атласов
    +1
    А зачем нужно исходную текстуру сохранять целой на атласе? Можно же каждый треугольник отдельно размещать, а не как часть общей исходной текстуры — это должно позволить укладывать еще плотнее. При этом, чтобы не границе треугольника не появлялись ореолы, нужно просто на атласе каждую текстуру треугольника на пару пикселей «расширить» во все стороны.

    Именно из-за возможных проблем с артефактами отказались от этой идеи. Из-за особенностей работы OpenGL ему могут понадобиться пиксели за пределами рисуемого треугольника. Если там не будут пиксели исходной текстуры — появление артефактов неизбежно. Как правило достаточно 1-2 пикселя, но бывает что надо и больше. Сохранение исходной текстуры в атласе в неизменном виде гарантирует что артефактов не будет.

    Мое имхо что по производительности рендера разницы или не будет — сколько выиграли на уменьшении кол-ва атласов а как следствие и на переключении атласов столько мы проиграем на усложнении обработки вершин на CPU и усложнении кода
    Такой подход наверное был актуален пру лет назад когда RAM в смартфонах было кот наплакал

    Собственно, пару лет назад мы все это и затеяли и именно чтобы решить проблему с оперативной памятью. Игра рассчитана не только на флагманские устройства. До тех пор пока устройства с 512 Мб памяти есть у достаточно большого числа пользователей, нам придется с ними считаться. А то QA быстро перечислит нам список устройств на которых игра падает по памяти.
    По FPS действительно особенного выигрыша не получается. В примере тут cocos2d-x-performance-optimization
    подобрана немного жульническая картинка. Если бы дядя не так широко расставлял руки, разница overdraw была бы куда меньше и FPS был бы примерно такой же. При переходе на полигональные атласы на FPS начинает влиять слишком много факторов, и нельзя точно сказать что он во всех случаях упадет или во всех случаях вырастет.