utools unite brasil

23
Alexandre Ribeiro de Sá - Vortex Game Studios Desenvolvimento Multiplataforma Apresentando UTools

Upload: alexandre-de-sa

Post on 05-Aug-2015

106 views

Category:

Technology


0 download

TRANSCRIPT

Alexandre Ribeiro de Sá - Vortex Game Studios

Desenvolvimento Multiplataforma

Apresentando UTools

Tópicos

• Quem sou?

• Identificando e entendendo o problema

• Planejando uma solução

• Ação

Quem sou?

• Fundador da Vortex Game Studios;

• Organizador da SPJam;

• Desenvolvedor (C, C++, C# e outros);

• Atualmente, no desenvolvimentode jogos e ferramentas de apoio;

• Gosto de bolo :)@TheMonkeyTail

@VortexStudios

@SPGameJam

Identificando e Entendendo o Problema

Tudo começa aqui:

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

• ArquivosA 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çãoOs 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

E as coisas só pioravam...

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

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!!!!

Ficou ó...

Planejando uma solução

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

Como tornar realidade?

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 :)

Módulos da UTools

A UInput

• Interface visual;

• Permite configurar todas as entradasem um só lugar, incluindo virtual

• Exportar e importar presetsem formato JSON

• Ativar, desativar ou mudarconfigurações em real-time

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;}

}

float h = UInput.getAxis( "Player", "X" );

Exemplo (C# c/ UInput)

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

Exemplo (C#)

• LeituraBinaryWriter bW = new BinaryWriter( file );

bW.Write( section.id );bW.Write( section.locked );bW.Write( section.storeKey );

• GravaçãoBinaryReader bR = new BinaryReader( file );

section.id = bR.ReadUInt32();section.locked = bR.ReadBoolean();section.storeKey = bR.ReadString();

• LeituraudSave.OpenPlayerData( "jelly_save", false); // False = Leitura

udSave.Write( section.id );udSave.Write( section.locked );udSave.Write( section.storeKey );

• GravaçãoudSave.OpenPlayerData( "jelly_save", true ); // True = Gravação

section.id = udSave.Read<uint>();section.locked = udSave.Read<bool>();section.storeKey = udSave.Read<string>();

Exemplo (C# c/ UData)

Ação

Obrigado!

fb.com/UToolsFramework

twitter.com/UToolsFramework

http://utools.rocks