Definindo o cronograma de estudos
Boa tarde a todos!
Tive um dia bem puxado ontem no estágio e hoje retornei para minha cidade natal pela manhã, então só estou postando agora
. Mas vamos ao que interessa.
Desde ontem venho definindo meu cronograma de estudos, e acho que hoje consegui concluí-lo de forma a tornar meus estudos bem focados e claros. Quando lidamos com IA diversas dúvidas surgem principalmente sobre a teoria do assunto, mas como vivemos em uma era de tanta informação disponível pela internet tais dúvidas são resolvidas em um clique.
Meus primeiros dois meses serão focados na revisão bibliográfica. Graças a ajuda do bom amigo Vinigodoy obtive diversas fontes de informação valiosas que tem me inspirado muito.
Numa primeira pesquisa, encontrei sites como gameai, ai-blog, aiwisdom, o ótimo aigamedev, e um repositório de links muito interessante mantido por um programador de jogos: amit’s game programming. São todos links excelentes que discutem desde as técnicas clássicas até as mais recentes implementações na indústria de jogos, como algoritmos genéticos e redes neurais, e outros assuntos como economia e ciências.
Estes links fornecerão informações importantes tanto do contexto da IA como sua evolução na área de jogos, lhes darão maiores explicações sobre a carreira na indústria de jogos e oportunidade de aprendizado em outras áreas. Se puder, visite-os sempre pois a maioria é atualizada diariamente.
Quanto ao estudo para o desenvolvimento, planejei estudar um pouco mais da parte básica de C++ através do livro C++ How to Program, conceitos de design patterns (estes aparecem muitos na indústria, e são fundamentais em qualquer área de desenvolvimento) e SDL.
Decidi utilizar SDL pois simplifica muito o processo de desenvolvimento, além de facilitar as coisas já que conforme dito no primeiro post, não tenho experiência para criar uma engine em DirectX que seja suficientemente boa, flexível e reusável (reusabilidade de código tem sido uma das minhas principais preocupações no que tange à programação) que possa ser utilizada em um projeto.
Dois ótimos links para entendê-la são SDLWiki e Lazyfoo; estou seguindo um ótimo tutorial nesta página: http://lazyfoo.net/SDL_tutorials/index.php. É necessário saber inglês para ler a documentação (pelo menos a melhor parte dela) e alguns termos técnicos, mas o principal é paciência e força de vontade.
Se você necessita visualizar alguns exemplos para entender um conceito (como eu às vezes necessito), sugiro seguir os tutoriais deste blog: http://devhub.lostfish.org/category/c-tutorials/sdl-tutorials/. São simples, fáceis de se entender e utilizam orientação a objetos de forma que o leitor possa compreender a modelagem de seus próprios jogos (estou desenvolvendo o exemplo do jogo da velha, quando terminar posto os fontes e o executável!).
O desenvolvimento da pesquisa resumidamente se descreve no desenvolvimento de um jogo-exemplo com as técnicas pesquisadas (posso até implementar dois jogadores virtuais, cada um utilizando uma técnica, e fazê-los se enfrentar no jogo…), além de realizar o trabalho escrito, discutindo cada técnica pesquisada.
Seguindo a proposta do blog, irei documentar aqui minha pesquisa e links interessantes tanto de gamedev quanto IA, além de ótimos blogs de desenvolvedores mais experientes (você pode visualizá-los nos links à direita).
Fico por aqui, espero que vocês possam aproveitar os links e estudar bastante através de seus escritos!
Abraços
3 comments Fevereiro 2, 2008
O início
Boa noite a todos!
Estou finalmente iniciando minhas postagens no blog (já fora criado havia um tempo, é verdade) e explicarei o propósito do blog.
Defini meu TCC na área de jogos, mais especificamente sobre algoritmos de inteligência artificial a serem utilizados para implementar um jogador virtual para um jogo de estratégia em turno. A idéia vem sendo lapidada ainda, e estou bem no início das pesquisas, tanto da área de desenvolvimento quanto teoria.
Acho a área de IA bastante atraente do ponto de vista dos jogos, afinal com seu uso é possível maximizar a “humanização” dos NPCs, e tornar o jogo mais atraente (quanto maior a quantidade de reações e estímulos que um agente no jogo puder receber, maiores serão as possibilidades que o jogador pode tomar no jogo).
Na minha opinião a parte gráfica está muito bem definida, e claro que existem muitas melhorias tanto de processamento gráfico quanto técnicas mais complexas a serem utilizadas.
Sendo o primeiro post de uma (espero) série, esclareço algumas questões:
- ainda não defini muito bem se irei utilizar uma engine para o desenvolvimento, ou se tento fazer uma eu mesmo. Não quero perder muito tempo desenvolvendo uma engine, e por mais simples que seja, uma engine é uma engine. Meu conhecimento em C++ é mediano e carece de muito tempo e muita experiência até atingir uma maturidade de desenvolvimento.
- Como o foco do trabalho são técnicas em IA, nada melhor do que gastar um bom tempo estudando conceitos, técnicas e métodos de programação de IA.
- Quero seguir carreira na área de desenvolvimento de jogos, mas digo isso para eu mesmo e para todos os futuros game developers por aí: sem afobação. Na minha experiência de desenvolvimento de trabalhos da faculdade, percebi que muitos dos meus erros e dos meus colegas eram causados por uma espécie de alucinação do tipo “se eu não fizer até às 5 da tarde de hoje o mundo acaba”. A coisa não funciona assim. Estude bastante, principalmente as disciplinas que forçam sua abstração e entendimento de diversas classes de problemas (compiladores e teoria da computação são ótimas neste sentido, apesar da última ser pouco aproveitada pela maioria dos alunos) , tente aprender sempre com aqueles mais experientes e peça ajuda quando houver dúvidas nas quais você não foi capaz de resolver por si próprio.
Mais posts seguirão, e assim que minha pesquisa e experiência for aumentado, irei contribuir aqui no blog e espero que vocês também contribuam com suas experiências.
Bons estudos!
Add comment Janeiro 30, 2008