Bruno Feijó, Esteban Clua e Flavio S.

Corrêa da Silva

Introdução à
Ciência da Computação
com Jogos
Aprendendo a
programar com entretenimento

da economia. distribuído. Desde então. Este livro pretende atender a todas essas expectativas.. ou pelo menos é um curioso incorrigível (uma das maiores qualidades do novo profissional criativo).. e provavelmente continuará a ser feita até o dia em que não precisaremos mais dos computadores. Se você abriu este livro. as linguagens e os para- digmas de programação têm evoluído constantemente. 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 computação. Como educador.. artificialmente inte- ligente .. da física. ou é um estudante. ou é um educador. visualmente elaborado. Prefácio Estamos vivendo a revolução do mundo digital. Muita coisa mudou desde que a primeira linguagem de programação de alto nível foi lançada há mais de 50 anos. onde ter noções de programação é tão essencial quanto saber o básico da matemática. e tudo isso rodando em tempo real). e quem sabe até dos primeiros socorros médicos. quer porque você almeja ser um profissional da área. Linguagens caem em desuso e novas surgem.. Muito dificilmente haverá um consenso na resposta a essa . Até mesmo artistas e designers já perceberam que programar está na essência das novas mídias. Em qualquer desses casos. quer porque lhe disseram que o jogo digital é uma aplicação onde convergem os maiores desafios da computação (um jogo tem que ser multimídia. você deve estar buscando uma introdução à arte de pro- gramar que esteja mais próxima das novas demandas do mundo digital e que seja menos maçante para acompanhar.. muito pro- vavelmente você deve estar buscando um texto mais leve e estimulante para a geração de jovens Y. muito provavelmente você ou é um fissurado por jogos. Você também pode estar procurando uma introdução à arte de desenvolver jogos digitais.

celulares e sistemas embarcados. sem pretender esgotar o assunto. mas além de estar se tornando antiga. especialmente no mundo dos jogos 3D.puc-rio. Dessa manei- ra. nem aspirar ser usado como um livro de referência.pergunta. o livro está organizado em duas partes. Sexto. Java serve muito bem para desenvolver jogos 2D – o tipo de aplica- ção que estamos usando neste livro.br/livroicc . apresentar os conceitos e os bons hábitos da arte de programar. Java é o ponto de partida para a programação da internet – a invenção que de- terminará o futuro da computação. Não existe a situação ideal de que podemos aprender os conceitos da ciência da computação sem nos incomodarmos com as idiossincrasias e as complexidades de uma particular linguagem. . Mas o Lisp está longe de ser uma opção para as novas demandas do mundo digital. PCs. Primeiro. Terceiro. O projeto deste livro inclui uma terceira parte. A linguagem C já está distante dos novos paradigmas de programação. este livro procura. Este é um livro didático que funciona como ponto de partida para os modernos conceitos em ciência da computação. Introduzir o conceito de orientação a ob- jetos não é uma tarefa fácil. Este livro procura ir trazendo esse novo conceito aos poucos.. o Java possibilita aplicações em uma grande variedade de plataformas: internet nos servidores.inf. Neste livro optamos pela linguagem Java por várias razões. Linux. C++ é muito eficiente. antes de mais nada. Independente da escolha do Java. mesmo entre os mais conceituados cientistas de computação do país. mas é indispensável no cenário atual da ciência da computação. não é uma linguagem de fácil aprendizado. que pode sustentar um curso mais avançado e/ou pode dar continuidade a uma especialização na área de desen- volvimento de jogos: www.. o Java é uma linguagem orientada a objetos – um paradigma atual de programação.) e conta com um bom ambiente de desenvolvimento gratuito (NetBeans). a próxima geração de linguagens orientadas a objetos será a evolução natural do Java (como já o é a linguagem C#). Quarto. o Java roda em mais de um sistema operacional (Windows. disponível na internet. Segundo. 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). Quinto. A primeira parte se concentra na programação procedimental estruturada (capítulos 2 a 6) e a segunda parte é dedicada aos paradigmas de orientação orientada a objetos e de programação guiada a eventos (capítulos 7 a 9).

6 semanas 9 a 11: cap. A melhor maneira de usar este livro é implementar cada exemplo citado no texto e fazer os exercícios no final de cada capítulo.4 semana 7: cap. Uma possível sequência para 16 semanas pode ser: semana 1: apresentação e cap. usando a criação de jogos digitais como instrumento de apren- dizado e motivação. Versão 00 (a versão intermediária) e Versão 0 (a versão-base mais completa). moderna e com pos- sibilidade de ser usado com eficiência pela indústria. A Versão 1 deverá ser a que o leitor mais dedica- do certamente criará. Sugestões de sequência de assuntos e material de suporte ao profes- sor e ao aluno podem ser encontrados na página Web citada anteriormente.2 semana 3: cap. foi especialmente desenvolvido para este livro. em especial. Os apêndices complementam o estudo e servem de referência. 1 ao Cap.7 semanas 12 a 14: cap. para começar). didático. chamado javaPlay. Os Apêndices C e D servem de referência para o motor de jogo java- Play. com mais tempo para elaborar os conceitos: Curso I – Programação Procedimental Estruturada Cap.6 como preparação ao Curso II . 5 Cap. Esta obra é organizada em uma sequência de tópicos que correspondem a um curso de 64 horas. Reco- mendamos. ao total).1 semana 2: cap. Os amantes de desenvolvimento de jogos acharão muito interessante o Apên- dice A. que sejam feitos os projetos de jogos do Apêndice B.9 Uma outra sequência de aprendizado pode ser proposta através de dois cursos. O javaPlay é apresen- tado em várias versões de graus crescentes de complexidade: Mini (a versão minimalista. O javaPlay é conciso. mas tem uma estrutura profissional.8 semanas 15 e 16: cap. Este é um livro texto para um primeiro curso de introdução à ciência da computação.3 semanas 4 a 6: cap. em blocos de 4h/semana (16 semanas. Um motor de jogo 2D.5 semana 8: cap.

Curso II – Programação Orientada a Objetos e Guiada a Eventos Cap. em três das melhores univer- sidades do país. Este livro representa uma contribuição tanto para iniciar as pessoas na arte da programação como para ajudar na formação básica da mão de obra necessária para as oportunidades que surgem com a indústria do en- tretenimento (jogos e TV digital interativa) e com as aplicações de simulação em tempo real. . 7 ao Cap. 9 Material extra no site sobre estruturas de dados A presente obra é resultado de anos de experiência dos autores no en- sino de programação e de disciplinas de jogos.