Escolha de linguagem - DesenhoMaster2017/SpaceShooter GitHub Wiki
Histórico de Revisões
Data | Versão | Descrição | Autor(es) |
---|---|---|---|
02/09/2017 | 1.0 | Versão inicial | Isaac |
Introdução
Está seção não se refere exatamente em mostrar a vantagem de se usar uma determinada linguagem e sim identificar características que as atuais linguagens de programção tem no mercado. Em relação as linguagens, não podemos determinar somente através de suas características qual é a melhor para o desenvolvimento de jogos, pois a realidade é que a linguagem tem que se encaixar nas necessidades da pessoa ou da equipe do projeto. Sendo assim, nesse documento será levantado as principais linguagens e o por que da escolha de linguagem java para o desenvolvimento do jogo.
Comparação
C
C tem como característica o fato de ser uma linguagem extremamente rápida. Ela é uma das linguagens mais usadas e apresenta muitas bibliotecas, códigos e outros recursos disponíveis para um bom desenvolvimento que são facilmente encontráveis na comunidade. Seu único ponto fraco é também um ponto forte. Não ser orientada a objetos, a implementação de muitos recursos acaba tendo um grau de dificuldade alto, mas o fato de não ser OO também é o ponto forte que tem na parte de performance.
C++
C++ é uma linguagem de programação compilada multi-paradigma e de uso geral. A linguagem é considerada de médio nível, pois combina características de linguagens de alto e baixo níveis. Os compiladores dessa linguagem geralmente embutem também suporte à C permitindo que as duas sejam misturadas. Ela conta com um grande ponto forte que é o seu forte uso no desenvolvimento de jogos, a maioria dos jogos comerciais existentes a usam, portando tem uma grande aceitação e documentação a seu respeito.
Python
Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte. Possui uma forte comunidade e muitas bibliotecas disponíveis para um bom desenvolvimento. Sua escolha para o contexto de jogos já é considerável por possuir boas bibliotecas para o gênero.
Java
Java é uma linguagem cuja sintaxe não é muito fácil. É fortemente orientada a objetos e é interpretada tornando-a um pouco mais lenta que as anteriores, o que pesa dependendo de onde e como vai ser usado. Apesar disso aos poucos a comunidade vai lançando alguns jogos nessa linguagem, apesar de serem raríssimos títulos comerciais com essa linguagem sendo que a maioria dos jogos desenvolvidos são de estudantes e pessoas que fazem isso por hobby.
Unity
Unity, também conhecido como Unity 3D, é um motor de jogo 3D proprietário e uma IDE criado pela Unity Technologies. Unity é similar ao Blender, Virtools ou Torque Game Engine, em relação a sua forma primária de autoria de jogos: a sua interface gráfica. O motor cresceu a partir de uma adição de um suporte para a plataforma Mac OS X e depois se tornou um motor multi-plataforma.
Escolha
Por existir várias linguagens existentes para o desenvolvimento no contexto de jogos e todas elas com suas características próprias e vantagens e desvantagens, a equipe levantou alguns pontos nas quais foram essenciais para determinar a linguagem ao qual o projeto seria desenvolvido. Estes pontos foram:
- Escolha de uma linguagem com bibliotecas e bons recursos para o contexto de jogos
- Possuir boa literatura na área
- Possuir padrões de projeto implementados
Estes três pontos foram fundamentais para a escolha da linguagem. E baseando nesses pontos foi definido Java como linguagem de desenvolvimento. Java satisfaz todos os três pontos definidos pela equipe e também pelo fato de ser uma linguagem adotada como "nativa" na disciplina de Desenho de Software.