O livro apresenta conceitos fundamentais de programação de computadores com foco em desenvolvimento de jogos digitais, independente de linguagem de programação. Na parte prática, o livro usa a ferramenta de criação de jogos GameMaker: Studio e sua linguagem GML.
O objetivo é que o leitor obtenha o conhecimento necessário para começar a programar seus próprios jogos e aplicativos para computador e para começar a estudar assuntos comumente considerados de nível intermediário e avançado.
A fim de demonstrar a aplicação dos conceitos de programação e de jogos, dois projetos são desenvolvidos no decorrer do livro: um clone de Pong e um Breakout.
Ao final de cada capítulo, há uma lista de exercícios para fixação do assunto abordado.
Material extra - edição digital Leanpub
Ao adquirir a edição digital do Leanpub, você receberá um material extra com um conjunto de slides que o autor usa como material de suporte para as aulas de programação. Os slides contêm um resumo da parte teórica do livro e o equivalente na linguagem C#, caso o leitor tenha interesse em explorar a linguagem.
André Kishimoto é desenvolvedor profissional de jogos digitais desde 2005. Foi líder técnico do Central Technology Group (CTG) na Electronic Arts Brasil (trabalhando diretamente com EALA, EA Montreal e outras regiões) e game developer da Glu Mobile. Desenvolveu jogos e tecnologias para múltiplas plataformas como Java mobile, Brew, Blackberry, iOS, Android, Web, Freebox e Windows.
Mestre em Engenharia Elétrica e graduado em Ciência da Computação pela Universidade Presbiteriana Mackenzie, especialista em Computação Gráfica 3D pelo Centro Universitário Senac e técnico em Processamento de Dados pelo Colégio FECAP.
Atualmente desenvolve jogos Kishimoto Studios (um dos desenvolvedores do Mana Spark, lançado para PC e Nintendo Switch) e é professor de ensino superior na área de Computação e Jogos Digitais (Universidade Prestiberiana Mackenzie, 2018-atual; Universidade Cruzeiro do Sul, 2009-2018).
Lista de códigos
1 Introdução
1.1 A quem este livro se destina
1.2 O que este livro aborda
1.3 Como o livro está organizado
1.4 Convenções tipográficas
1.5 Contato, errata e feedback
2 Programação
2.1 O que significa programar?
2.2 Algoritmo
2.3 Lógica de Programação
2.4 Construção de algoritmos
2.4.1 Fases de um algoritmo
2.4.2 Estruturas de controle de fluxo
2.4.3 Representações
2.5 Linguagem de programação
2.5.1 Classificação
2.5.2 Sintaxe
2.5.3 Processo de geração do arquivo executável
2.6 Representação adotada neste livro
2.7 Exercícios
3 GameMaker: Studio
3.1 Exemplos de jogos
3.2 Instalação
3.3 Versões e módulos adicionais
3.4 Tela de abertura
3.5 Criando um novo projeto
3.6 Interface
3.7 Recursos
3.7.1 Recursos no GameMaker: Studio
3.7.2 Criando recursos no GameMaker: Studio
3.8 Linguagem GML
3.9 Manual do Usuário
3.10 Exercícios
4 Tipos de Dados e Variáveis
4.1 Tipos de Dados
4.2 Variáveis
4.2.1 Criando e usando variáveis
4.2.2 Escopo das variáveis
4.2.3 Nomenclatura
4.2.4 Constantes
4.2.5 Enumeração
4.3 GML
4.3.1 Variável global
4.3.2 Variável local
4.3.3 Variável de instância
4.3.4 Constantes
4.3.5 Enumeração
4.3.6 Hello, World!
4.4 Exercícios
5 Operadores
5.1 Operador de atribuição
5.2 Operadores aritméticos
5.2.1 Operadores aritméticos com atribuição
5.3 Operadores relacionais
5.4 Operadores lógicos
5.4.1 Operador AND
5.4.2 Operador OR
5.4.3 Operador NOT
5.5 GML
5.6 Exercícios
6 Estruturas de Decisão
6.1 Decidindo o que fazer
6.2 Decisão simples
6.3 Decisão composta
6.4 Decisão encadeada
6.5 Decisão e operadores lógicos
6.6 Decisão e condições
6.7 Comando switch-case
6.7.1 Omissão da instrução break
6.7.2 Casos em sequência
6.8 GML
6.9 Exercícios
7 Projeto: Pong
7.1 Análise do Pong
7.1.1 Sobre o que é o jogo
7.1.2 Elementos do jogo
7.1.3 Telas do jogo
7.2 Desenvolvimento do Pong
7.2.1 Projeto no GameMaker: Studio
7.2.2 Criação dos sprites
7.2.3 Criação do cenário de fundo
7.2.4 Criação dos objetos
7.2.5 Criação da tela do jogo
7.2.6 Execução do jogo
7.2.7 Sistema de coordenadas
7.2.8 Interação dos jogadores
7.2.9 Funcionamento da bola
7.2.10 Áudio
7.2.11 Pontuação
7.2.12 Fim de jogo
7.2.13 Tela inicial do jogo
7.2.14 Criação do arquivo executável
7.3 Exercícios
8 Estruturas de Repetição
8.1 Estrutura while
8.2 Estrutura do-while
8.3 Estrutura repeat-until
8.4 Estrutura for
8.5 Interrompendo e pulando um loop
8.6 Repetições encadeadas
8.7 GML
8.7.1 Estrutura repeat
8.7.2 Estrutura while
8.7.3 Estrutura do-until
8.7.4 Estrutura for
8.8 Exercícios
9 Vetores e Matrizes
9.1 Vetores
9.2 Matrizes
9.3 GML
9.3.1 Vetor e matriz global
9.3.2 Vetor e matriz local
9.3.3 Vetor e matriz de instância
9.4 Exercícios
10 Funções
10.1 Funções
10.2 Retorno de valor
10.3 Variáveis e parâmetros
10.3.1 Passagem de parâmetro por valor
10.3.2 Passagem de parâmetro por referência
10.4 Funções recursivas
10.5 GML
10.5.1 Variáveis e parâmetros
10.5.2 Funções recursivas
10.6 Exercícios
11 Projeto: Breakout
11.1 Análise do Breakout
11.1.1 Sobre o que é o jogo
11.1.2 Elementos do jogo
11.1.3 Telas do jogo
11.2 Desenvolvimento do Breakout
11.2.1 Criação das telas do jogo
11.2.2 Criação dos objetos
11.2.3 Definição de constantes
11.2.4 Funcionalidades da barra do jogador
11.2.5 Barra do jogador no jogo
11.2.6 Funcionalidades da bola
11.2.7 Bola no jogo
11.2.8 Funcionalidades dos blocos
11.2.9 Áudio
11.2.10 Pontuação e vidas
11.2.11 Fim de jogo
11.2.12 Tela inicial do jogo
11.2.13 Resumo dos scripts
11.2.14 Criação do arquivo executável
11.3 Exercícios
Considerações Finais
Referências Bibliográficas
Índice Remissivo
A impressão do livro foi realizada com o apoio de 87 pessoas na campanha de financiamento coletivo do Catarse que ocorreu entre outubro e novembro de 2016.
A campanha contou com apoiadores de todas as regiões do Brasil e também de Portugal! Muito obrigado a todos os apoiadores que acreditaram no projeto, vocês são demais!
Alessandro Angelozi Ribeiro, Allan Cabral Cruz, Ana Silva, Anderson de Almeida Oliveira, Anderson Valesan, Arnaldo Castro, Bast Karen, Bruno Cicanci, Bruno Croci, Bruno Reinbrecht Meneghetti Rodrigues, Caio César, Camila Fernandes, Cristiane Hitomi Saito, Diego Augusto Garcia Dias, Douglas Lima de Oliveira, Edmo Freitas, Eduardo Souto França, Elcio Braga, Evandro Sorensen, Fabio Attard, Felipe Gomes Dias, Felipe Orsini Martinelli, Felippe Lopes de Arruda, Fernando Laroca, Fernando Rodrigues, Filipe Pereira, Gabriel Reis, Gabriel Rodrigues, Gabriela Valentin Thobias, Geraldo J. C. Junior, Giulia Yamasaki Souza, Guilhes Damian, Gustavo Lima de Carvalho, Hidekazu Kishimoto, Hideki Kamada, Igor Edington Anselmo Santos, Ivan de Moraes, Joao P N L Nogueira, João Fernando Garcia de Souza, João Paulo de Lucena Laet, Klaudio Aoki, Kleber de Oliveira Andrade, Letícia Sue Taminato Kato, Ligia Maciel Ferraz, Lucas Nemo, Luciana Kishimoto Marui, Luiz Felipe Donegá Piva, Marcelo de Oliveira Lopes, Marcos Maua Cardoso, Mateus Victorelli, Matheus Henrique, Matheus Mendes, Mieko Okuhara, Paulo Andrés de Matos Villalva, Paulo Civille Rodrigues, Paulo Pina, Pedro Henrique Cacique Braga, Pedro Hutsch Balboni, Pedro Paulo Mendes de Oliveira, Pollyana Notargiacomo, Rafael Ferrari, Rafael Gagliardi, Rafael Oliveira Martins, Rafael R. Delgado, Rafael Zabeu Spessotto, Rafinha, Raphael Rodrigues Silva, Reny Okuhara, Ricardo Maia de Souza, Robson Siebel, Rodrigo Ortiz Vinholo, Ronildo Rodrigues, Tereza Kishimoto, Thales Bezerra, Tharcísio Vaz da Costa de Moraes, Thiago Luis Garcia, Vasco Silva, Victor Augusto Farias Dinis, Victor Hasselmann, Vinicius Vieira Tozzi, Waldir Rodrigues Junior, Washington Oliveira da Silva, Wesley Tiozzo e Willians Monteiro.