Este documento discute um projeto de pesquisa sobre como transformar ideias em códigos de jogos digitais através da programação exploratória. O projeto explora como a percepção se transforma em computação e como o desenvolvedor entende os requisitos do jogo para implementá-los. A programação exploratória envolve experimentação, intuição e produção de códigos experimentais para criar protótipos digitais de jogos.
1. PROGRAMAÇÃO
EXPLORATÓRIA
Recursos para prototipação
digital de games
David de Oliveira Lemes
PUC-SP / TIDD
1
2. Agenda
• Projeto de pesquisa
• Percurso / organização temática da pesquisa
• Relacionamento da disciplina com a pesquisa
• Considerações finais
• Comentários
2
4. Projeto de pesquisa
Os jogos digitais são multidisciplinares por natureza e este
projeto de pesquisa transita dentro desta área, contudo, busca
um ponto muito específico: como uma idéia pode ser
transformada em código.
Em outras palavras: como a linguagem natural pode ser
transformada em linguagem de máquina para ter como
resultado final um jogo digital? Como a percepção se
transforma em computação?
4
5. Projeto de pesquisa
O processo de criação, formulação e desenvolvimento é
conhecido como design de jogos, que segundo Schell (2010) é o
ato de decidir o que um jogo deve ser.
Desenvolvimento ≠ Implementação
5
6. Projeto de pesquisa
Como se dá o dialogo da percepção do criador de jogos com o
desenvolvedor técnico (engenheiro de software e programador)
para que o projeto original não sofra distorções e deterioração
em função da tecnologia empregada em sua implementação?
6
7. Projeto de pesquisa
Como o desenvolvedor técnico (programador) entende os
requisitos do jogo a fim de transformar a linguagem natural
(concepção do jogo) em linguagem de máquina (programação)?
7
8. Organização temática da pesquisa
O código do jogo Introdução
Criação de Games
GDD Conceitual
Processo (forma de trabalho) Refinamento da etapa do processo
O projeto de um game
GDD Tecnológico
Análise dos requisitos com base na criação
Protótipo de baixa fidelidade
Projeto com base na análise de requisitos
Programação Exploratória
Brainstorm e mapas conceituais
Implementação de um protótipo digital
(programação exploratória)
Criação e abdução (Pierce) Estilos de projetos
Experimentação (tentativa e erro)
Nível do conhecimento
Intuição Taxonomia de Bloom
Conhecimento prévio da codificação Allen Newell - The Knowledge Level
Programação exploratória
Produção do código Programação linear
Programação de computadores
Prototipação digital
Prototipagem digital Programação modular
Conceitos elementares
Ferramentas de desenvolvimento Programação estruturada
Programação da máquina Programação orientada a objetos
8
9. Projeto de um game
• Análise de requisitos com base na criação
• Projeto com base na análise de requisitos
• Implementenção de protótipo digital funcional
Falhas de projetos Processos de desenvolvimento
• Supervisão infantil • Waterfall, Royce
• Construção da coisa errada • Spiral, Boehm
• Ofuscamento tecnológico
9
10. Projeto de um game
Estilos de projetos
O GDDt e o GDDc impõe um estilo de
projeto orientado a documento que
• Calendário pode mudar logo depois da etapa
• Requisitos inicial de produção / criação.
• Documentos
• Qualidade
• Arquitetura
O projeto de um game, depois
de sua concepção criativa pode
(ou deve?) que ser conduzido
por um engenheiro de software.
10
11. Projeto de um game
O engenheiro de software usará a
metodologia apropriada para o processo
do projeto de um jogo digital.
11
13. Programação exploratória
Programação exploratória
• Criação e abdução (C. S. Pierce)
• Experimentação (tentativa e erro)
• Intuição
• Conhecimento prévio da codificação
• Produção de código experimental
• Prototipagem digital
• Ferramentas de desenvolvimento
13
14. Programação exploratória
E o que significa explorar?
Uma das definições diz que explorar significa: examinar,
analisar, estudar e pesquisar.
14
15. Programação exploratória
A programação exploratória trabalha na construção de um
código fonte de forma que este ato de construção seja objeto
de análise, pesquisa e estudo.
É um código artesanal, monilítico e não pode ser encarado
como o código final de projeto de software. É um artefato
que sofre alterações ao longo do tempo de estudo e
desenvolvimento.
Dentro do escopo deste projeto de pesquisa, é um código que
tem como finalidade a construção de um protótipo digital de
um game.
15