Um pouco sobre o framework UTools, que tem como objetivo tornar mais simples e fácil o desenvolvimento de jogos para diversas plataformas, tornando o lançamento simultâneo para o desenvolvedor independente uma realidade.
2. Tópicos
• Quem sou?
• Identificando e entendendo o problema
• Planejando uma solução
• Ação
3. Quem sou?
• Fundador da Vortex Game Studios;
• Organizador da SPJam;
• Desenvolvedor (C, C++, C# e outros);
• Atualmente, no desenvolvimento
de jogos e ferramentas de apoio;
• Gosto de bolo :)
@VortexStudios
@SPGameJam
@TheMonkeyTail
6. Alguns problemas que encontramos
• Input
Para cada tipo de dispositivo de entrada (teclado, joystick, mobile, touch)
há necessidade de códigos específicos e não padronizados
• Arquivos
A leitura e gravação de arquivos é diferente em cada plataforma. Nosso
primeiros testes com gravação e leitura de arquivos no Android levavam
os dispositivos a congelar.
• Tradução
Os assets disponíveis para tratar o tema não funcionam adequadamente
em jogos multiplataforma. O que adquirimos não funciona em Windows
Phone e OS X
8. Temos:
• Diversos inputs, incluindo os desenhados na tela em jogos
mobiles;
• Leitura e Gravação de arquivos;
• Bibliotecas que não compilam adequadamente em todas as
plataformas;
• Necessidade de integrar bibliotecas exclusivas para diferentes
plataformas
9. Resultado
• Longos periodos de produção e desenvolvimento;
• Códigos não-padronizados;
• Novo ciclo de aprendizado para cada plataforma;
• Custo elevado de produção;
• AHHHHHHHH!!!!
12. O que queremos?
• Reduzir o tempo de produção do seu jogo;
• Padronização de código-fonte;
• Reduzir o tempo de aprendizado para implementação de
bibliotecas
• Reduzir o custo de produção do seu jogo
14. O que é a UTools?
• Qual o objetivo?
Reduzir os custos e tempo de produção de jogos multiplataforma usando
um framework padrão.
• Como funciona?
Através da implementação de módulos especializados, cada um fazendo
a sua tarefa, independente da plataforma de destino!
• E quais são os modulos?
A imagem explica :)
16. A UInput
• Interface visual;
• Permite configurar todas as entradas
em um só lugar, incluindo virtual
• Exportar e importar presets
em formato JSON
• Ativar, desativar ou mudar
configurações em real-time
17. Exemplo (C#)
float h = 0.0f;
if ( isPC ) {
h = Input.GetAxis("Horizontal");
} else if ( isMobile ) {
if( Input.acceleration.x >= 0.1f && Input.acceleration.x < 0.2f ) {
h = 0.5f;
} else if( Input.acceleration.x <= -0.1f && Input.acceleration.x > -0.2f ) {
h = -0.5f;
} else if( Input.acceleration.x >= 0.2f ) {
h = 1.0f;
} else if( Input.acceleration.x <= -0.2f ) {
h = -1.0f;
} else{
h = 0.0f;
}
}
18. Exemplo (C# c/ UInput)
float h = UInput.getAxis( "Player", "X" );
19. A UData
• Sintaxes amigáveis
• Leitura e gravação funcionando em qualquer plataforma, com
a mesma implementação
• Armazenamento automático em nuvem quando a plataforma
permitir