SnakeSanders
Joined: Aug 02, 2003
|
  Posted:
Mar 26, 2010 - 19:00 |
|
I was reading Christers rather interesting blog which contained an interesting side thought that he could venture down the path for making an AI for a new client.
My thoughts as a rookie programmer and never worked with AI before, but an eternal optimist!
When the client is released, games will be uploaded to the server. What if these files were run through a replayer that an AI could learn from and after a few ten thousand games were put through, an AI could be released for those of us who like to play but not have swathes of time to complete a full match online, or even to try out new strategies and team builds.
I guess the standard response to this is to play Cyanide but my response to that is
I remember a topic years ago (I may even have started it, I cant remember) but I don't think too much came of it, mostly due to Ski having done little to the client over the last 4-5 years |
|
|
JanMattys
Joined: Feb 29, 2004
|
  Posted:
Mar 26, 2010 - 19:05 |
|
As far as my very limited experience goes, it's extremely hard to create a decent BB A.I, mainly because many choices are situational, so there's very little "patterns" you can follow, except from the very basic ones. But opponents only following very easy and basic patterns of thought make EXTREMELY poor BB opponents.
Even a decent grasp of the game requires much more than a checklist like "move first, then protect ball, then throw 2d blocks, then pickup, then try dodges to provide more assists, then try (sometimes only) 1d dice".
Just to use your example: the Cyanide A.I. works pretty much like that. And it sucks as soon as the situation becomes more difficult to read than "move and throw 2d blocks".
BB is deep. It requires situational thinking. I'd be extremely impressed by a decent BB A.I. |
_________________
|
|
SnakeSanders
Joined: Aug 02, 2003
|
  Posted:
Mar 26, 2010 - 19:14 |
|
Yep which is why I was thinking along the lines of a self learning AI that would learn from replays of games here from the release of the new client. It would likely take a year to get enough results. How hard is a self learning AI to make?
I would have every faith in Christer etc as Kalimar and Christer (2 guys) almost have a fully functional game ready to go with a site that owns Cyanides league format while Cyanide take 6 months to fix a simple bug in SideStep
The Cyanide AI is shocking too! |
|
|
capnpaco
Joined: Apr 18, 2009
|
  Posted:
Mar 26, 2010 - 19:17 |
|
Speaking with no programming experience at all, I wonder if you could have something where you constantly would look at the possible positions at the end of your turn, calculate the possibility of achieving them, and then (somehow) assign a desirability value to each of these possible positions. Then the AI might say "Ok, position X looks reasonably good and reasonably likely to achieve. Let's go for that. What's the easiest first step to try?" The problem would be figuring out the desirability values. I also have no idea whether or not calculating all of the probabilities would be too computationally expensive. |
|
|
JanMattys
Joined: Feb 29, 2004
|
  Posted:
Mar 26, 2010 - 19:20 |
|
SnakeSanders wrote: | Yep which is why I was thinking along the lines of a self learning AI that would learn from replays of games here from the release of the new client. It would likely take a year to get enough results. How hard is a self learning AI to make?
|
Then we would have an A.I only interested in fouling, an A.I. that disconnets after the second cas, and an elfbowling A.I.
Mind you: the second I enter the Single Player Campaign and the A.I. tells me "no thanks" when I click the Game icon, I'm going to delete my account |
_________________
|
|
James_Probert
Joined: Nov 25, 2007
|
  Posted:
Mar 26, 2010 - 19:24 |
|
JanMattys wrote: | Mind you: the second I enter the Single Player Campaign and the A.I. tells me "no thanks" when I click the Game icon, I'm going to delete my account |
It won't do that, but it will whine in game |
_________________
|
|
SnakeSanders
Joined: Aug 02, 2003
|
  Posted:
Mar 26, 2010 - 19:24 |
|
LOL Jan
Maybe it should only accept data from > CR160 coaches playing each other?
It would be really good as it would pick (hopefully) sensible inducements |
|
|
BiggieB
Joined: Feb 19, 2005
|
  Posted:
Mar 26, 2010 - 19:29 |
|
SnakeSanders wrote: | Yep which is why I was thinking along the lines of a self learning AI that would learn from replays of games here from the release of the new client. It would likely take a year to get enough results. How hard is a self learning AI to make?
I would have every faith in Christer etc as Kalimar and Christer (2 guys) almost have a fully functional game ready to go with a site that owns Cyanides league format while Cyanide take 6 months to fix a simple bug in SideStep
The Cyanide AI is shocking too! |
incredibly hard. There is a reason most chess computers are still beatable by humans. And chess is a much simpler game then bb. |
|
|
Shephard
Joined: Nov 01, 2008
|
  Posted:
Mar 26, 2010 - 19:30 |
|
Speaking as a non-rookie software developer, I submit that an AI that can learn by replaying other games makes the problem more complex, not less. |
|
|
nazgob
Joined: Oct 31, 2008
|
  Posted:
Mar 26, 2010 - 19:34 |
|
Quote: | Mind you: the second I enter the Single Player Campaign and the A.I. tells me "no thanks" when I click the Game icon, I'm going to delete my account Wink |
\o/ \o/ \o/
I want to build that AI.
SHouldnt be too difficult...[/quote] |
Last edited by nazgob on %b %26, %2010 - %19:%Mar; edited 1 time in total |
|
Were_M_Eye
Joined: Sep 24, 2007
|
  Posted:
Mar 26, 2010 - 19:34 |
|
I seen so many people complaining about bad AI in games, but i don't think many have a clue how hard it is to make a AI. Since the big software companies can't make a good AI i be realy surprised if someone could make one on their spare time. |
|
|
SnakeSanders
Joined: Aug 02, 2003
|
  Posted:
Mar 26, 2010 - 19:37 |
|
Hehe could be easy enough...
BeginTurn()
If player = prone then
If assists < 7 Then
Get Assists
DeclareAction = Foul
EndTurn()
|
|
|
Optihut
Joined: Dec 16, 2004
|
  Posted:
Mar 26, 2010 - 19:51 |
|
Were_M_Eye wrote: | I seen so many people complaining about bad AI in games, but i don't think many have a clue how hard it is to make a AI. Since the big software companies can't make a good AI i be realy surprised if someone could make one on their spare time. |
In case of bloodbowl, I'd think that a fan with a good understanding of the game is more likely to produce a decent AI than someone, who has a lot of coding experience, but doesn't really understand the game mechanics (not to mention advanced moves like the chain push one turners) all that well. |
|
|
BiggieB
Joined: Feb 19, 2005
|
  Posted:
Mar 26, 2010 - 19:55 |
|
Optihut wrote: | Were_M_Eye wrote: | I seen so many people complaining about bad AI in games, but i don't think many have a clue how hard it is to make a AI. Since the big software companies can't make a good AI i be realy surprised if someone could make one on their spare time. |
In case of bloodbowl, I'd think that a fan with a good understanding of the game is more likely to produce a decent AI than someone, who has a lot of coding experience, but doesn't really understand the game mechanics (not to mention advanced moves like the chain push one turners) all that well. |
I think you are massivly underestimate the value of coding experience and also the knowledge of ai programming, not to mention the fact that big software companies dont have 1 guy writing ai, more like dozens . They are all competent, well payed and motivated. Writing ai is prolly one of the harder things to write when it comes to programming. |
|
|
Resarf
Joined: May 08, 2009
|
  Posted:
Mar 26, 2010 - 20:07 |
|
^Absolutely have to agree with above from Biggie: they just came up with one that could beat a chess master this decade, and I don't think that was easy, and the permutations in BB would (I believe, where a programmer would know) extend far beyond the limits of that non-dicey board game of standardized pieces and fewer squares. |
|
|
|
| |