Hey dgrantkp,
thank you for your posting.
In the last couple of days I keep thinking about my simulation more and more. However, I havent progged a single line of source yet. I also thought about what you are suggesting.
"Games are about creating interesting choices..."
The point is, and I wasnt sure about that myself when I started this thread, that I am not really interested in making it a game. I am more interested in AI, the procedures and how to make a computer act smart (even if it takes one billion cycles to find an optimal solution). Anyhow, what I think I am going to do is this:
I will put a couple guys on the pitch with a goal. The only option for them are to either pass the ball or shoot. They cannot run yet. With a genetic algorithem and a neural net, I think I should be able to find a fairly optimal solution. Meaning the faster they score the better. Plus I can find some world parameters like, how far can an agent pass, and how accurat would that pass be.
When I found my parameters and the guys got a little smarter, I think I will add one or two opponent players, preventing my guys to pass to certain fellow team members. Like that I can find some parameters on intercepting passes.
The next step I am not very sure about. Either I will let loose of the defending team, making it possible for them to move around and try to intercept the ball (the defenders here are still in the minority), or I will let loose of the attacking team. I think this step is really hard, since it adds a new option for agents.
But all that stuff is just of theoretical nature if i dont write some code for it. Unfortionatly work is keeping me pretty busy these days.
Cherio Woltan
Howto learn AI
Quote:
Original post by Woltan
However, I havent progged a single line of source yet. I also thought about what you are suggesting.
That's actually a really really good plan. Make a plan before coding. Excellent.
I'd second the suggestion to look into finite-state machines rather than trendy neural networks. (Although if you can come up with an infinite-state machine, I'd like to see it).
Change states in response to events - I got the ball, I am in a shooting position, etc. Basically an expert system just like that employed by Everton (I wish).
Simulation also works well on computers - use the game logic to get the agents to try lots of different things and score them appropriately, and pick the best (not necessarily - for gameplay reasons etc.) one - i.e. write a heuristic function. Just like capturing the king is worth infinite points in chess, scoring a goal is a highly scored move in footy (although unlike chess scoring a goal is not the be all and end all especially when faced with a stronger opponent who is more likely to score than yourself - defence matters too).
Hope that makes sense, a bit.
"Most people think, great God will come from the sky, take away everything, and make everybody feel high" - Bob Marley
Well as zen research projects go there are years of subtleties to discover even in the simplest system! AI innovations come from introspection and reflection on humanity's interaction with the universe. I just like to stick with the more concrete intuitions that I can wrap my head around quickly.
Although Hockey and Soccer are a bit different, I was planning on making a basketball game.
The way I saw the AI was going to be implemented is by simply making the players run a system of set plays that branch out.
I do not know so much about those sports, but in basketball, there is no freelancing of sorts. Even when a player is isolated, it is by design. Hence, all I have to do is set up plays that instruct players to be at certain spots on the court, then, I put in a if statement when the defense reacts. How is the defense going to react? Coaches settings.
Coaches settings might solve your problem. A coach will instill a certain philosophy and his players have to follow that philosophy. So if you run a Pick and Roll, a coach will make his players guard it a certain way(go over the screen, under, etc;) Then the If statement makes the offensive players see what the defense did and react accordingly based on their talents.
Basically, in sports simulations, I think the most important thing is to actually know a lot about the sport. I am a huge NBA fan and I know a whole lot about basketball, more than the average fan. So I know how to guard certain plays, and what teams run what offense.
Best part about basketball is that there arent any new plays, each offense is just a combination of many offensive principles; pick and rolls, down screens, base screens, flares, post ups, isolations, give and go's.
Once I go through all the scenarios of each of the fundametal plays, I install advanced offensive sets, all the programming will be already done.
The way I saw the AI was going to be implemented is by simply making the players run a system of set plays that branch out.
I do not know so much about those sports, but in basketball, there is no freelancing of sorts. Even when a player is isolated, it is by design. Hence, all I have to do is set up plays that instruct players to be at certain spots on the court, then, I put in a if statement when the defense reacts. How is the defense going to react? Coaches settings.
Coaches settings might solve your problem. A coach will instill a certain philosophy and his players have to follow that philosophy. So if you run a Pick and Roll, a coach will make his players guard it a certain way(go over the screen, under, etc;) Then the If statement makes the offensive players see what the defense did and react accordingly based on their talents.
Basically, in sports simulations, I think the most important thing is to actually know a lot about the sport. I am a huge NBA fan and I know a whole lot about basketball, more than the average fan. So I know how to guard certain plays, and what teams run what offense.
Best part about basketball is that there arent any new plays, each offense is just a combination of many offensive principles; pick and rolls, down screens, base screens, flares, post ups, isolations, give and go's.
Once I go through all the scenarios of each of the fundametal plays, I install advanced offensive sets, all the programming will be already done.
I have never done AI, but I am doing some research for an RTS I'm going to start in a year or so. I'm not even going to touch neural networks until I have a solid understanding of finite state machines and fuzzy state machines. But, if you wanted to start with neural networks, then I'll just have to say you're a braver person than me.
Poor little kittens, they've lost their mittens!And now you all must die!Mew mew mew, mew mew mew mew!And now you all must die!-Pete Abrams
Quote:
Original post by Possumdude0
...I'll just have to say you're a braver person than me.
Well, I take that as a compliment, though one might could think it stands for "what a crazy person". I read one article about those nets and I think a simple feed forward net cannot be toooo hard to impliment. Although I have never done it, yet!
I just think its the perfect method to accomplish what I want to do.
@gentrinity
I also think of myself as someone who really understands what is going on in a soccer game. However, your approach looks a little different. In fact, this is one of the reasons I want to program a simulation. Because nearly all the other soccer simulations so far used those scripting methods. Of course you get beatiful results with it. Certain plays will look "just as" on TV, but is that really a simulation? Or is it more something like:
Each teams gets 10 chances to score in 15min. Depending on how good the playmaking player is those chances will more likely result in real chances. And those real chances will more likely succeed if the playing makeing an attempt to score has a good talent etc.
As I said, I think you can get beatiful results with that. But I am after a true simulation, where no scripting is involved and all the attributes of the team are known to the coach, or manager of each team.
At some point, if the game will ever reach that state!, the coach can give tactical guidlines, which the team, again depending on talent and attributes, can follow and increase the chance of winning.
My goal is an absolut transparent engine, that of course is also based on chance. Will the agent score should always be chance related, like that it is more realistic and fun!
Ok I hope my english is understandable maybe I should write my posting when I am sober ; )
regards
Woltan
Since you brought up coaches, there is something that people use that is sometimes referred to as the coach layer. Individual agents (players) will think about what to do for themselves... however, they don't necessarily colaborate well with what we would realize are either designed plays or group response to evolving situations. Those are things that are "coached" and practiced: "Hey guys... when this happens, you do this and I'll do that." Often, this is put into a higher level of AI that watches over the evolving game situation as a whole and "calls plays". These instructions are then fed down to the necessary players where they trigger states. Each player then knows that he is, for the moment, expected by the other players to be somewhere or do something. This seems like it would be the cohession to which you are referring.
Dave Mark - President and Lead Designer of Intrinsic Algorithm LLC
Professional consultant on game AI, mathematical modeling, simulation modeling
Co-founder and 10 year advisor of the GDC AI Summit
Author of the book, Behavioral Mathematics for Game AI
Blogs I write:
IA News - What's happening at IA | IA on AI - AI news and notes | Post-Play'em - Observations on AI of games I play
"Reducing the world to mathematical equations!"
Quote:
Original post by Woltan Quote:
Original post by Possumdude0
...I'll just have to say you're a braver person than me.
Well, I take that as a compliment, though one might could think it stands for "what a crazy person". I read one article about those nets and I think a simple feed forward net cannot be toooo hard to impliment. Although I have never done it, yet!
I just think its the perfect method to accomplish what I want to do.
@gentrinity
I also think of myself as someone who really understands what is going on in a soccer game. However, your approach looks a little different. In fact, this is one of the reasons I want to program a simulation. Because nearly all the other soccer simulations so far used those scripting methods. Of course you get beatiful results with it. Certain plays will look "just as" on TV, but is that really a simulation? Or is it more something like:
Each teams gets 10 chances to score in 15min. Depending on how good the playmaking player is those chances will more likely result in real chances. And those real chances will more likely succeed if the playing makeing an attempt to score has a good talent etc.
As I said, I think you can get beatiful results with that. But I am after a true simulation, where no scripting is involved and all the attributes of the team are known to the coach, or manager of each team.
At some point, if the game will ever reach that state!, the coach can give tactical guidlines, which the team, again depending on talent and attributes, can follow and increase the chance of winning.
My goal is an absolut transparent engine, that of course is also based on chance. Will the agent score should always be chance related, like that it is more realistic and fun!
Ok I hope my english is understandable maybe I should write my posting when I am sober ; )
regards
Woltan
See, I think that it just comes down to the fundamental differences between the two sports. I cannot see any need for self learning AI in a basketball game, and the reason is this;
At a high school level, players are thaught to handle situations in a freeze frame fashion. What a coach does is that he tells his players to stop running a play when it gets to a certain point and freeze, he then asks one player to look and analyze what his options are. He will usually have a few set amount of options available, and there really isnt a whole lotta move availabe. If a defender goes under the screen, then you choose this action.
I can see soccer being a bit more complicated than that.
Lastly, in basketball, everything is confined to a system. Like I said, there is no freelancing, everything must be done within the coaches specifications, he will already analize who has what strengths and execute from there. Now, if you want to randomly generate players and coaches and then let coaches decide the best strategy, thats a little more complicated, but if I were to build an NBA simulation, I would use scouting reports to program the teams tactics and use the actual plays the teams run, not randomly create them.
I can see where youre going with this, and it sounds nice, but like what other people have mentioned, its going to be hard either way. And if you can get the NN to work, where a team can be generated and automatically know how to play, you are one hell of a programmer.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement