associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Revisão 5e 2008-05-06 00:50:29

Excluir mensagem

CursoDeJogos

Este espaço foi criado com a intenção de armazenar conteúdo sobre o curso de Jogos em python, a ser realizado em 2008 ainda. O projeto está em discussão na lista python-gamedev-brasil, no google groups.

O curso

O curso deve ser oferecido em EaD (Educação a Distância), atingindo assim o maior número de pessoas possível. O objetivo do mesmo é motivar e ensinar a comunidade em geral com assuntos relevantes a python e desenvolvimento de jogos.

  • Duração do curso: 1 mês - mais que isso pode ficar muito extenso.

  • Ensinando: A principal forma de ensino a distância é através da criação de tutoriais e trabalhos a fazer. Podemos incrementar com jogos em comum, dinâmica de grupos e até alguns vídeo-tutoriais.

  • Vagas: O número de vagas terá de ser definido de acordo com a staff. Depois precisamos chegar num comum acordo de acordo com a carga horária escolhida.

  • Formato da avaliação: Como todo bom curso (ainda mais se for para considerarmos extensão universitária) precisamos de uma forma de avaliação que não seja carrasca com os alunos mas que cobrem para que todos estudem os conteúdos fornecidos. Pensei em dar então trabalhos práticos na maior parte do curso, sendo alguns individuais e a maioria em grupos diferentes (não sempre o mesmo, sorteio?). A idéia é cada 'disciplina' ter seus trabalhos e talvez bolarmos um trabalho final bem legal. (ps - se desejarmos que seja extensão universitária pela USP, essa mesma exige que seja realizada uma prova presencial)

  • Apoio: Precisamos arrumar alguém para emitir certificados (ou criar um nome do curso e esse ser somente o que emite). Patrocínio também é bem vindo para prêmios (seria ótimo por exemplo camisetas).

Disciplinas do Curso

Uma idéia é dividir o curso em 'disciplinas', que na realidade são assuntos. Eis uma lista que pensei RobertoFaga:

  • Python: começa ensinando o básico de python (calculadora, listas, estruturas for, etc), seguido de técnicas mais avançadas, como OO (será que vale a pena ensinar OO?). Boa parte daqui já temos em português (até pelo PythonNaPratica), essa parte vai ser mais sussegada.

  • Pygame básico: Ensinar os módulos básicos de pygame. Essa seria a disciplina mais pesada, e visa cobrir os módulos principais para se produzir um jogo simples. Apesar dos tutoriais que temos, vai ser um pouco chato pois precisamos ter materiais maiores, algo que ainda não encontrei.

  • Técnicas de jogos: game loops, sistemas de tiles, sprites (não com pygame necessariamente), alguma AI, e tudo que for relevante a jogos mas não atrelado a pygame necessariamente. Eu tenho alguma dificuldade em termos de material de referência para preparar isso.

  • Sockets: É bem fácil quem já sabe sockets programar isso em Python, mas teríamos de passar algum conteúdo introdutório sobre sockets mesmo. Acho interessante para jogos online, podendo usar algumas coisas mais avançadas, como servidor xml e tals.

  • Python em 3D: Acho que seria interessante usar a Soya ou Panda (Soya é mais popular, não?), o problema é que eu sei muito pouco dessas para preparar material, precisaria ser outra pessoa.

  • Pygame avançado: Ensinar algumas técnicas como otimizações, uso dos módulos adicionais (fonte, som, etc) e o que mais não for básico em pygame. Seria interessante nesse ponto mixar com a biblioteca 3D também.

Ainda, essas áreas podem ser resumidas em 4: Python (inclusive coisas avançadas como sockets e etc), Técnicas de jogos, PyGame e Python 3D (mostrando soya e panda, mas destacando uma). Ou seja, cada área precisa de pelo menos um instrutor responsável (por enquanto temos 3, alguém sobraria com mais uma), e os outros obviamente ajudam também - a idéia é deixar alguém responsável principalmente nas correções, para dar conta do curso. E o(s) responsável(is) corre(m) atrás do conteúdo que já está pronto, organiza e td mais (a estrutura todos definimos juntos).

Cronograma

Vou propor um cronograma, comentem plz, ou pelo menos votem com o nome depois da proposta. Existem duas opções de curso:

  • oferecer em Julho - quando teoricamente os alunos tem mais tempo, mas também podem viajar/descansar e atrapalhar. Ainda, teríamos pouco tempo para elaborar o material, o que ao meu ver é o maior ponto negativo dessa opção, mas também é quando eu e muitos outros têm mais tempo para monitorar/instruir.
  • em Agosto - começo de semestre universitário, normalmente mais sussegado, e começo de semestre efetivo também, normalmente pessoal que trabalha está mais folgado nesse período, até mesmo porque alguns nem têm férias em Julho. A maior vantagem mesmo é o tempo maior para preparar material, durante todo o mês de Julho, conseguiríamos ter um material muito bom. Ainda, podemos começar no finalzinho de Julho (lá pelo dia 28). [RobertoFaga]

Existe ainda a duração do curso e a carga horária, que estão diretamente ligadas (votem tb):

  • 3 semanas, carga horária mais pesada, sendo uma 4ª semana extra apenas para o projeto final - o qual seria grande. Considerando as 6 disciplinas citadas, isso daria um total de carga horária de aproximadamente 20h semanais, sem contar o tempo gasto para realização das tarefas (calculo eu que 30h a 40h seja o suficiente/máximo). Cada disciplina teria de contar então com 3 a 6 aulas de 2h a 4h, dependendo da relevância do assunto.

  • 4 semanas, carga horária mais light, mas o projeto final sendo menor. O projeto final poderia ser formado de partes feitas durante o curso, é mais fácil de avaliarmos os trabalhos e de incentivar o pessoal. O problema é que não vai ter um super projeto tão legal quanto o item anterior, mas esse me agrada mais pois o trabalho fica mais espalhado. [RobertoFaga]

  • 5 semanas, carga horária bem mais tranquila, mas temo por levar muito tempo de curso. Não sei se teremos tanto conteúdo assim para tanto tempo (parece que não mas é bastante)

Referências para usarmos no curso