Meu jogo foi para capa da Google, YEAH! 2018 Lindo lindo :).

Standard

Bom, é com motivo de muita alegria que o game no qual fiz parte do desenvolvimento foi parar na capa da Google.
SIMMMMMM, está lá estampadasso.

O jogo que desenvolvi (fiz parte do core de desenvolvimento) é o Magic Master -> https://play.google.com/store/apps/details?id=air.com.mopixgames.magicmaster&hl=en

Mas como cheguei lá e como é o resultado disto?
Você pode estar se perguntando:

Como faço para meu jogo ir para capa da Google Play?

Antes de mais nada quero agradecer a Deus por ter feito parte desse  projeto chamado Magic Master.
Eu não comecei a desenvolver ele do zero, muito pelo contrário, eu entrei no projeto quando o mesmo estava em andamento e teve uma baixa no core de desenvolvimento, me levando a ser o main dev do game. A empresa na qual presto serviço até a data deste post é a MOPIX (Mopix Games) de Belo Horizonte (MG). (http://www.mopix.com.br/)

O jogo é um tower defense que foi desenvolvido por 3 anos. É um jogo que tem um design diferenciado (Raoni Dorim é o artista) + uma equipe forte de animação e etc. O jogo foi para o CoreLabs (aceleradora de nível mundial) e recebeu bastante investimento.

Vamos aos pontos do que é estar na capa do Google? Ok, vamos lá!

1 – Downloads

Parece que não é tão importante estar na capa do Google, mas é, é sim, é MUITO :).
Os downloads do game que eram algo em torno de (no máximo) 50/100 por dia passaram para 2000 ao dia. É um ganho de 1000%, isso atrai mais players e consequentemente coloca mais in-app purchases em crescimento.

ATUALIZADO O POST!!!
Neste exato momento (horas após a publicação deste post) estamos em 4000 downloads / dia e subindo! YEAHH!

2 – Portifólio

Não é simples chegar lá, a jornada é forte, mas a compensação de ser destaque ali denota o quão refinado é o processo para chegar até ali. Em Minas Gerais apenas 2 empresas conseguiram tal feito, a Mopix e outra empresa. Sem dúvidas é uma coroação que recebi sem precedentes (e jamais esperei por isso mesmo sendo formado em gamedev).

3 – O processo (como chegar lá)

Bom, estar ali é extremamente sofrido, parece que não, mas é!
Para estar ali o seu game precisa de:

  • Feedback de touch (em tudo que tem button effect),
  • Pause funcionando redondamente (e não só o pause, como o pause sob HOME/Back/Lock buttons do android [botões físicos do android]),
  • No Retorno ao game pós HOME button, Back button, Lock Button o jogo deve exibir o menu de pause (hard hein???),
  • Design de certa forma atraente,
  • Gameplay de certa forma atraente,
  • Adequar seu código ao sdk da Google mais recente possível (mínimo hoje é o 26, que corresponde ao android 8),
  • Se ele realmente precisa de sleep, deve usar Dozen da Google na API level 26,
  • Não deixe bugs no game, parece claro isso, mas lá é obrigação, bugs são requests para ontem,
  • O feedback de touch é bastante estressante de se lidar :(,
  • O sdk 26 exige muito mais dos programadores, principalmente por causa das permissions (que se dividem em permissões perigosas e permissões normais). <— cuidado!

Não é uma tarefa simples e fácil, se observar a documentação da Google é extremamente pesado.
Adequando todo seu game aos pontos acima você pode entrar em contato com o representante BR ou da América Latina da Googleplay solicitando a feature do seu jogo.

Não vou detalhar tanto os procedimentos e etc porque um post seria pequeno demais para isto.

Obrigado a todos envolvidos.

Unity 5.6+ and 2017.1.1f1+ Build Problemas (Android): AAPT failed or Android SDK paths problems (JDK Included)

Standard

Hello Guys, chegou a hora de dar algumas dicas de como sanar esse problema chato que está rolando na Unity nos últimos tempos. Deixo claro que vou postar alguns links para salvação do clan, ok? Então vamos lá:

1 – Problemas com SDK da Google na Unity 5.6+ ou 2017+ (JDK mais novo também apresenta problemas)

Recentemente tentei subir minha engine para as versões mais recentes e na hora de buildar para a Google tive diversos problemas. Visando deixar claro cada problema e solução resolvi dissecar através de links por problemas para que você fique bastante em paz na hora de compilar o bicho. No caso de SDK temos diversos problemas que vão desde a Google Tools que não está 100% compatível com a Unity, isto foi oficialmente divulgado, como no link abaixo:

https://unity3d.com/pt/unity/whats-new/unity-5.6.1#section-fixes

A solução que a Unity manda utilizar-se é uma bem conhecida (eu fiz um how to recente sobre: http://www.littleoak.com.br/2018/01/03/how-to-install-support-to-android-sdk-unity-2017-java-development-kit-jdk-dica-simples-e-funcional-jdk-1-9-problems/)

No mesmo link acima eu ensino como lidar com o JDK mais recente (1.9) que também apresenta alguma incompatibilidade misteriosa com a Google.
Outro link bom (e bem WINDOWS no assunto) trata do mesmo assunto, pode ser visto em:

http://devlog.markhlavac.com/2017/06/30/installing-android-sdk-for-unity3d-using-sdk-tools-and-cli/

Isso sana erros como

unable to list target platform

Acima matamos o problema de SDK da Google (e JDK da Oracle).

2 – Problemas na Hora de Buildar para Android

A mensagem mais comum e genérica que você pode receber na hora de buildar para android é:

Unity build problem – AAPT failed ALGUMACOISA ALGUMA COISA ALGUMA COISA

OUUUU

“There is a problem parsing the package”

 

Bom, existem vários caminhos que podem apresentar este problema (VÁRIOS MESMO), mas normalmente a solução que vou deixar vale para quase todos (senão todos) MESMO. Parse é o que mais recebe correção no tweak abaixo, no caso do AAPT pode ser o JDK cagado, nesse caso siga o passo que já falei no link -> http://www.littleoak.com.br/2018/01/03/how-to-install-support-to-android-sdk-unity-2017-java-development-kit-jdk-dica-simples-e-funcional-jdk-1-9-problems/

Na tela de Build Settings precisamos clicar em player settings que fica lá embaixo na tela:


Clicando em PLAYER SETTINGS temos de ajustar várias coisas, não vou entrar nos detalhes, mas há 1 ponto que deve ser BASTANTE observado, OTHER SETTINGS, nele temos o “range” de qual Android mínimo deve rodar o game e qual a API para qual o android foi projetado, se você colocar um range aceitável vai dar certo. Se o mínimo for alto seu Android não vai rodar, se a API for alta demais provavelmente sua Unity não vai compilar corretamente, então fiz assim:


No MINIMUM API LEVEL coloquei o 4.1 e no TARGET deixei o 7.1 (que é level 25, a que temos garantido na TOOLS e NO SDK DA GOOGLE 🙂

Abração guys, vamos que vamos.

How to Install Support to Android SDK (UNITY 2017+) & Java Development Kit (JDK) – Dica simples e funcional (JDK 1.9 problems)

Standard

Bom, serei o mais objetivo possível, ok?

Meu setup será descrito logo abaixo e o tweak para resolver também.

My Desk:

Mac OSX HighSierra 10.13.2,
8 GB ram,
Core2duo,
SSD 120gb Vertex 3 OCZ,
Unity 2017.1.1f1 personal 64bt.

Passo 1 (step 1):

Baixe o Android Studio (sim, o sdk vem nele, essa conversa de gamb de SDK não existe, precisa baixar e o bicho é grande, 700mb+, baixe aqui:

https://developer.android.com/studio/index.html

Depois de baixar e instalar (instalei default) você deve abrir ele e dizer que não tem instalação anterior, apenas um novo WORKSTATION. (nova instalação, sem importação de NADA).

Passo 2 (step 2):

No mesmo link de download do studio existe uma parte de ferramentas de CLI, você deve baixar a CLI do seu SO (pode ser windows, não tem problema, se seguir a lógica desse artigo você vai conseguir fazer rodar em seu windows numa boa):

Baixe em https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip a versão que eu usei.

EXTRAIA o arquivo que vai gerar uma pasta chamada tools. Pegue esta pasta, copie-a, entre na pasta /Users/SEU_USUARIO/Library/Android/sdk, DELETE OU renomeie a pasta tools que existia e coloque a pasta tools nova (a que você baixou e extraiu do google).

Feito isto temos o básico do Android SDK, mas precisamos arrumar o java (e esse é pegadinha do malandro viu?).

Antes de passarmos para o java precisamos entrar na pasta

/Users/little_oak/Library/Android/sdk/tools/bin pelo terminal, sim, abra o TERMINAL DO MAC (shell) e vamos ter que digitar comandos, lets go?

cd /Users/little_oak/Library/Android/sdk/tools/bin

./sdkmanager “platform-tools

./sdkmanager “platforms;android-25”

./sdkmanager “build-tools;25.0.3”

Entenda que ali é ./ MESMO, estamos mandando rodar o binário que não faz parte de um path global do sistema (para poder rodar comandos se estar no caminho completo dele).

 

Passo 3 (step 3):

Resolvido o problema do SDK da GOOGLE, agora precisamos resolver o sdk da Oracle. De alguma maneira estranha a Unity em suas versões anteriores apresentava uma inconsistência com a TOOLS da google mais recente (isso está descrito no link abaixo):

https://unity3d.com/pt/unity/whats-new/unity-5.6.1#section-fixes

A Unity 2017+ por sua vez já suporta a tools nova, porém apresenta alguma inconsistência pra lá de estranha com o JDK mais recente, o que me fez usar um JDK mais velho. Para dar certo usei o JDK jdk1.8.0_151.jdk (pode baixar aqui: http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-macosx-x64.dmg).

Assim que baixar instale normalmente. Terminada a instalação teremos alguns problemas para sanar, descrevo nos passos abaixo.

Passo 4 (step 4):

No OSX, o sistema bloqueia por padrão a leitura da pasta Library do usuário, sendo necessário dar permissões a esta pasta. Como segurança não é o quesito principal deste postei achei por bem mandar um 777 nela, logo precisamos rodar o comando abaixo:

sudo chmod 777 /Users/MEU_USUARIO/Library/

Feito isto agora podemos brincar na Unity.

Abra a Unity 2017+ e vá em UNITY -> PREFERENCES (imagem abaixo):
External TOOLS -> PROCURA PELA PARTE DE SDK E JDK.

EM SDK coloque: /Users/little_oak/Library/Android/sdk
EM JDK coloque: /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home

No Windows os paths mudam, mas é bem mais fácil que no MAC.

Depois é só compilar :).