Vous êtes sur la page 1sur 5

Bruno Feij, Esteban Clua e Flavio S.

Corra da Silva

Introduo
Cincia da Computao
com Jogos
Aprendendo a
programar com entretenimento
Prefcio

Estamos vivendo a revoluo do mundo digital, onde ter noes de


programao to essencial quanto saber o bsico da matemtica, da fsica,
da economia, e quem sabe at dos primeiros socorros mdicos... At mesmo
artistas e designers j perceberam que programar est na essncia das novas
mdias. Se voc abriu este livro, muito provavelmente voc ou um fissurado
por jogos, ou um estudante, ou um educador, ou pelo menos um curioso
incorrigvel (uma das maiores qualidades do novo profissional criativo). Em
qualquer desses casos, voc deve estar buscando uma introduo arte de pro-
gramar que esteja mais prxima das novas demandas do mundo digital e que
seja menos maante para acompanhar. Voc tambm pode estar procurando
uma introduo arte de desenvolver jogos digitais, quer porque voc almeja
ser um profissional da rea, quer porque lhe disseram que o jogo digital uma
aplicao onde convergem os maiores desafios da computao (um jogo tem
que ser multimdia, visualmente elaborado, distribudo, artificialmente inte-
ligente ... e tudo isso rodando em tempo real). Como educador, muito pro-
vavelmente voc deve estar buscando um texto mais leve e estimulante para
a gerao de jovens Y. Este livro pretende atender a todas essas expectativas.
Muita coisa mudou desde que a primeira linguagem de programao de
alto nvel foi lanada h mais de 50 anos. Desde ento, as linguagens e os para-
digmas de programao tm evoludo constantemente. Linguagens caem em
desuso e novas surgem. E qual a melhor linguagem para aprender no momen-
to? Essa uma pergunta que vem sendo formulada desde o momento em que
surgiram duas linguagens diferentes e os primeiros cursos de computao; e
provavelmente continuar a ser feita at o dia em que no precisaremos mais
dos computadores... Muito dificilmente haver um consenso na resposta a essa
pergunta, mesmo entre os mais conceituados cientistas de computao do pas.
No existe a situao ideal de que podemos aprender os conceitos da cincia da
computao sem nos incomodarmos com as idiossincrasias e as complexidades
de uma particular linguagem. Talvez o Lisp seja a que mais tenha se aproxima-
do deste ideal (sua qualidade atestada pelo fato de ser a segunda mais antiga
linguagem do planeta ainda viva). Mas o Lisp est longe de ser uma opo para
as novas demandas do mundo digital. A linguagem C j est distante dos novos
paradigmas de programao. C++ muito eficiente, especialmente no mundo
dos jogos 3D, mas alm de estar se tornando antiga, no uma linguagem de
fcil aprendizado. Neste livro optamos pela linguagem Java por vrias razes.
Primeiro, o Java possibilita aplicaes em uma grande variedade de plataformas:
internet nos servidores, PCs, celulares e sistemas embarcados. Segundo, o Java
roda em mais de um sistema operacional (Windows, Linux, ...) e conta com um
bom ambiente de desenvolvimento gratuito (NetBeans). Terceiro, o Java uma
linguagem orientada a objetos um paradigma atual de programao. Quarto,
Java o ponto de partida para a programao da internet a inveno que de-
terminar o futuro da computao. Quinto, a prxima gerao de linguagens
orientadas a objetos ser a evoluo natural do Java (como j o a linguagem
C#). Sexto, Java serve muito bem para desenvolver jogos 2D o tipo de aplica-
o que estamos usando neste livro.
Independente da escolha do Java, este livro procura, antes de mais nada,
apresentar os conceitos e os bons hbitos da arte de programar. Dessa manei-
ra, o livro est organizado em duas partes. A primeira parte se concentra na
programao procedimental estruturada (captulos 2 a 6) e a segunda parte
dedicada aos paradigmas de orientao orientada a objetos e de programao
guiada a eventos (captulos 7 a 9). Introduzir o conceito de orientao a ob-
jetos no uma tarefa fcil, mas indispensvel no cenrio atual da cincia
da computao. Este livro procura ir trazendo esse novo conceito aos poucos,
sem pretender esgotar o assunto, nem aspirar ser usado como um livro de
referncia. Este um livro didtico que funciona como ponto de partida para
os modernos conceitos em cincia da computao. O projeto deste livro inclui
uma terceira parte, disponvel na internet, que pode sustentar um curso mais
avanado e/ou pode dar continuidade a uma especializao na rea de desen-
volvimento de jogos:

www.inf.puc-rio.br/livroicc
A melhor maneira de usar este livro implementar cada exemplo citado
no texto e fazer os exerccios no final de cada captulo. Um motor de jogo 2D,
chamado javaPlay, foi especialmente desenvolvido para este livro. O javaPlay
conciso, didtico, mas tem uma estrutura profissional, moderna e com pos-
sibilidade de ser usado com eficincia pela indstria. O javaPlay apresen-
tado em vrias verses de graus crescentes de complexidade: Mini (a verso
minimalista, para comear), Verso 00 (a verso intermediria) e Verso 0 (a
verso-base mais completa). A Verso 1 dever ser a que o leitor mais dedica-
do certamente criar.
Os apndices complementam o estudo e servem de referncia. Reco-
mendamos, em especial, que sejam feitos os projetos de jogos do Apndice B.
Os amantes de desenvolvimento de jogos acharo muito interessante o Apn-
dice A. Os Apndices C e D servem de referncia para o motor de jogo java-
Play.
Este um livro texto para um primeiro curso de introduo cincia da
computao, usando a criao de jogos digitais como instrumento de apren-
dizado e motivao. Esta obra organizada em uma sequncia de tpicos que
correspondem a um curso de 64 horas, em blocos de 4h/semana (16 semanas,
ao total). Sugestes de sequncia de assuntos e material de suporte ao profes-
sor e ao aluno podem ser encontrados na pgina Web citada anteriormente.
Uma possvel sequncia para 16 semanas pode ser:
semana 1: apresentao e cap.1
semana 2: cap.2
semana 3: cap.3
semanas 4 a 6: cap.4
semana 7: cap.5
semana 8: cap.6
semanas 9 a 11: cap.7
semanas 12 a 14: cap.8
semanas 15 e 16: cap.9
Uma outra sequncia de aprendizado pode ser proposta atravs de dois
cursos, com mais tempo para elaborar os conceitos:
Curso I Programao Procedimental Estruturada
Cap. 1 ao Cap. 5
Cap.6 como preparao ao Curso II
Curso II Programao Orientada a Objetos e Guiada a Eventos
Cap. 7 ao Cap. 9
Material extra no site sobre estruturas de dados
A presente obra resultado de anos de experincia dos autores no en-
sino de programao e de disciplinas de jogos, em trs das melhores univer-
sidades do pas. Este livro representa uma contribuio tanto para iniciar as
pessoas na arte da programao como para ajudar na formao bsica da mo
de obra necessria para as oportunidades que surgem com a indstria do en-
tretenimento (jogos e TV digital interativa) e com as aplicaes de simulao
em tempo real.