Você está na página 1de 6

Linguagens de programao para jogos

Ol pessoal,
No post de hoje irei falar sobre linguagens de programao para jogos. importante sa
ber quais fatores ajudam na escolha da linguagem em um projeto, tais como:
* Plataforma Alvo - Aquela para o qual o projeto ir ser desenvolvido (Console, Mo
bile, Windows, etc... ).
* Familiaridade da equipe - considerado um risco de projeto se a equipe no tiver
familiaridade com a linguagem escolhida.
* Requisitos de desempenho e/ou portabilidade - Somente sero elegveis as linguagen
s que atenderem esses requisitos.
Bom, diante desses fatores as linguagens de programao mais comuns em jogos so:
Linguagens de baixo nvel - Responsveis por caractersticas do ncleo do jogo
* C++ - Linguagem OO(Orientada a Objeto) muito poderosa devido a manipulao direta
de memria (atravs de ponteiros). Esta de longe a linguagem mais usada na industria
de jogos (90% a 95% do mercado) devido ser OO e ao seu excelente desempenho (co
mpilando em binario para a plataforma escolhida). Possui uma curva de aprendizad
o lenta e est propensa (se no for programado com cuidado) a ter vazamentos de memri
a (memory leaks) devido a manipulao direta de memria. Visual Studio, Visual C++, Co
de Blocks, Carbide C++ e Eclipse (com o plugin) so alguns exemplos de IDEs para s
e trabalhar com C++.
* Java - Linguagem OO de fcil aprendizado e de imensa popularidade. Ganhou grande
destaque devido a sua portabilidade. Possui grande aceitao no mundo dos jogos par
a dispositivos mveis. Apesar de todas essas vantagens Java ainda no considerada um
a linguagem elegvel para jogos em algumas plataformas devido ao alto uso de memor
ia e seu desempenho ser bem inferior ao C++ (porm com a evoluo do hardware em algun
s anos talvez seja possvel). Eclipse e Netbeans so alguns exemplos de IDEs para se
trabalhar com Java.
* C# - Linguagem OO de fcil aprendizado e grande popularidade. Com as investidas
da microsoft de popularizao da plataforma .NET juntamente com o projeto XNA, esta
linguagem tem ganhado cada vez mais espao, mesmo que seja ainda entre hobbistas,
estudantes ou indies. Assim como Java, C# possui alto uso de memoria e desempenh
o inferior ao C++. Visual Studio e Visual C# Express so alguns exemplos de IDEs p
ara se trabalhar com C#.
Linguagens de Script de Alto nvel - Responsveis em geral por implementaes de game pl
ay. Algumas dessas so criadas especialmente para o projeto da engine, grande part
e delas com sintaxe parecida com C.
* Torque Script - Exclusiva para a Torque Engine.
* Unreal Script - Exclusiva para a Unreal Engine.
* LUA - Linguagem de script 100% nacional. Robustez, simplicidade, boa performan
ce, pequena, gratuita, so algumas das qualidades dessa linguagem. Possui sintaxe
procedural e semantica extensivel.
* Python - Linguagem de multiplos paradigmas (OO, funcional e imperativo). Produ
tividade e legibilidade so algumas das qualidades dessa linguagem.
* RUBY - Tambem de multiplos paradigmas, esta linguagem foi criada para aumentar
a produtividade dos programadores atravez da minimizao de problemas encontrados.
Linguagens de Shaders - Utilizadas na criao de alguns efeitos que so processados na
GPU. Todas a seguir possuem sintaxe parecida com C.
* Cg - Linguagem de shader da NVidia.
* GLSL - Linguagem de shader utilizada com OpenGl.
* HLSL - Linguagem de shader utilizada com DirectX.
Vale lembrar que possivel fazer jogos em linguagens como Action Script (para pro
gramar em Adobe Flash) em caso de jogos casuais, ou mesmo fazer jogos simples em
qualquer linguagem como VB, Delphi (com object pascal), C, Pascal, etc.
Bom pessoal, espero que tenham gostado. At o proximo post.
Postado por tila Correia s 07:29
- - - - - - - -
Caractersticas das linguagens
Fold
Table of Contents
Introduo
C
C++
PureBasic
Python
Java
.NET
Delphi
Blitz Basic
Introduo
Bom, a primeira coisa a dizer nesta seo no se refere extamente a a vantagem de uma
linguagem e sim alerta para uma coisa que deveria ser de conscincia de todo mundo
: No h melhor linguagem e sim uma linguagem que se encaixa nas necessidades de det
erminada pessoa. Um exemplo que eu cito Java: bastante gente diz que tal linguag
em bem lenta para um jogo ser desenvolvido nela, mas na verdade o como programar
nela. Mas ento daqui para frente veremos o que cada linguagem tem a oferecer.
C
C tem como caracterstica o fato de ser uma linguagem bem rpida. Ela uma das lingua
gens mais usadas e apresenta muitas bibliotecas, cdigos e outros recursos disponve
is para ela e facilmente encontrveis. Portanto tem muito material a respeito dela
na internet, sendo uma das linguagens que mais eram usadas antigamente, perdend
o atualmente o posto para C++. Sua desvantagem fica por conta de ser uma linguag
em que atualmente no permite ter uma produtividade muito alta quando comparada s l
inguagens mais novas como C++ e Java, alm de sua programao ser mais prxima da lingua
gem de mquina do que outras como .Net e Python, apesar de ser de alto nvel tambm, o
que na verdade traz flexibilidade, porm faz com que o desenvolvedor esteja mais
propenso a erros.
C++
O C++ uma "reescrita" do C, na verdade uma adaptao do C metodologia orientada a ob
jetos. Ela no to rpida quanto sua prima mais antiga, porm a diferena mnima que nem
siderada mais. Os compiladores dessa linguagem geralmente embutem tambm suporte C
permitindo que as duas sejam misturadas. Ela conta com um grande ponto forte qu
e o seu forte uso no desenvolvimento de jogos, aproximadamente 95% dos jogos com
erciais a usam, portando tendo grande aceitao e documentao a seu respeito. Sua desva
ntagem no ter uma biblioteca to rica embutida como a de Java e Python, desvantagem
essa que revertida pelos seus benfcios j citados e pela grande de disponibilidade
de bibliotecas para suprir essa deficincia o que a faz por enquanto soberana em
seu reinado.
PureBasic
O PureBasic uma linguagem de programao baseada na sintaxe BASIC. Os principais rec
ursos do PureBasic a portabilidade (Windows, AmigaOS, MacOS X e Linux so atualmen
te 100% suportados), a produo muito rpida e gera executveis muito leves e otimizados
e, claro, a sintaxe super simples do BASIC.
Fcil suporte para jogos 2D atravs de libs dedicadas (DirectX, SDL, ) e 3D j includo,
baseado em OGRE. Alem de ser compatvel com muitas Engines do mercado, pois compor
ta-se quase como o C++.
uma linguagem que compila a nvel de mquina, usando comandos altamente otimizados (
assembly) que o torna muitas vezes mais rpido que a linguagem C++.
Python
Python uma linguagem fcil de aprender, interpretada, com uma sintaxe fcil e com mu
ita coisa embutida na prpria linguagem. Python uma linguagem aberta, ou seja, de
cdigo-fonte livre, tem a maioria dos seus mdulos grtis e tambm de cdigo-fonte aberto,
sendo que h milhares deles inclusive para jogos. Junto a isso faltou mencionar q
ue Python tem tipagem dinmica e orientada a objetos
Java
Java uma linguagem cuja sintaxe lembra um pouco C/C++ porm 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 comunida
de vai lanando alguns jogos nessa linguagem, apesar de serem rarssimos ttulos comer
ciais com essa linguagem sendo que a maioria dos jogos desenvolvidos so de estuda
ntes e pessoas que fazem isso por hobby. Entretanto a tendncia que seu uso em jog
os cresa, porm muito lentamente
.NET
.NET na verdade no uma linguagem, e sim uma famlia de linguagens. Os componentes d
a famlia so: C#, cuja sintaxe lembra muito o C++ porm muito mais orientado a objeto
s. VB.Net que reminescente da famlia BASIC tambm porm orientado a objetos. ASP.Net
para rpido desenvolvimento de sites, alm de outras menores. .NET Apresenta a mesma
situao que o Java em termos de situao atual, mas esto surgimento muitas engines que
trabalham com essa linguagem (no caso dos jogos a C#) e que tendem ao seu uso se
r aumentado porm mais rapidamente do que o Java nesse terreno.
Delphi
Linguagem da Borland (atual Inprise). Ela derivada do Object Pascal, e rpida e si
mples. Seus pontos negativos que no h muitos jogos feitos por ela, apesar de que p
ossvel encontrar se for dado uma pesquisada pela net, mas no to raro quanto os feit
os em Java e .Net.
Blitz Basic
Uma linguagem simples e poderosa para a criao especifica de jogos e aplicaes grficas
interativas. Simples, por que baseado na fcil e popular linguagem BASIC.
J tem incluso vrios comandos especficos para ajudar voc na criao de qualquer tipo de j
ogo, comandos planejados cuidadosamente para dar a mxima flexibilidade com o Maxi
mo de conforto e facilidade.
Por isso tudo o Blitz se torna uma linguagem de alta produtividade, pois a veloc
idade do desenvolvimento muito rapida.
Poderosa linguagem aonde possvel escrever jogos 2D ou 3D sem o uso de nenhuma API
ou Biblioteca adicional, mas claro que tambm possvel, Caso precise expandir com n
ovos comandos e/ou possibilidades.
Aqui voc encontra alguns exemplos de aplicaes escritas em Blitz Basic.
- - - - - - - - - - - - - - - -
Introduo (JOGOS GERAIS!!!!!!!!!)
Neste guia, esto apresentadas as perguntas e respostas mais frequentes da program
ao de jogos que permitiro qualquer pessoa iniciar-se, sem grandes dificuldades, na
programao de jogos.
O que preciso para tornar-me num programador de jogos?
Aqui est uma lista dos mnimos:
- um computador :)
- uma linguagem de programao (veja aqui)
- um compilador (veja aqui)
- gosto por jogos
- muita pacincia
O que uma linguagem de programao?
Uma linguagem de programao a linguagem em que vamos "comunicar" com o computador.
Aqui esto as principais linguagens de programao de jogos:
- C/C++ - esta a linguagem que predomina na indstria da programao de jogos. Rpida, c
ompleta e nem fcil, nem difcil; porm muitas pessoas desistem ao ver como difcil prog
ramar jogos em Windows/Linux. Mesmo assim esta linguagem muito recomendada caso
queira ser um programador de jogos.
- Java - Java uma evoluo de C++. Usa s o paradigma POO (Programao Orientada a Objecto
s) e est a evoluir muito rapidamente. multiplataforma, relativamente mais fcil que
C++, mas tambm mais lenta. A predominante na indstria de telemveis.
- C# - (l-se C - Sharp ou Ci - Sharp) Esta linguagem a principal rival da linguage
m Java. Embora seja nova vejo muita gente a mudar para ela, dizendo muito bem de
la. Talvez no seja to recomendada para o desenvolvimento de jogos 3D complexos, ma
s acho que vale a pena dar uma olhadela.
- Visual Basic - esta foi a linguagem em que programei primeiro e, apesar de ser
bastante simples no gostei muito, pois um bocado lenta e para jogos um bocado es
quisita. A interface bastante simples e recomendada aos iniciantes que queiram f
azer jogos simples.
- Dark Basic - esta linguagem muito fcil de usar e com uma grande comunidade na i
nternet. Para programao de jogos melhor que o Visual Basic e para iniciantes com u
m projecto nas mangas, pode muito bem servir para o cumprir.
Qual linguagem devo escolher?
Tendo em conta os parmetros em cima acho que devia escolher a que melhor se adapt
a ao seu futuro. Se gostas de jogos e pretendes fazer apenas jogos simples escol
he qualquer uma das Basic. Se pretendes seguir seriamente a programao de jogos exp
erimenta a linguagem C/C++, Java ou C#.
Eu actualmente programo em C++ e acho que a melhor porque praticamente todos os
jogos comerciais e conhecidos foram feitos com C/C++. Isto a minha opinio, mas qu
alquer das 5 acima so boas para programao de jogos.
Como "falo" com o computador?
A verdadeira lngua dos computadores so um conjunto de nmeros '0' e '1'.
Imaginem se tivssemos que programar um jogo bit por bit. Um jogo com 4 bytes fica
ria assim:
00010010 00110001 01001101 11000011
Agora imaginem um jogo como Final Fantasy 8 que tem 4 Cds que equivale mais ou m
enos a 2,5 GB que so 2684354560 bytes ou seja muitos '1's e '0's em que os progra
madores tinham que ter crebros melhores que os do Einstein.
Felizmente algum inventou os compiladores em que os comandos so intuitivos e, gera
lmente, tm nexo.
Os compiladores so praticamente uns tradutores que traduzem a linguagem de progra
mao naqueles '0's e '1's.
Agora vou-vos falar de IDEs (Integrated Development Environment ou Ambiente Inte
grado de Desenvolvimento) que tornam mais fcil o processo de criar programas. Por
exemplo, fazemos Novo->Ficheiro de C++, escrevemos o cdigo no ficheiro que nos a
parece, e carregamos num boto e ele cria-nos o programa. Basicamente uma IDE um c
onjunto de programas que esto juntos, facilitando muito a programao. Algumas IDEs,
pelo menos as mais conhecidas:
C/C++:
Visual C++ - muito bom, mas no grtis!
Dev C++ - usado por muitos, este compilador grtis.
C#:
Visual C# - no grtis
SharpDevelop - grtis
Java:
Net Beans - grtis.
Eclipse - grtis.
Visual Basic: O nome do compilador mesmo este. caro.
Dark Basic: Custa um pouco de dinheiro.
Quero aprender a linguagem X, onde posso arranjar tutorials ?
Aqui vai mais uma lista a recomendar tutoriais excelentes:
C++:
http://psantos.zi-yu.com/wiki.aspx?topic=PRE.CppTutorial (Portugus)
http://agnor.gamedev-pt.net/gamedev/ (Portugus :P)
Java:
http://java.sun.com/docs/books/tutorial/ (Ingls)
Visual Basic:
http://www.vbtutor.net/vbtutor.html (Ingls)
Dark Basic:
http://www.unidev.com.br/artigos/introtodarkbasicduck001.asp (parte 1) (Portugus)
http://www.unidev.com.br/artigos/introtodarkbasicduck002.asp (parte 2) (Portugus)
http://www.unidev.com.br/artigos/introtodarkbasicduck003.asp (parte 3) (Portugus)
Em que sites posso obter ajuda / informaes sobre programao de jogos?
Em muitos! Aqui vai uma lista de sites e forums:
http://www.pdj.com.br (Portugus)
http://www.gamedev-pt.net (Portugus)
http://www.unidev.com.br (Portugus)
http://www.gamedev.net (Ingls)
Qual o prximo passo?
Depois de aprenderem a dominar bem uma linguagem de programao, o melhor procurarem
uma API 2D e depois avanar para 3D.
Algumas ajudas (todas em C/C++, infelizmente no conheo para outras linguagens):
OpenGL - uma API multi-plataforma (funciona em windows, linux, etc.), feita s par
a grficos . muito utilizada pelos profissionais (muitos jogos conhecidos so feitos
em OpenGL, por exemplo: Quake III, Half-Life, MDK2, Baldurs Gate, Decent 3, Madd
en NFL 2001, Nascar 4, Alice, Soldier of Fortune, entre muitos outros)
DirectX - Provavelmente a API mais conhecida. D para grficos, som, Internet, tecla
do,etc. . Como foi desenvolvida pela Microsoft (tem direito a um e tudo =P) A mai
or parte de jogos foi feita com DirectX. Se quiserem programar nesta API tm que f
azer um grande download (mais de 100 MB)
SDL - uma API muito simples, ideal para comear ( em 2D). Tambm multi-plataforma (fu
nciona em Windows, Linux, MacOS, Playstation 2 (!!!!) etc.) Foi usada em alguns
jogos ( Duke Nukem 3d ) e pode ser usada em conjunto com OpenGL. D para grficos, s
om, teclado, internet e aquelas coisas todas ;)
Hyper64 - uma API simples de usar em 2D. E foi feita por um portugus, Diogo Teixe
ira aka FoZi!!! A grande vantagem que o autor fez um tutorial MUITO completo em
http://fozi.codingcorner.net/tutorials/h64pt/