Uma pequena folha de dicas para avaliar bibliotecas, estruturas, mecanismos e SDKs e escolher as melhores
- Bibliotecas, estruturas, SDKs de mecanismos e assim por diante são ferramentas destinadas a resolver problemas para você ou ajudá-lo a resolver problemas e atender a certos requisitos.
- Avaliar significa descobrir qual deles atende a mais requisitos.
Portanto, antes mesmo de começar a avaliar, você precisa esclarecer em que cenário você está e quais requisitos você tem / deseja ter, pois essas são as perguntas que devem ser respondidas pela avaliação.
O cenário define de onde vêm os requisitos (quem decide o que é um requisito e o que não é).
Os cenários típicos são:
O cenário mais hobbiest do projeto
Você, sozinho ou com alguns amigos, deseja criar seu (talvez primeiro) jogo. Perfeito, você pode decidir tudo por conta própria e está limitado apenas a descrições técnicas básicas e requisitos técnicos (deve ser um jogo para celular, um jogo para PC, um jogo para console, um jogo na Web, ...). Você pode decidir o que quiser.
Os requisitos implícitos serão que você pode querer aprender algo específico (um idioma, uma estrutura / mecanismo específico)
O cenário do aluno
Os requisitos podem vir do seu professor. Requisitos típicos que eu tinha nesse caso: o jogo precisa ter alguns elementos de física e suporte à rede multiplayer. Ou tem que ser escrito em C ++. Portanto, avaliar se torna fácil. Você está procurando um mecanismo de jogo que permita codificar em c ++ e que já pode incluir um mecanismo de rede e física.
Um requisito mais maligno (da vida real): tudo precisa ser escrito do zero (mas o uso de bibliotecas é permitido). Portanto, nenhum editor é permitido (por exemplo, Unity3D). Portanto, você não está procurando por engines / sdks, mas por bibliotecas.
O cenário do jogo indie
Você quer ganhar dinheiro com o jogo mais tarde. Portanto, você precisará vendê-lo de alguma forma, o que o levará a verificar quais requisitos são provenientes da loja na qual você deseja vender seu jogo.
Permite jogos Java, jogos HTML5, ....)
Requer que você inclua bibliotecas específicas (se sim, em quais idiomas essas bibliotecas estão disponíveis)
O Google Playstore exigirá que você escreva seu jogo como jogo Android, a Apple AppStore exigirá que você escreva seu jogo como aplicativo iOS. Ou você tem o requisito de escolher um mecanismo multiplataforma.
O cenário profissional
Você não possui apenas uma loja fornecendo requisitos, mas provavelmente um editor ou cliente com imagens próprias dos requisitos. Nesse cenário, você também terá uma equipe maior de desenvolvedores empregados. Dependendo do conjunto de habilidades, surgem novos requisitos (nossos programadores só podem escrever c ++, portanto, não podemos usar um mecanismo de jogo Java / Android puro sem que eles precisem (muito) de tempo para aprender algo novo).
Não entro em detalhes esse cenário, uma vez que você conseguiu formar uma equipe de funcionários e encontrar um cliente / editor que já sabe o que procura ao avaliar as coisas.
Como decido quais são meus requisitos quando sou mais indiferente ou indi e mais ninguém me diz?
Faça suas próprias perguntas sobre seus objetivos e seu jogo?
Qual deve ser o meu jogo? dispositivos móveis, pc, web (html / Js), que controladores vou usar (tela sensível ao toque, giroscópio, consola de jogos)
O que há de novo no meu jogo e o que outros jogos também têm. As partes que os outros jogos também possuem (renderização, áudio, manipulação de entrada) serão feitas pela maioria das ferramentas (mecanismos de jogos) que você pode encontrar ou é fácil agrupar bibliotecas com essa funcionalidade em seu próprio mecanismo de jogo ou jogo.
Qual é a dimensão do meu projeto: pássaros bravos ou skyrim? O Angry Birds pode ser feito em quase todas as ferramentas e o skyrim seria limitado a ferramentas de alto desempenho com (presumido) anos de personalização adicional (os mecanismos de terreno de alto desempenho não são fáceis)
Meu único objetivo é apenas terminar um jogo? sim? perfeito, você pode usar algo altamente avançado, como Unity, Unreal, ... tendo um editor útil e uma grande comunidade fornecendo tutoriais e respondendo suas perguntas. Ele tira o fardo de lidar com tarefas de baixo nível, como carregamento de malha, implementando suas próprias funções matemáticas, ....
Meu objetivo é aprender algo específico? sim? o que você quer aprender?
Qual idioma devo escolher? Se o objetivo ainda é apenas concluir o jogo, escolha aquele que você / sua equipe conhece melhor? Se você quiser aprender um idioma específico, escolherá uma ferramenta nesse idioma.
A ferramenta X terá desempenho suficiente para o meu jogo? Talvez você nunca saiba. Mesmo em grandes produções, a fase de otimização e polimento leva muito tempo e é um grande esforço para fazê-lo. Comece a se preocupar com o desempenho quando encontrar problemas de desempenho. Você não sabe o desempenho da ferramenta, a menos que atinja seus limites. Tudo no site do desenvolvedor de ferramentas é apenas um palpite. Depois de anos avaliando ferramentas, parei de acreditar em qualquer coisa no site dos desenvolvedores.
Responder a essas perguntas leva você aos requisitos. A avaliação está encontrando uma lista de ferramentas e TESTANDO (e não apenas lendo a página inicial) o que a ferramenta pode fornecer ou não.
Os requisitos não são cortados em pedra, mas são dinâmicos. Eles vão e vêm durante o desenvolvimento. Se o jogo precisa de física ou não, por exemplo, depende do design. Se o design mudar, o requisito também pode mudar.
Aceite os requisitos que você possui e comece. Os requisitos em mudança são o pão diário do sofrimento, ahm, desenvolvedores felizes, independentemente do tamanho do projeto e do nível de experiência.