Qual a melhor linguagem

1. Qual a melhor linguagem

Lincoln silva
Lincod

(usa Ubuntu)

Enviado em 18/12/2015 - 01:38h

Olá pessoal eu gostaria de saber qual linguagem é melhor para começar a criar um jogo em 3D? E se posivel se alguém tiver uma apostila ou algum tutorial ficaria muitoagradecido.


  


2. Re: Qual a melhor linguagem

M.
XProtoman

(usa Fedora)

Enviado em 18/12/2015 - 04:39h

Boa noite,

Infelizmente não tenho apostilas. A resposta mais curta é C++.

Antes de mais nada você pode tentar trabalhar com alguma Engine de Jogo já pronta, tente alguma que a licença esteja de acordo com o que você quer, existem engines abertas disponíveis para várias linguagens de programação, algumas inclusive suportam mais de uma linguagem de programação. Meu forte nunca foi engines porém de cabeça tem pelo menos uma para indicar: http://www.cocos2d-x.org/

Página com algumas engines, entre elas algumas código aberto e software livre: https://en.wikipedia.org/wiki/List_of_game_engines

O bom conselho e que a maioria deve lhe dar é não tentar criar tudo do zero e sim tentar trabalhar com alguma engine já pronta, porém se é da sua natureza querer fazer a sua segue abaixo algumas sugestões.

Não tenho uma apostila para indicar, tem um livro em português já antigo e infelizmente esgotado sobre OpenGL da Novatec: http://novatec.com.br/livros/opengl/

Existe um site que tem vários exemplos e é muito bom, acho que é esse: http://nehe.gamedev.net/

É bom aliar OpenGL(biblioteca gráfica que possui suporte a 3D, similar a um Direct3D) com SDL(biblioteca que lhe fornecerá mecanismos para criar janelas, trabalhar um pouco com imagens, som, tempo, captar entradas como teclado e mouse, ele é similar ao DirectX do Linux). Existem outras bibliotecas para você associar com SDL como: SDL_image(suporta vários formatos de imagem como JPG e PNG), SDL_ttf(para permitir você criar textos usando fontes TTF que são comuns no Windows e Linux), SDL_mixer e SDL_net(permite que você trabalhe com sockets, rede, se você precisar no seu projeto, melhor ganhar terreno nas outras áreas do que nessa).

Existem pelo menos duas versões do SDL, eu aconselho trabalhar com SDL2 que é a mais recente. Existe um livro em inglês que saiu na O'Reilly que acredito que cobre o SDL2: http://shop.oreilly.com/product/9781849696821.do

Talvez você já saiba que algumas linguagens tem um nível de desempenho melhor, acho seguro programar em C++ porque tem um certo nível de equilíbrio em desempenho e facilidade em desenvolvimento por ser também(além de outros paradigmas) orientada a objetos. Porém tem uma curva de aprendizagem a ser considerada para você trabalhar, a "facilidade" talvez caia um pouco por terra.

OpenGL e SDL estão disponíveis para várias linguagens, você deve procurar por "pacotes" ou "bibliotecas" que forneçam suporte a eles na linguagem que você for trabalhar. Java e Python são opções de linguagens para você desenvolver, porém o desempenho tenderá a ser um pouco menor pelo alto nível dessas linguagens.

Poderia ter falado na linguagem C que tem um desempenho também talvez ainda melhor que C++ e é a linguagem em que o OpenGL e SDL foram desenvolvidos, porém(isso a seguir foi um breve resumo) apenas na situação de você ser um programador que não trabalha com programação orientada a objetos e que você veja mais facilidade e saiba lidar com C mais do que em C++ ele se tornaria uma opção melhor que C++.

C versus C++ em questão de complexidade são quase empate técnico, cada um tem suas facilidades e seus lados obscuros, porém para um programador que conhece programação Orientada a Objetos o C++ deve lhe ajudar a resolver problemas.

Estudo e desenvolvo uma biblioteca pessoal para suporte a jogos e outros programas e noto que programação Orientada a Objetos e C++ me ajudam a escrever programas que as vezes são um pouco menores(em quantidade de linhas rssssss), mais organizados e provavelmente um pouco mais seguros. Tenho outra biblioteca também pessoal que ganhou muito com o paradigma orientado a objetos e faz uso ainda mais pesado e maior dos recursos oferecidos pela linguagem C++.

Se eu não fosse trabalhar com C++ trabalharia com Python3, gosto muito da linguagem também e fornece vários recursos e facilidades, me atenderia em várias coisas, porém por ser uma linguagem de altíssimo nível como Java existe uma certa perda de desempenho natural. Agora para quem está começando pode ser uma boa Python, o conhecimento me ajudou a até em C++.

Como estamos num fórum sobre Linux e sistemas abertos é natural respostas parecidas com a minha, a maior parte irá apontar SDL para as funções que falei no início, OpenGL para 3D e vai apontar linguagens já tradicionais para isso como: C, C++, Java e Python.

Uma dica boa também é tentar descobrir em que linguagem os jogos que você gosta foram desenvolvidos, de cabeça sei que Quake foi em C, Quake3 deve ter alguma porção em C++ combinado com C, Wesnoth(um jogo código aberto) em C++ e Minecraft em Java. Também é interessante descobrir o que eles usaram como bibliotecas, pacotes e etc, SDL e OpenGL são de conhecimento da maioria que são os mais usados no Linux.

Espero ter ajudado em alguma coisa, boa sorte.


3. Re: Qual a melhor linguagem

Lincoln silva
Lincod

(usa Ubuntu)

Enviado em 19/12/2015 - 10:39h

XProtoman escreveu:

Boa noite,

Infelizmente não tenho apostilas. A resposta mais curta é C++.

Antes de mais nada você pode tentar trabalhar com alguma Engine de Jogo já pronta, tente alguma que a licença esteja de acordo com o que você quer, existem engines abertas disponíveis para várias linguagens de programação, algumas inclusive suportam mais de uma linguagem de programação. Meu forte nunca foi engines porém de cabeça tem pelo menos uma para indicar: http://www.cocos2d-x.org/

Página com algumas engines, entre elas algumas código aberto e software livre: https://en.wikipedia.org/wiki/List_of_game_engines

O bom conselho e que a maioria deve lhe dar é não tentar criar tudo do zero e sim tentar trabalhar com alguma engine já pronta, porém se é da sua natureza querer fazer a sua segue abaixo algumas sugestões.

Não tenho uma apostila para indicar, tem um livro em português já antigo e infelizmente esgotado sobre OpenGL da Novatec: http://novatec.com.br/livros/opengl/

Existe um site que tem vários exemplos e é muito bom, acho que é esse: http://nehe.gamedev.net/

É bom aliar OpenGL(biblioteca gráfica que possui suporte a 3D, similar a um Direct3D) com SDL(biblioteca que lhe fornecerá mecanismos para criar janelas, trabalhar um pouco com imagens, som, tempo, captar entradas como teclado e mouse, ele é similar ao DirectX do Linux). Existem outras bibliotecas para você associar com SDL como: SDL_image(suporta vários formatos de imagem como JPG e PNG), SDL_ttf(para permitir você criar textos usando fontes TTF que são comuns no Windows e Linux), SDL_mixer e SDL_net(permite que você trabalhe com sockets, rede, se você precisar no seu projeto, melhor ganhar terreno nas outras áreas do que nessa).

Existem pelo menos duas versões do SDL, eu aconselho trabalhar com SDL2 que é a mais recente. Existe um livro em inglês que saiu na O'Reilly que acredito que cobre o SDL2: http://shop.oreilly.com/product/9781849696821.do

Talvez você já saiba que algumas linguagens tem um nível de desempenho melhor, acho seguro programar em C++ porque tem um certo nível de equilíbrio em desempenho e facilidade em desenvolvimento por ser também(além de outros paradigmas) orientada a objetos. Porém tem uma curva de aprendizagem a ser considerada para você trabalhar, a "facilidade" talvez caia um pouco por terra.

OpenGL e SDL estão disponíveis para várias linguagens, você deve procurar por "pacotes" ou "bibliotecas" que forneçam suporte a eles na linguagem que você for trabalhar. Java e Python são opções de linguagens para você desenvolver, porém o desempenho tenderá a ser um pouco menor pelo alto nível dessas linguagens.

Poderia ter falado na linguagem C que tem um desempenho também talvez ainda melhor que C++ e é a linguagem em que o OpenGL e SDL foram desenvolvidos, porém(isso a seguir foi um breve resumo) apenas na situação de você ser um programador que não trabalha com programação orientada a objetos e que você veja mais facilidade e saiba lidar com C mais do que em C++ ele se tornaria uma opção melhor que C++.

C versus C++ em questão de complexidade são quase empate técnico, cada um tem suas facilidades e seus lados obscuros, porém para um programador que conhece programação Orientada a Objetos o C++ deve lhe ajudar a resolver problemas.

Estudo e desenvolvo uma biblioteca pessoal para suporte a jogos e outros programas e noto que programação Orientada a Objetos e C++ me ajudam a escrever programas que as vezes são um pouco menores(em quantidade de linhas rssssss), mais organizados e provavelmente um pouco mais seguros. Tenho outra biblioteca também pessoal que ganhou muito com o paradigma orientado a objetos e faz uso ainda mais pesado e maior dos recursos oferecidos pela linguagem C++.

Se eu não fosse trabalhar com C++ trabalharia com Python3, gosto muito da linguagem também e fornece vários recursos e facilidades, me atenderia em várias coisas, porém por ser uma linguagem de altíssimo nível como Java existe uma certa perda de desempenho natural. Agora para quem está começando pode ser uma boa Python, o conhecimento me ajudou a até em C++.

Como estamos num fórum sobre Linux e sistemas abertos é natural respostas parecidas com a minha, a maior parte irá apontar SDL para as funções que falei no início, OpenGL para 3D e vai apontar linguagens já tradicionais para isso como: C, C++, Java e Python.

Uma dica boa também é tentar descobrir em que linguagem os jogos que você gosta foram desenvolvidos, de cabeça sei que Quake foi em C, Quake3 deve ter alguma porção em C++ combinado com C, Wesnoth(um jogo código aberto) em C++ e Minecraft em Java. Também é interessante descobrir o que eles usaram como bibliotecas, pacotes e etc, SDL e OpenGL são de conhecimento da maioria que são os mais usados no Linux.

Espero ter ajudado em alguma coisa, boa sorte.
. Obrigado pelas dicas vou dar uma olhada no que VC me disse. Mais gostaria mesmo de fazer com c ou c++ ou java, sei o básico pois fiz um curso tecnico. Queria fazer algo mesmo só pra não ficar parado pois começo no inicio do ano a fazer análise e desenvolvimento de sistema. Se tiver alguma outra dica para me auxiliar ficarei grato.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts