Sobre

A popularização da Internet e dos dispositivos móveis trouxe novamente à tona o mercado de jogos 2D que havia perdido espaço. O mercado de jogos 2D é altamente lucrativo, sendo que o estilo de jogo mais procurado são os “casuais”, que caracterizam-se pela simplicidade da jogabilidade e facilidade de aprendizado. Uma das tecnologias cada vez mais populares para o desenvolvimento de jogos 2D é a linguagem Java. Isto se deve ao fato de que Java é portável entre diversos sistemas operacionais e possibilita a execução de aplicações em vários ambientes como desktop, internet e celulares. Este curso tem por objetivo apresentar uma visão geral sobre a linguagem Java, bem como as técnicas e recursos destinados ao desenvolvimento de jogos 2D em J2SE.

Ao final do curso o aluno:cd-rom

  • Recebera um certificado para comprovar que o mesmo participou do curso.*
  • Um CD-ROM com todo o conteúdo do curso, exemplos e media em formato de apostilas eletrônicas.
  • Acesso vitalício (permanente) ao conteúdo do curso concluido.

Mesmo após a conclusão do curso todo o conteúdo permanece acessível, de forma que sempre que preciso, possam ser feitas consultas e re-leitura de qualquer uma das aulas ou dos assuntos abordados.

* O certificado não é reconhecido pelo MEC ou qualquer outra instituição governamental.

Conteúdo

Introdução à linguagem Java. Na primeira aula será apresentado um breve histórico sobre a linguagem Java, as nomenclaturas e tecnologias que fazem parte da plataforma J2SE, o processo de instalação dos softwares necessários, a configuração das variáveis de ambiente, os tipos básicos da linguagem, a declaração de classes e o modelo de referência a objetos utilizado pelo Java.

Pacotes e modificadores. A segunda aula tem como objetivo apresentar a utilização de pacotes em Java, recurso este que é fundamental para a programação de jogos tendo em vista que permite ao desenvolvedor agrupar classes com propósitos comuns em um único pacote. Além disso, esta aula aborda o uso de modificadores, mostrando como o comportamento de classes e atributos podem ser influenciados através do uso de palavras-chave como public, private, protected, final, abstract, syncrhonized, native e static. Finalmente, também será abordada a declaração e funcionamento do método main, que consiste na porta de entrada para aplicações Java destinadas a executarem em desktop.

Entendendo o conceito de Orientação a Objetos. A terceira aula apresenta os conceitos de Orientação a Objetos. Após ler esta aula você estará preparado para utilizar a programação Java aplicando conceitos como abstração, herança, encapsulamento e polimorfismo com o intuito de tirar o máximo dos benefícios oferecidos pela programação orientada a objetos.

bookTrabalhando com os operadores da linguagem Java e Casting. Na quarta aula serão abordados os operadores da linguagem Java. Assim como em qualquer linguagem, os operadores do Java são símbolos que podem ser utilizados para realizar tarefas como atribuições de valores para variáveis, soma, subtração, divisão, multiplicação, comparações e assim por diante. Esta aula aborda também a forma como a operação de casting entre variáveis e objetos é realizada em Java.

Estruturas de controle e assertivas. O objetivo da quinta aula é estudar dois importantes recursos da linguagem Java, as estruturas de controle e as assertivas. As estruturas de controle tem papel fundamental no desenvolvimento de jogos, pois é através destes comandos que o programador cria a lógica do jogo. As assertivas são essenciais no processo de testes e depuração do jogo.

Capturando Exceções, declarando interfaces e classes anônimas, e entendendo o conceito de Threads. A sexta aula aborda diversos conceitos importantes. O primeiro deles é o tratamento de situações que fogem ao controle da aplicação, permitindo que o programador possa realizar a recuperação de situações excepcionais que se não forem tratadas farão com que o jogo seja encerrado precocemente. A sexta aula aborda também como trabalhar com interfaces e classes anônimas e finaliza com um estudo sobre o conceito de Threads e como utilizá-las no desenvolvimento de jogos.

Entrada/Saída, Coleta de lixo. Nesta aula serão apresentadas as classes responsáveis pela captura de eventos de entrada através do Java, e como utilizá-las para criar a interação em um jogo. Esta aula abordará também como funciona a coleta de lixo em Java, recurso este que facilita a programação de jogos tendo em vista que o programador não necessita se preocupar com tal tarefa.

Classes fundamentais do Java. Uma das principais características que torna a linguagem Java poderosa é o seu conjunto de classes utilitárias oferecidos principalmente pelos pacotes java.lang e java.util. Esta aula tem por objetivo apresentar os principais recursos destes dois pacotes que são indispensáveis no processo de desenvolvimento de jogos.

Programando janelas e Applets. Uma das vantagens das linguagem Java é a sua biblioteca destinada a criação de interfaces gráficas, que funciona independentemente do Sistema Operacional. Esta aula aborda alguns dos componentes GUI do Java que servirão como base para o desenvolvimento de jogos nos capítulos seguintes.

Utilizando gráficos, imagens e transformações em Java 2D. O principal recurso da linguagem Java para a programação de jogos é a sua biblioteca gráfica conhecida como Java 2D. Trata-se de um conjunto de classes destinadas a oferecer suporte para a renderização de objetos visuais, como geometrias, textos e imagens. Esta aula aborda as principais classes do Java 2D destinadas ao desenvolvimento de jogos eletrônicos.

Desenvolvendo o primeiro protótipo. Nesta aula será desenvolvido o primeiro protótipo de um jogo 2D estilo scroll horizontal com o intuito de aplicar os conceitos vistos nas aulas anteriores.

Conceitos necessários para o desenvolvimento de um jogo 2D. Esta aula aborda toda as técnicas de programação necessárias para o desenvolvimento de Jogos 2D como tiles, layers, bricks, sprites animados e espelhamento.

Carregando e disparando sons em Java. Esta aula trata das classes oferecidas pelo Java para realizar o carregamento de sons e efeitos que tornam o jogo mais atrativo para o usuário.

Desenvolvendo um game com o estilo Scroll Horizontal. Nesta aula será apresentado o desenvolvimento passo a passo de um jogo no estilo Scroll horizontal que tornaram jogos como Mario e Sonic campeões de vendas.

Desenvolvendo um game com o estilo Scroll Vertical. Nesta aula será apresentado o desenvolvimento passo a passo de um jogo no estilo Scroll vertical, muito utilizado em jogos de arcade na década de 90

Pré-Requisitos

Conhecimento de lógica de programação e básico de orientação à objetos.

Método de Ensino

blackboardAo adquirir o curso, o aluno poderá acessar o material a partir de um computador que tenha acesso à internet, através do site. O aluno também encontrará a opção para fazer download dos arquivos utilizados e exemplos do curso.

Mais de 50 exemplos de códigos completos e totalmente funcionais. Imagens 2D de personagens e cenários. desenvolvidos por artistas profissionais. Código completo de pelo menos 3 protótipos

Faça o download de alguns dos protótipos desenvolvidos durante o curso:

filedownload

Protótio Sidescroller

filedownload

Protótipo Verticalscroller

Esclarecimento de Dúvidas:
Sempre que o aluno tiver dúvidas relacionadas ao material estudado, deverá enviar uma mensagem para o instrutor através de um fórum exclusivo para sua turma do curso, detalhando o problema encontrado. Ao enviar a mensagem, automaticamente o instrutor recebe uma notificação de seu pedido de suporte, e acessará o fórum para responder à sua dúvida. Através deste mesmo fórum, você também pode interagir com os demais alunos da sua turma ou de outras.

Atendimento Online:
O aluno encontrará uma agenda que exibe os dias e horários em que o instrutor estará online, e terá a opção de agendar um atendimento, através do qual poderá conversar com o instrutor através de um chat.

A Grade

Aula 1: Introdução à Linguagem Java

  • Histórico do Java e J2SE
  • Material de apoio
  • Instalação dos softwares necessários
  • Configuração das variáveis de ambiente
  • Palavras-chave do Java
  • Tipos primitivos

Aula 2: Pacotes e Modificadores
Trabalhando com pacotes

  • Entendendo os modificadores do Java
  • O método main e sua assinatura

Aula 3: Entendendo o Conceito de Orientação à Objetos

  • Classes x Objetos
  • Encapsulamento
  • Herança
  • Polimorfismo

Aula 4: Atribuições,Operadores e Casting

  • Operadores do Java (aritméticos, lógicos e binários)
  • Atribuições
  • Casting

Aula 5: Estruturas de Controle e Assertivas
Estruturas de controle do Java

  • Desenvolvimento de um protótipo básico
  • Assertivas

Aula 6: Exceções, Interfaces, Classes Anônimas e Threads
Captura e tratamento de exceções

  • Lançamento de exceções
  • Sobrescrita de exceções
  • Trabalhando com interfaces
  • Declarando classes anônimas
  • Entendendo o conceito de Threads

Aula 7: Entrada/Saída e Coleta de Lixo
Captura de eventos em Java

  • Eventos de teclado
  • Eventos de mouse
  • Joystick
  • Entendendo a coleta de lixo

Aula 8: Classes Fundamentais do Java
Introdução aos pacotes java.lang e java.util

  • Vetores
  • Listas
  • Arvores
  • Tabelas hash

Aula 9: Programando Janelas e Applets
Criando e configurando janelas em Java

  • Definindo uma janela em fullscreen
  • Introdução aos applets
  • Recebendo parâmetros em um applet

Aula 10: Utilizando Gráficos, Imagens e Transformações em Java 2D
As classes gráficas do Java 2D

  • Renderizando primitivas
  • Aplicando transformações geométricas
  • Carregando imagens em Java 2D
  • Resolvendo o problema de flicker através do buffer duplo
  • Aplicando efeitos em imagens

Aula 11: Projeto de Protótipo

  • Apresentação das Classes, Métodos e Atributos a serem utilizados na implementação do protótipo 2D estilo scroll horizontal.

Aula 12: Conceitos Necessários Para o Desenvolvimento de Um Jogo 2D
Tiles

  • Layers
  • Bricks
  • Sprites

Aula 13: Carregando e Disparando Sons em Java

  • Introdução ao carregamento de sons
  • Edição sonora
  • O pacote javax.sound
  • Carregar, iniciar e pausar sons em Java.

Aula 14: Desenvolvendo um Game no Estilo Scroll Horizontal

  • Nesta aula serão aplicados os conceitos vistos durante o curso para o desenvolvimento de um jogo estilo scroll horizontal.

Aula 15: Desenvolvendo um Game no Estilo Scroll Vertical

  • Nesta aula serão aplicados os conceitos vistos durante o curso para o desenvolvimento de um jogo estilo scroll Vertical.

O Instrutor

SilvanoSilvano é formado em Ciência da Computação pela Universidade Regional Integrada do Alto Uruguai e das Missões (URI, Campus de Santo Ângelo/RS.). Na área de jogos possui diversos cursos como:

  • Curso de OpenGL pela Unidev.
  • Curso de Guia do Iniciante na Programação de Jogos com C++ pela Unidev.
  • Curso de Desenvolvimento de Jogos Eletrônicos ministrado pela empresa  Nology Softwares.
        Local:Pontifícia Universidade Católica do Rio Grande do Sul (PUC-RS).

    Possui certificação para programador Java emitido pela Sun (SCJP) e mestrado em Sistemas e Computação pelo Instituto Militar de Engenharia (IME).

    Trabalhou como programador C++ e Java no desenvolvimento de jogos comerciais na empresa Zupple Games. Desenvolveu atividades de pesquisa no Laboratório Nacional de Computação Científica (LNCC - RJ).

    Participou de diversos projetos de desenvolvimento de aplicações com Java+Java 3D, dentre eles: Jogo Educacional AITEM (Ambiente Interativo Temático para o Ensino da Matemática), Logo3D - Uma versão tridimensional da linguagem Logo, J3DTOOL - Editor de cenários para Jogos em Java 3D, jogos multiplayer controlados por celular, jogos controlados pelo Wiiremote. Atualmente coordena o grupo de pesquisa NTIGames, destinado ao estudo e desenvolvimento de jogos eletrônicos. As figuras a seguir demonstram alguns dos trabalhos realizados pelo instrutor na área de jogos e computação gráfica.

     

    Screen Shots

    Abaixo imagens de algumas das aplicações desenvolvidas durante o curso:

    Protótipo Sidescroller

    Protótipo Verticalscroller

    Algumas imagens utilizadas:

     

    udco

  •