6

I am looking for C and C++ implementations of artificial intelligence algorithms useful in games. Some of the ones I am most interested in are reinforcement learning algorithms, genetic algorithms and neural networks. Any others are interesting too, however.

I have found dlib.net which has some very fascinating machine learning algorithms, but these don't seem particularly geared towards games.


The licenses I can use are the Boost Software License, the Zlib/Libpng license, and public domain. Any recommendations of libraries that fall under any of these licenses would be highly appreciated.

Edward A
  • 2,291
  • 2
  • 18
  • 31
Philip Bennefall
  • 1,477
  • 5
  • 20
  • 33
  • A short note. At this point in time, almost no games, and definitely not big, commercial ones, use neural networks, genetic algorithms, etc. as their AI base. They are way too slow and complex. Look into graph theories, decision trees, state machines and such. – Xargos Jun 03 '13 at 07:32
  • I am interested in all of these things as well. I am really just looking for a good starting point from which to continue experimenting. Have you any tips for tutorials, libraries with the above-mentioned licenses, or any other relevant resources? – Philip Bennefall Jun 03 '13 at 10:51

2 Answers2

3

AI is a huge field, so just saying "useful in games" doesn't mean too much. This probably isn't exactly what you're looking for, but you may be able to get some use out of Alchemy:

"Alchemy is a software package providing a series of algorithms for statistical relational learning and probabilistic logic inference, based on the Markov logic representation. Alchemy allows you to easily develop a wide range of AI applications, including: Collective classification Link prediction Entity resolution Social network modeling Information extraction"

http://alchemy.cs.washington.edu/

williamstome
  • 786
  • 1
  • 6
  • 21
-2

Even if you wanted a library, I would highly recommend to program artificial intelligence by yourself. It may not be that easy, but programming does (in my view) not mean using other peoples work.

A short introduction to the study of AI can be found here.. (needs some seconds to load..)

If you can not assimilate to the thought of programming on your own, I heard about "Kynapse" being a very nice AI SDK for middleware programs.

I hope this helps somehow

user229044
  • 232,980
  • 40
  • 330
  • 338
Chaos
  • 374
  • 2
  • 11
  • 5
    do you mean to imply that using third party components for particular tasks somehow makes the person behind the given product less of a programmer? Programming is about coding and solving problems, and one of the ways in which to solve a problem is to use the knowledge and wisdom acquired by others in order to produce a superior end result (particularly if the third pardy code is well tested and mature). There has to be a balance to this, of course, but reinventing the wheel is not necessarily the best course even if you do end up writing more code by yourself and learning more as a result. – Philip Bennefall May 27 '13 at 19:32
  • 2
    :3 yea I mean that. maybe I do wrong with programming every detail on my own, but I just turned 18. my remaining time on earth seems to be long enough to "reinvent the wheel" – Chaos May 27 '13 at 20:12
  • 3
    I do not think you are wrong because you choose to write code on your own. Quite the contrary. But you are wrong to judge others for wanting to take a different path from yours, provided that they have a good reason for wanting to reuse code. I have good and valid reasons, so your remarks are unfounded and unnecessary. – Philip Bennefall May 27 '13 at 20:22
  • ...yeah.. Let's just say, rebuilding what's already been built, is a great learning exercise, but it's not exactly practical. Third Party solutions and libraries exist for a very solid reason: to provide a set of battle tested tools to accomplish the very result your looking for. As one finds out, writing it 100% on your own just on principle will more often than not produce a lesser product as you yourself just don't quite have the experience as the group of folks who dedicate to those libraries. Write it on your own for crucial Learning and Experience, but otherwise there's just no need. – RedactedProfile Mar 10 '15 at 00:06
  • 4
    I am looking forward to hearing about TheOneAndOnly's operating system, compiler, standard library, and text editor she or he wrote themselves. :-) – user118967 Mar 13 '15 at 06:07
  • There are times when you want to learn a concept by reinventing the wheel and other times when you want to get work done. Judging by the original post, this is one of those cases where someone is trying to get work done. I'm sure you knew that but you took this as an opportunity to flex on everyone as someone who "programs everything themselves." TL;DR: Thanks for saying nothing, loser – Kaiser Keister Feb 20 '19 at 06:03