Задался вопросом об архитектуре процессора с которым работаю. 64-битные процессоры хороши в 32-битовых вычислениях и без проблем запускают созданную игру, но зачем выпускать 32-битную игру в 64-битоной эре?

Процессор: ARMv7 с поддержкой Neon (32-bit) или ARM64

На первый взгляд кажется логичным сразу ориентироваться на ARM64: современное устройство — современная архитектура, значит и игра должна быть 64-битной. Но в разработке всё не так однозначно.

32-битная сборка не означает, что игра работает на каком-то «слабом» процессоре. Современный ARM64-процессор вполне способен выполнять 32-битный код. Поэтому сама по себе разрядность приложения ещё ничего не говорит о производительности игры.

Для меня вопрос оказался скорее практическим: какую архитектуру действительно имеет смысл поддерживать в мобильной игре? Ведь каждая дополнительная архитектура — это ещё одна сборка, которую нужно проверить на реальном устройстве.

При этом есть и обратная сторона. 32-битное приложение имеет более жёсткие ограничения по адресному пространству и работе с памятью. Для небольшой игры это может долго оставаться незаметным, но по мере увеличения количества текстур, моделей и других ресурсов ограничения начинают становиться уже не теоретическими.

Поэтому переход на ARM64 для моего проекта — это не просто вопрос «современная архитектура против старой». Это ещё и вопрос того, какой проект я хочу получить в итоге и насколько оправдано сохранение 32-битной сборки.

В разработке интереснее не выбрать вариант потому, что он считается современным, а понять, что конкретно он даст именно этой игре. И ответ для меня оказался довольно простым: проект развивается, требования к нему могут расти, и я предпочёл не закладывать ограничения на будущее уже на этапе самых первых сборок.