A apresentação discute os benefícios e desafios do desenvolvimento de jogos para múltiplas plataformas. Ela apresenta várias engines populares, ferramentas e serviços para facilitar o desenvolvimento multiplataforma e discute técnicas como pré-processamento e interoperabilidade para lidar com diferenças entre sistemas. A apresentação também aborda tendências emergentes como VR/AR e conclui com casos de sucesso de jogos lançados em várias plataformas.
3. Globalcode – Open4education
Rafael Martins
~15 anos atuando na área de jogos digitais / mobile
Skyzone Entertainment
Electronic Arts
Hive
Cavylabs
Doutorando em Engenharia da Computação
(Jogos multiplataforma, interação e acessibilidade)
5. Globalcode – Open4education
Porque desenvolver jogos
multiplataforma ?
Conhecimento em diferentes sistemas operacionais e hardware
do mercado
Possibilidade de trabalhar com tecnologias emergentes
Maiores chances de ganhar visibilidade e reputação no mercado
(... e dinheiro)
Aprender a lidar com diferentes tipos de interação (game design)
10. Globalcode – Open4education
Pré-processamento
Diretivas de Pré-Processamento
São chamadas pelo compilador para executar código específico
por plataforma
Diretivas condicionais: #if, #else, #elif, ...
Diferenças entre linguagens (macros)
11. Globalcode – Open4education
Pré-processamento
using UnityEngine;
using System.Collections;
public class Directives: MonoBehaviour {
void Start () {
#if UNITY_WSA
callWindowsLeaders();
#elif UNITY_IOS
callGameCenter();
#elif UNITY_ANDROID
callGooglePlay();
#else
createDialog(
“Não há leaderboards”);
#endif
}
}
Diretiva Compila o que...
UNITY_EDITO
R
Scripts para editor da Unity
UNITY_IOS Scripts para iOS
UNITY_TVOS Scripts para tvOS
UNITY_ANDR
OID
Scripts para Android
UNITY_WSA Scripts para plataforma
universal da Microsoft
UNITY_PS4 Scripts para PS4
12. Globalcode – Open4education
Interoperabilidade
Termo comum nas áreas de porting e conversão de plataformas
Execução de código implementado em uma linguagem A dentro
de um sistema implementado em uma linguagem B
JNI (Java Native Interface), Managed Code, Javascript Bindings