Como ser um programador de jogos: Avaliando um framework
Existem muitos frameworks para jogos na internet, e cada vez mais estão sendo lançados para diversas plataformas. Por isso, é importante saber o que um framework deve ter e o que deve ser testado, antes de escolher a tecnologia errada e descobrir isso tarde demais para mudar.
Os itens abaixo foram baseados em necessidades que tive (e não foram atendidas) quando desenvolvi o TCC da minha pós-graduação. O framework que eu usei foi uma escolha tão errada que ele falha em quase todos os itens abaixo, mas era tarde demais para mudar.
Por isso, vale a pena perder um tempo no começo do projeto avaliando se o framework escolhido realmente serve para o que você quer fazer, e também se funciona bem, para não te deixar na mão.
- Possui alguma biblioteca de física? Se não, existe alguma recomendada pelos criadores do framework que funciona bem em conjunto?
- Consegue trabalhar com sprite sheets ou apenas imagens separadas?
- É necessário muitas linhas de código para carregar e desenhar algo na tela?
- Possui suporte para eventos de entrada (teclado, mouse, touch, etc)?
- No caso de 3D, quais são as compressões de textura que tem suporte?
- Existe um site/forum para tirar dúvidas? Algo feito para a comunidade de desenvolvedores que usa a tecnologia?
- O framework é atualizado constantemente?
- Possui um roadmap de futuras atualizações? Eles são abertos a sugestões?
- Pode ser utilizado em mais de uma plataforma?
- Se for pago, existe uma versão trial para testes?
- Possui suporte a redes sociais, publicidade e pagamento (para comprar itens no jogo com dinheiro de verdade)? Se não, aceita algum framework externo?
- Em quais sistemas operacionais e IDEs (visual studio, xcode, eclipse, etc) funciona?
- O framework é famoso e já foi utilizado em jogos publicados?
- É fácil de debugar e entender os problemas?
Isso tudo é bem genérico, e é claro que depende do tipo de jogo que você está desenvolvendo. Mas, mesmo se não usar algo no início do projeto, é bom saber se o framework tem suporte a uma determinada funcionalidade, ou seu jogo não será flexível. Existe mais algum ponto que vale a pena ser verificado antes de escolher um framework? Comente abaixo!