Usuários de sistemas diferentes de Windows costumam sofrer com a dificuldade de encontrar bibliotecas ou programas que rodem em seus sistemas operacionais. Isso acontece mesmo com livros que ensinam como implementar determinadas técnicas: o código que os acompanha costuma funcionar apenas no Windows1.

Esse era? é o caso da aicore, biblioteca que acompanha o livro Artificial Intelligence for Games2 em suas primeira e segunda edição. Apesar do Ian Millington, autor do livro, ter se “esforçado” para fazer o código amigável para outros sistemas, é fato que ele desenvolveu pensando no Windows (e, pior, no compilador do Visual Studio).

No fim de 2009, acabei precisando de uma biblioteca de IA para resolver um problema e decidi portar a aicore para sistemas Unix (para ser sincero, só testei no Mac OS X e no Linux). Conversei com o autor, mas apesar de ter demonstrado interesse, ele jamais aplicou meu patch à árvore principal. Ainda assim, o issue tracker do projeto possui o meu patch possui o meu patch e não é difícil aplicá-lo ao código original.

Alguns dos assuntos abordados no livro são3:

  • Steering behaviors;
  • Pathfinding;
  • Decision Making;
  • State Machines;
  • Fuzzy Logic;
  • Waypoints;
  • Learning Behaviors;
  • Communication;
  • Teaching characters.

Conforme descrito na página, para aplicar o patch basta executar o comando:

patch -p0 < /caminho/para/aicore-unix-support.diff

Para compilação, o scons é necessário. Instalá-lo é moleza, supondo que você possui o python instalado (e a maioria das distribuições Linux já vêm com ele). Daí, para compilar a aicore e seus demos, basta executar:

cd /caminho/para/aicore
cd build
scons

E é isso. Os demos são instalados no diretório bin e a biblioteca vai parar no diretório lib.


  1. Considerando o Market Share do referido sistema, essa parece uma escolha razoável, mas continua a irritar. Especialmente quando, com alguns cuidados básicos, é possível criar bibliotecas realmente multi-plataforma. :-( 

  2. O livro é bom, vale a pena lê-lo. 

  3. É importante notar que o foco do livro está mais nos algoritmos que em tópicos de pesquisa. Portanto, ele só vai até a profundidade “necessária” para compreensão do assunto. 

Related content