Page 1 of 1

Up for an AI coding challenge?

Posted: Mon Mar 18, 2013 12:14 am
by Jackolantern
While not critical in many types of PBBG development, AI programming is a major field in game development as a whole. AI programming can make or break games, particularly heavy player-vs-player games such as FPS. Many hardcore FPS players say that no AI can provide the challenge of a real player, but it is getting better.

If you are interested in getting better at AI programming, how about trying your hand at making a single player, 9x9 game of Go? Go is an ancient board game, maybe one of the oldest in the world. The rules are very simple, and you can get up to speed watching an older introduction video here (part 1) and here (part 2, total of about 20 minutes).

Why is Go, this board game that few people outside of East Asia know about, such an interesting topic for AI? First, the game is extremely simple to setup (visually and functionally) on the computer. You can make all the graphics for it in MS paint in about 15 minutes if that and it has no moving parts. Once a stone is placed, it is there until captured, so no animations are needed (you could very easily recreate the whole board and stone placement in regular HTML and CSS with very little Javascript, and no need for HTML5). Second, the game is so wide open that it is difficult for computer algorithms to challenge a competent player. Moving the board size from 19x19 to the beginner board of 9x9 makes it a lot easier, but still challenging. Third, most Go AI programmers agree that the way to create better Go AI is to more closely mimic human thought. This opens up all kinds of doors to interesting AI algorithms and programmer thought processes (for example, how does a human player mentally balance capturing stones and territory, and how can you convert that to an algorithm?). And fourth, it will never be perfect. Unlike chess, where the algorithms have pretty much hit their peak and now the only challenge is in computing hundreds of moves in advance and how your algorithms react and change plans, Go is too open and unrestricted to ever hit a foreseeable conclusion. All you can do is make it tougher tougher until you are satisfied. There is also the added bonus that there is some serious financial incentive to making something solid. There are over 40 million Go players in the world, and while multiplayer Go games are easy to make and all over the Internet, few good single-player versions are online and a developer who created a competent AI would definitely get a loyal following.

Of course it can be hard to make AI for a game you aren't familiar with, so if you want to try this out, I suggest watching some matches on YouTube (there are tons of them ranking from beginners to the top ranked players in the world), trying some games online (there are plenty of sites out there if you search "play go online"), and going to English-language Go fansites and asking if players there will try your creation. You can ask players their ranking on your game page and keep track of win/loss results versus their rank. I would also suggest to read through the wikipedia "computer go" entry to learn more about it.

If you are going to college for game development, there is a good chance you will be tasked in making a single-player Go game for your AI course work, as it is becoming a common part of various carricula. So why not get a jump on it? :cool:

Re: Up for an AI coding challenge?

Posted: Mon Mar 18, 2013 1:41 am
by hallsofvallhalla
sounds like a fun task for someone. AI programming is both fun and tasking. I recently created some AI bots to run on the Raspberry Pi board just to see what all they would do. Pretty kewl stuff.

I have heard of people basing randomness counters off of webcams and such.

Re: Up for an AI coding challenge?

Posted: Mon Mar 18, 2013 3:27 am
by Jackolantern
Yeah, AI is definitely fun and quite hard to get right. I figured this would be more fun than AI checkers, which is also a common challenge, because there is no "wrong way" to do it in Go. With very strictly defined games like checkers or Connect Four, there are fairly simple algorithms that already exist, so trying it another way is likely "wrong". Not the case with Go.

And yes, there are some odd true random number generators out there. I have heard of some being seeded by a super-exact temperature monitor outside, long-reacting chemical reactions, extrasolar radio feedback, etc. Just anything that is impossible to predict on some kind of scale.

Re: Up for an AI coding challenge?

Posted: Mon Mar 18, 2013 8:44 am
by Callan S.
In a deterministic universe, there is no random. Just ignorance.
[/dramatic voice]
Many hardcore FPS players say that no AI can provide the challenge of a real player, but it is getting better.
Sounds like a prompt for some turing like tests, except tell the people they are up against a real human and...record how many see through it or express doubts about your assertion they were facing a human.

If it's just prejudice against AI opponents, you can't code around prejudice.