Not to be negative, but I don't think kryotech's idea will work as described. It is possible in principle to use an ANN to "categorize the player tactics", although I would like to know what type of ANN they are planning to use, what kind of inputs it will have and what the outputs might look like. The part where the ANN will "develop counters" to those tactics sounds like some sort of fantasy.
People often have inflated expectations as to what ANNs can do, in part because early practitioners hyped them beyond the bounds of reason. I agree with this quote from A. K. Dewdney: "Although neural nets do solve a few toy problems, their powers of computation are so limited that I am surprised anyone takes them seriously as a general problem-solving tool." If anyone shows me how they can be used to solve real problems (e.g., if kryotech's group manages to get their idea working), I am willing to change my mind.
Artificial Neural Networks
September 17, 2009 10:38 AM
There is a small but important practical use for ANN in games, that is speech recognition. Some of the latest games started to implement command input directly from human voice, quite funny to yell things in the mic if you ask me. There is a powerful SDK to easy implement it in a game but don't remember the name and it's not free.
Quote: Original post by LeChuckIsBack
There is a small but important practical use for ANN in games, that is speech recognition. Some of the latest games started to implement command input directly from human voice, quite funny to yell things in the mic if you ask me. There is a powerful SDK to easy implement it in a game but don't remember the name and it's not free.
AFAIK, most modern speech recognition is based on hidden Markov models.
alvaro
No offense taken, cause as I had said earlier, it's really experimental, and we have just started looking into this idea. In fact, I really do appreciate your feedback on this, and if it is a hopeless idea, then we should stop pursuing it. Thanks for your feedback!
No offense taken, cause as I had said earlier, it's really experimental, and we have just started looking into this idea. In fact, I really do appreciate your feedback on this, and if it is a hopeless idea, then we should stop pursuing it. Thanks for your feedback!
No one expects the Spanish Inquisition!
I've worked with neural networks for classification and the main issue is that they require a *lot* of training for good results (and not to mention CPU power and memory).
@kryotech: as I see it, there are two parts to the problem.
1. Recognizing player tactics. You could experiment with a NN for this (the training would have to happen offline, before shipping your application).
2. Responding to the tactic. I would approach this using fuzzy logic techniques with factors determined through play-testing. You can allow some form of adaptability (if a specific AI response works, try using it again; if not, scrap it).
The important point is to give the *illusion* of intelligence, rather than trying to implement "real" intelligence. Compare Starcraft with Black & White: the first employs known and tested tactics, which are fun and challenging; the latter employs "advanced" learning techniques (1M lines of code!) which result in boring or even downright idiotic behavior.
It doesn't really matter *how* you implement this, as long as the player has fun. Don't fall into the trap of missing view of the goal(*): to make a fun game. Pull this off, and you'll likely have a commercial success at your hands.
(*) obviously, scientific/research applications are another matter entirely.
The reason why I am focusing on this point is because I have first hand experience of a NN gone wrong. The manager thought a NN was a good fit for the application. I had my doubts but didn't speak up. The NN proved impossible to train to the level we wanted and the application flopped. (For the record, a trivial state machine would have worked but the manager liked buzzwords and the rest is history...)
@kryotech: as I see it, there are two parts to the problem.
1. Recognizing player tactics. You could experiment with a NN for this (the training would have to happen offline, before shipping your application).
2. Responding to the tactic. I would approach this using fuzzy logic techniques with factors determined through play-testing. You can allow some form of adaptability (if a specific AI response works, try using it again; if not, scrap it).
The important point is to give the *illusion* of intelligence, rather than trying to implement "real" intelligence. Compare Starcraft with Black & White: the first employs known and tested tactics, which are fun and challenging; the latter employs "advanced" learning techniques (1M lines of code!) which result in boring or even downright idiotic behavior.
It doesn't really matter *how* you implement this, as long as the player has fun. Don't fall into the trap of missing view of the goal(*): to make a fun game. Pull this off, and you'll likely have a commercial success at your hands.
(*) obviously, scientific/research applications are another matter entirely.
The reason why I am focusing on this point is because I have first hand experience of a NN gone wrong. The manager thought a NN was a good fit for the application. I had my doubts but didn't speak up. The NN proved impossible to train to the level we wanted and the application flopped. (For the record, a trivial state machine would have worked but the manager liked buzzwords and the rest is history...)
[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]
Fiddler
Well, I guess I ended up gaining something from this forum. Thanks for your advice, that really does help us a lot. Thanks for giving us a sense of how our idea could work out. Best of luck!
Well, I guess I ended up gaining something from this forum. Thanks for your advice, that really does help us a lot. Thanks for giving us a sense of how our idea could work out. Best of luck!
No one expects the Spanish Inquisition!
Its all in the name. Consider the names of the two most popularized ML techniques. Genetic Alogrithim based on evolution and Neural network based on the brain. Anyone who learns these techniques must be smart! I bet if I made a hare brained simple algorithm (linked list)- and gave it a fancy biology based name like Stochastic Mitochondrial Networks based on the Immune system everyone would write books on it.
Also this forum has no FAQ or stickied informant so every such repeat question on how to come up with an unbeatable A* using ANNs is deserved. Just saying.
Also this forum has no FAQ or stickied informant so every such repeat question on how to come up with an unbeatable A* using ANNs is deserved. Just saying.
Quote: Original post by Daerax
I bet if I made a hare brained simple algorithm (linked list)- and gave it a fancy biology based name like Stochastic Mitochondrial Networks based on the Immune system everyone would write books on it.
No, you should name your algorithm after Albert Einstein. It's common knowledge that he was really smart.
So people will think: If I use his algorithm, my program will be really smart as well.
Quote: Original post by alvaroI agree with this quote from A. K. Dewdney: "Although neural nets do solve a few toy problems, their powers of computation are so limited that I am surprised anyone takes them seriously as a general problem-solving tool." If anyone shows me how they can be used to solve real problems (e.g., if kryotech's group manages to get their idea working), I am willing to change my mind.
That quote couldn't be more wrong. ANN applications abound in hard science, both research and commercial. One recent result that comes to mind is in sub-atomic particle physics:
T. Aaltonen et al., “Measurement of the top quark mass with dilepton events selected using neuroevolution at CDF,” Physical Review Letters, 2009
A simple google search would give you ANN applications in robotics and computer vision like:
http://www.nasa.gov/vision/universe/roboticexplorers/robots_like_people.html
Not to mention there is a post above with 4 popular commercial games that use ANNs. I'd say those qualify as "real problems". BTW, you might want to stop quoting that guy. His statement approaches "the world is flat" levels of wrongness. =)
[Edited by - EJH on September 18, 2009 4:05:45 PM]
Quote: Original post by SneftelQuote: Original post by frogtagThat's because it doesn't have any. Don't be fooled by the word "neural". ANNs have precisely nothing to do with how brains work. They are one tool in a quite well-stocked toolbox of machine learning techniques, and one which is not appropriate for all (or even most) AI approaches.
But I don't really understand the practical uses of ANNs in game programming, in regards to its ability to potentially mimic human thinking.!Quote: At the moment I don't see the point in an ANN unless your interest is purely ANN research!Situations where ANNs really are the best tool for the job are uncommon, but they DO exist. Until one knows the alternatives, though, it's a bad idea to assume that ANNs are the way to go. SVM and kNN are both more likely to produce good classifier results, which is what most people (are trying to) use ANNs for.
Actually, many studies suggest ANN can be used quite well to model biological "thinking", as far as it can be actually tested. ANN can be trained to play chess, drive car, solve equations, recognize language or respond to visual patterns. In theory ANN could be trained to pass all the tests and in effect perfectly mimic human intelligence, even if only just to fool everyone by always providing adequate response according to previous training.
However, in theory, ANN could also learn to adapt and respond to situations it was not trained for, according to similarity of that situation to some other situation AI was trained for. So, in theory, ANN could be able to handle any logical problem of any kind, where a chance of success would depend on amount of training given for particular or similar situation. Just like with humans.
It's all about training, trial and error. Learning provides means to evolution of this microcosms, which may lead to specific adaptation, uniqueness or individuality. Quite interesting, that. Anyhow, computation is parallel so reaction time can be minimal even with very high input resolution, which is what gives biological brain a capability to process visual stimuli as high-resolution images in real-time.
I know some Quake bots are able to learn maps and adapt their play-style to particular level geometry, placement of weapons and power-ups, but also to consider human-player actions before making a final decision. I'm not know if any of them use anything like ANN to achieve this, but it seems as a good example where and how this can be done, similar to path-finding in racing games mentioned above.
In conclusion, the key words are "adaptivity via trial and error", so if you require such AI and don't plan to train it from zero, you will be needing to implement some kind of regular AI anyway. Though, once properly trained ANN might prove more efficient and smarter AI algorithm than regular, hard-coded one. The real trick is how to train it.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement