Archived

This topic is now archived and is closed to further replies.

Any help required?

This topic is 5955 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, thanks for the offer. I''m trying to show that long-term potentiation in plastic neuron controllers can lead to homeostatic adaptation to perturbations from the environment. Basically I''d like to be able to show that transient features in the environment become intransient due to phylogenetically adapted plasticity in the controller of the simulated organism and that a tendency for internal stability leads to external stability and behavioural homeostasis.

Can you help?

Mike

Share this post


Link to post
Share on other sites
I admit, I am in tears of laughter and dear not repeat the above. :D Would this be biology by any chance??

Anyway, let''s start at the beginning. What specific data will be available for analysis and what information do you hope to receive from the network? Try to limit this as much as possible to limit the size of your network.

Share this post


Link to post
Share on other sites
quote:
Original post by Mathematix
Greetings fellow developers.

Should any require info on the specifics of neural nets, I''m at your service.


I would be interested in reading your thoughts about how you would apply ANN to the AI
decision-making needs of the typical First Person Shooter or Real Time Strategy game.

In other words, what AI decisions that have to be made in those games, would you think
to be good candidates for being practically solved using an ANN? And Why? For instance,
there is a need for pathfinding in both of these types of games. Would you consider that
decision to be a good ANN candidate? And if so, why? What about other AI decisions?

BTW, I think one of the reasons that ANNs are rarely found used in computer games is
that developers are not able to find places to effectively use them. Perhaps opinions
such as yours might give someone an idea of a good way to deploy an ANN in a game?

Thanks,

Eric

Share this post


Link to post
Share on other sites
Hello! Nice to see a willing person around
I''d like to second Geta on his question, that would be interesting for me and my Master''s... although I have another question that I can''t find a simple answer to :

How on Earth do you know how many layers / how many nodes per layer to put ? I totally understand the idea of weights, heck, I even understand the idea of splitting the space of samples in two until each class can be in its own little part of the space (forgive the certainly awful phrasing here).
But what is the thing that makes you say : "well, we need another node on this layer, see?" ?? (I have a vagure memory from a book that actually explained that the layers served to split the space in two, n times, where n would be the number of layers; but nothing about the nodes on a layer...

thanks for any insight you might give



Sancte Isidore ora pro nobis !

Share this post


Link to post
Share on other sites
(Before you start reading, bit about academic homeostasis at the top, reply about ANN''s in games half way down. Wouldn''t want you to bore yourselves now would I)

I only wrote that first reply because it''s what I''m working on at the moment for my dissertation and buggered if I can get it to work ;-). Homeostasis, btw, is something I feel is very important in neural networks and is the basis of learning during the lifetime of an agent. To quickly spill my guts and get on with a more game related discussion, if you imagine that an agent is born into an environment that is always the same, then no learning is necessary and all adaptation can be achieved phylogenetically (by evolution).
The idea of using homeostasis as a behavioural mechanism is that the agent may have certain internal variables that must remain within bounds such as heat, heart rate, pain level, hunger levels etc for the agent to continue functioning. If the organism is evolved so that adaptation in the environment is homeostatic, so that the agent''s behaviour keeps those internal variables within bounds then adaptation and learning are adjustments to behaviour due to transient (i.e. non-permanent) properties of the environment (where predators live, general climate changes), where changes to behaviour are aimed at causing the behaviour to adjust to _continue_ to keep the variables within bounds.
If adjustments to internal parameters (neuron firing rates, synaptic strengths) only occur when the essential variables are out of bounds, then evolving for internal stability while evolving for a specific behaviour should, in theory, evolve for an organism that retains external, behavioural stability by retaining internal stability in a changing environment.

Imagine an RTS AI has inputs from the world and outputs to actions, everything is going smoothly and its troops are _not_ being slaughtered (essential variables are in bounds), then it doesn''t adjust its evolved behaviours.
Suddenly the human player retaliates, the AI''s troops are being killed quicker than sin and the essential variables disappear out of bounds, then the AI''s behaviour is adjusted by rules evolved to change in a direction that will retain those essential variables within bounds. Hopefully, by adjusting its behaviour to regain internal stability, it''s being slaughtered is halted and it gets back into a more stable defensive or offensive position.

Sod it, I''ll just post my dissertation here when I''ve finished it.

Anyway...

On the subject of ANN''s in computer games (at last).
The problem with ANN''s is that they are an abstracted form of AI. They''re not easily human understandable finite state rules, they''re numbers connected to other numbers that give a numeric output. With a final state rule you can read it, have an expected event, see the event not occur, re-read the rule, see your mistake and debug. With ANN''s you can look at the network, see some numbers, stare at the numbers, cry a bit and go down the pub. If it doesn''t evolve to work you''re buggered.
The good thing about ANN''s is they are very easily evolvable as they are numeric values with a smooth genotype-phenotype mapping. With logical rules, evolving an answer has a very brittle fitness landscape. This means that a small change in the logical statement (think LISP, adding or removing a tree) can have huge phenotypic effects. This, in evolution, is bad and can lead to low local optima with no easy way of escape. Rolling hills fitness landscape good, manhatten skyline fitness landscape bad.

How to use ANN''s for an FPS then? Well, if you have a number of logical facts as inputs such as position of guns on the level, distance of agent from all these guns, position of enemies on level, their weapons, your health, their speed, your speed etc. you could, in theory have this as an input to a neural network and your next action as an output. Some kind of polling network, maybe, 25 possible next actions (find health, find sniping rifle, find bfg-2000, find cover, just f**cking run etc) then the one that got the highest score from the network could be kicked in to work with your handwritten code for actually performing the actions. You could, of course, have 10 outputs of amount to turn left, amount to turn right, gun to use, amount to move forward etc. and use them directly but that is unlikely to work, on a hunch, without a very complex, continuous-time (i.e. internal state) network that could be written by hand much quicker. I''m not saying it would work, but I''d have a backup plan. Perhaps even have a sub-sumption architecture with actions such as move from A to B as the base levels and goals, such as find health as the later evolved levels, all working together. Sounds a bit harsh if you ask me, but it could work if your company gives you the time for R&D.

So, ANN''s then, use them as heuristics for your next move, not necessarily directly without any other form of AI.

As to the number of layers? Personally I''d ditch the feed-foward network, evolve a fully connected network, possibly including recurrence, allow for the number of neurons to be increased by evolution i.e. a variable length genotype, but have a neutral addition mechanism, such as add the neuron but make all of the connections from it have zero weighting, so it makes no difference initially but can have its weights evolved onwards, letting evolution decide.

This is a long post, I''m not feeling great, so, goodnight ;-)

Mike

Share this post


Link to post
Share on other sites
quote:
Original post by MikeD
Hi, thanks for the offer. I''m trying to show that long-term potentiation in plastic neuron controllers can lead to homeostatic adaptation to perturbations from the environment. Basically I''d like to be able to show that transient features in the environment become intransient due to phylogenetically adapted plasticity in the controller of the simulated organism and that a tendency for internal stability leads to external stability and behavioural homeostasis.

Can you help?

Mike


ROFLMAO: You''re a cruel, cruel man Mike Ducker! hehehe

Share this post


Link to post
Share on other sites
FAO: Geta.

Hello Geta,

The first thing to remember about neural networks is that they were specifically created to search for frequently occuring patterns in examples presented to them. Neural nets are composed of what are called ''feature detectors'' that are designed for this specific purpose. The problem that you wish to solve for your first-person shooter is primarily a path finding problem, for which neural networks are not ideal.

Another branch of AI that is regularly used for such problems is A*. This algorithm involves dividing up the environment into a set of locations/vertices, and using these locations to determine the lowest cost (distance) to get to the desired location. This location could be a player him/herself, or the location of the enemy flag in a CTF game. The only real application for neural networks in such a game would be if you wished for the other bots to learn the movement patterns of players and other bots around the arena. This is such a complex, and time consuming thing to achieve that I am trying my best to delay my first attempt at solving such a problem for as long as possible!

Hope this answers your question.



Regards,
Mathematix.

Share this post


Link to post
Share on other sites
FAO: ahw.

Greetings,

I gather you are talking about linear and non-linear decision boundaries. The golden rule when deciding what you wish for a network to learn is that both the inputs and outputs are definite and concise. Definite being ''to the point'' and concise being ''in very short terms''. Adhering to these basic principles ensures (before starting your network design!) that your decision boundary is linear, and hence, the network able to classify patterns that it recognises.

There are a few offerings of formulae that help you to approximate the number of hidden layers required and the number of neurons per layer. Alas, sometimes with AI, an approximation can be pretty useless if your training examples are ambiguous. The method for determiniting a suitable number of hidden layers, etc, would be to start with a fairly small number and build on these, and use back propagation with supervised learning (that with an average squared error, and one of the easiest to implement). Of course, having an average squared error is the best way to ensure that there is convergence in your network. Also, beware of what you set your learning rate parameter, and momentum constant to, as these values set greatly affect the performance of the network.

In summary:

1) Is the problem solvable by a neural net? Do a linear decision boundaries exist with which the network can classify examples?
2) Limit the number of inputs and outputs to your net.
3) Choose a supervised learning algorithm to keep track of events.
4) Be very careful how you choose your learning rate parameter and momentum constant values.

Some great detailed tips are offered in the masters-level neural nets text, entitled:

"Neural Networks: A comprehensive foundation"
Author: Simon Haykin
ISBN: 0-02-352761-7
Publisher: Prentice-Hall.

This is a very detailed text that is not suitable for the beginner, but as you are a masters student, it should make valuable reading!

Enjoy!

Regards,
Mathematix.

Share this post


Link to post
Share on other sites
quote:
Original post by Mathematix
FAO: Geta.

Hello Geta,

The first thing to remember about neural networks is that they were specifically created to search for frequently occuring patterns in examples presented to them. Neural nets are composed of what are called ''feature detectors'' that are designed for this specific purpose. The problem that you wish to solve for your first-person shooter is primarily a path finding problem, for which neural networks are not ideal.

Another branch of AI that is regularly used for such problems is A*. This algorithm involves dividing up the environment into a set of locations/vertices, and using these locations to determine the lowest cost (distance) to get to the desired location. This location could be a player him/herself, or the location of the enemy flag in a CTF game. The only real application for neural networks in such a game would be if you wished for the other bots to learn the movement patterns of players and other bots around the arena. This is such a complex, and time consuming thing to achieve that I am trying my best to delay my first attempt at solving such a problem for as long as possible!

Hope this answers your question.



Regards,
Mathematix.


Sorry, it did not.

Thanks anyway,

Eric

Share this post


Link to post
Share on other sites
Heh. Mathematix, Geta is, uh, quite knowledgable in the field, and was looking for something a little more detailed. No doubt just to test you

(Note profile: Job Title Computer Game AI Consultant. He is also a ''Major Player in the Gaming Industry'', at least according to http://www.dperry.com/eric-dybsand.htm. Sorry Eric, had to be said )

Share this post


Link to post
Share on other sites
quote:
Original post by Kylotan
Heh. Mathematix, Geta is, uh, quite knowledgable in the field, and was looking for something a little more detailed. No doubt just to test you

(Note profile: Job Title Computer Game AI Consultant. He is also a ''Major Player in the Gaming Industry'', at least according to http://www.dperry.com/eric-dybsand.htm. Sorry Eric, had to be said )


To be clear, I was not trying to test Mathematix.

I am genuinely interested in what a ANN-Expert would think are the AI Decisions in FPS
and RTS games that make good canidates to be solved using ANNs. As I mentioned in
my original question, I believe one of the reasons ANNs are rarely used in commercial
computer games is that developers have not been able to find good uses for them.

Perhaps this could change if we got the ANN experts to offer up opinions on where ANNs
could be useful?

Eric

Share this post


Link to post
Share on other sites
Well I did post a reply about ANN''s in computer games. It did have the boring homeostasis bit at the top but I left instructions on where to find my, oh-so-important opinion. Perhaps my ideas were so foolish as to not be worth a "pah and have done with you varlet" reply.

While I''m not an "ANN''s in FPS" expert I am pretty competent in that I''ve written AI for computer games professionaly and I know a reasonable amount about ANN''s from academia.

Mike

Share this post


Link to post
Share on other sites
quote:
Original post by Geta
[quote]Original post by Kylotan
Heh. Mathematix, Geta is, uh, quite knowledgable in the field, and was looking for something a little more detailed. No doubt just to test you

(Note profile: Job Title Computer Game AI Consultant. He is also a ''Major Player in the Gaming Industry'', at least according to http://www.dperry.com/eric-dybsand.htm. Sorry Eric, had to be said )


To be clear, I was not trying to test Mathematix.

I am genuinely interested in what a ANN-Expert would think are the AI Decisions in FPS
and RTS games that make good canidates to be solved using ANNs. As I mentioned in
my original question, I believe one of the reasons ANNs are rarely used in commercial
computer games is that developers have not been able to find good uses for them.

Perhaps this could change if we got the ANN experts to offer up opinions on where ANNs
could be useful?

Eric


My statements require no further analysis, I answered the question posed. There was no need for me to go into the specifics of neural networks if it was going to lead to exactly what I had just stated (QEF). As anyone who has come across neural nets will know, it is near impossible to accuratly describe in sufficient detail why neural nets would be unsuitable for specific applications in one posting. The features of neural nets architectures are numerous and focus on different ''methods'' for solving similar problems. I''m sure that it is possible to develop a neural net that would be suitable for any type of AI in game development, but if you wish to reduce the computational load on your system, it would be unwise to use such an architecture. More efficient methods exist.

Regards,
Mathematix.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Original post by MikeD
(Before you start reading, bit about academic homeostasis at the top, reply about ANN''s in games half way down. Wouldn''t want you to bore yourselves now would I)

I only wrote that first reply because it''s what I''m working on at the moment for my dissertation and buggered if I can get it to work ;-). Homeostasis, btw, is something I feel is very important in neural networks and is the basis of learning during the lifetime of an agent. To quickly spill my guts and get on with a more game related discussion, if you imagine that an agent is born into an environment that is always the same, then no learning is necessary and all adaptation can be achieved phylogenetically (by evolution).
The idea of using homeostasis as a behavioural mechanism is that the agent may have certain internal variables that must remain within bounds such as heat, heart rate, pain level, hunger levels etc for the agent to continue functioning. If the organism is evolved so that adaptation in the environment is homeostatic, so that the agent''s behaviour keeps those internal variables within bounds then adaptation and learning are adjustments to behaviour due to transient (i.e. non-permanent) properties of the environment (where predators live, general climate changes), where changes to behaviour are aimed at causing the behaviour to adjust to _continue_ to keep the variables within bounds.
If adjustments to internal parameters (neuron firing rates, synaptic strengths) only occur when the essential variables are out of bounds, then evolving for internal stability while evolving for a specific behaviour should, in theory, evolve for an organism that retains external, behavioural stability by retaining internal stability in a changing environment.

Imagine an RTS AI has inputs from the world and outputs to actions, everything is going smoothly and its troops are _not_ being slaughtered (essential variables are in bounds), then it doesn''t adjust its evolved behaviours.
Suddenly the human player retaliates, the AI''s troops are being killed quicker than sin and the essential variables disappear out of bounds, then the AI''s behaviour is adjusted by rules evolved to change in a direction that will retain those essential variables within bounds. Hopefully, by adjusting its behaviour to regain internal stability, it''s being slaughtered is halted and it gets back into a more stable defensive or offensive position.

Sod it, I''ll just post my dissertation here when I''ve finished it.

Anyway...

On the subject of ANN''s in computer games (at last).
The problem with ANN''s is that they are an abstracted form of AI. They''re not easily human understandable finite state rules, they''re numbers connected to other numbers that give a numeric output. With a final state rule you can read it, have an expected event, see the event not occur, re-read the rule, see your mistake and debug. With ANN''s you can look at the network, see some numbers, stare at the numbers, cry a bit and go down the pub. If it doesn''t evolve to work you''re buggered.
The good thing about ANN''s is they are very easily evolvable as they are numeric values with a smooth genotype-phenotype mapping. With logical rules, evolving an answer has a very brittle fitness landscape. This means that a small change in the logical statement (think LISP, adding or removing a tree) can have huge phenotypic effects. This, in evolution, is bad and can lead to low local optima with no easy way of escape. Rolling hills fitness landscape good, manhatten skyline fitness landscape bad.

How to use ANN''s for an FPS then? Well, if you have a number of logical facts as inputs such as position of guns on the level, distance of agent from all these guns, position of enemies on level, their weapons, your health, their speed, your speed etc. you could, in theory have this as an input to a neural network and your next action as an output. Some kind of polling network, maybe, 25 possible next actions (find health, find sniping rifle, find bfg-2000, find cover, just f**cking run etc) then the one that got the highest score from the network could be kicked in to work with your handwritten code for actually performing the actions. You could, of course, have 10 outputs of amount to turn left, amount to turn right, gun to use, amount to move forward etc. and use them directly but that is unlikely to work, on a hunch, without a very complex, continuous-time (i.e. internal state) network that could be written by hand much quicker. I''m not saying it would work, but I''d have a backup plan. Perhaps even have a sub-sumption architecture with actions such as move from A to B as the base levels and goals, such as find health as the later evolved levels, all working together. Sounds a bit harsh if you ask me, but it could work if your company gives you the time for R&D.

So, ANN''s then, use them as heuristics for your next move, not necessarily directly without any other form of AI.

As to the number of layers? Personally I''d ditch the feed-foward network, evolve a fully connected network, possibly including recurrence, allow for the number of neurons to be increased by evolution i.e. a variable length genotype, but have a neutral addition mechanism, such as add the neuron but make all of the connections from it have zero weighting, so it makes no difference initially but can have its weights evolved onwards, letting evolution decide.

This is a long post, I''m not feeling great, so, goodnight ;-)

Mike


??????????? How you you get tiny quotes? ???????

Are you having me on Mike? :D Yes neural networks are abstracted from AI because they do not resolve logical expressions to come to conclusions, they instead modify a set of internal parameters to come up with a ''matrix'' which models the many possible conclusions that the network can come to. A fully connected network wouldn''t really do anything useful. Since synaptic weights are used to compute products during the training phase of a net, and 0 x n = 0 (for any value of n), the synaptic weights themselves will not be updated and equal to zero. In other words, your network will have a zero IQ.

Why do I get the feeling you know this??? You also know that the size if your network will be massive!

Regards,
Mathematix.

Share this post


Link to post
Share on other sites
Damn it, then those agents performing phototaxis and landmark navigation on my computer must be the most functional dumb-asses I''ve ever seen.

Of course any network architecture that connects inputs to outputs can be used functionally and feed-foward networks are far from the be-all and end-all of neural nets. It''s the connections in a network that make the difference, not the number of neurons. So to have a limited number of neurons, all interconnected, can be of equal (perhaps more, perhaps less) use as a feedforward architecture with the same number of connections, depending on the problem.

If you''re argument is that you can''t train non-feedfoward architectures, then you''re right, but only if you''re talking about back propagation. You can evolve the synaptic efficacies just fine using a ga. In fact feedfoward architectures are only trainable because their architecture is so simple and mathematically tractable, which suggests that the dynamics of the system can be nothing but simple. No cross layer synapses, no recurrence, no dynamic system potential.
Not that I have anything against back-prop, it''s just that it does gradient descent error reduction, which dives into the nearest local optima it can. Okay, so you can use momentum (and other mechanisms) to prevent that, but back-prop only comes up with straight forward solutions. Not the novel potential of more interesting architectures.

I even once starting building networks out of Lindenmayer systems to see what would happen, but only tried it on phototaxis, which is the simplest of simple things. Basically I found that the more inputs connected to the network (it was possible that the branches would connect anything to anything else), the better it functioned. Maybe I''ll try it on something difficult one day.

I''m sure you have plenty to say on these matters and I look forward to hearing it :-).

Cheers,

''Highliy opinionated'' Mike

Share this post


Link to post
Share on other sites
quote:
Original post by Mathematix
My statements require no further analysis, I answered the question posed. There was no need for me to go into the specifics of neural networks if it was going to lead to exactly what I had just stated (QEF). As anyone who has come across neural nets will know, it is near impossible to accuratly describe in sufficient detail why neural nets would be unsuitable for specific applications in one posting. The features of neural nets architectures are numerous and focus on different ''methods'' for solving similar problems. I''m sure that it is possible to develop a neural net that would be suitable for any type of AI in game development, but if you wish to reduce the computational load on your system, it would be unwise to use such an architecture. More efficient methods exist.

Regards,
Mathematix.


Actually, the question posed was also about all the other AI decisions that are made in FPS and
RTS games, and not just pathfinding (which was simply offered as an example).

From your answer above, I get the feeling that you are offended in some way. If so, then you have
my apology. Offending you was not my intent. I had geniune interest in learning if an ANN Expert had
new ideas about how to best use ANNs in these types of games. I still do.

So in summary, is it your opinion that there are more efficient methods (other than ANNs) for providing
all AI Decision-Making in FPS and RTS games? And thus, that may be a key reason why ANNs are
rarely found implemented in commercial computer games?

Eric

Share this post


Link to post
Share on other sites
quote:
Original post by MikeD
Well I did post a reply about ANN''s in computer games. It did have the boring homeostasis bit at the top but I left instructions on where to find my, oh-so-important opinion. Perhaps my ideas were so foolish as to not be worth a "pah and have done with you varlet" reply.

While I''m not an "ANN''s in FPS" expert I am pretty competent in that I''ve written AI for computer games professionaly and I know a reasonable amount about ANN''s from academia.

Mike


I get the impression that I somehow offended you too. If so, you have my apology.

I read your long "boring homeostatsis" post, and with all the "in theory", "unlikely to work"
"have a backup plan" comments you made, I got the impression your post was simply wishfull
thinking rather than actual suggestions. Maybe I missed something?

Since you have "written AI for computer games professionaly" and you "know a reasonable
amount about ANNs from academia" then maybe you have actually implemented ANNs in
commerical computer games? If so, then for what types of games, and how did you use
the ANNs in those games? What kinds of decisions did you have the ANNs make? Were
the ANNs still performing learning after you shipped?

Thanks,

Eric

Share this post


Link to post
Share on other sites
You only offended me by making me feel unanswered and unloved .

Seriously though, I did specifically state my backgrounds separately because I have never shipped a game with ANN''s in them, nor ones using GA''s or any of that malarky. I have created autonomous agents for simple tasks using ANN''s and GA''s, but only in an academic setting, I have also shipped games using fuzzy logic and your standard tried and tested AI methods for doing seemingly intelligent behaviour. I have, as I''m trying to make clear, never done both.

Your statement was

"I would be interested in reading your thoughts about how you would apply ANN to the AI decision-making needs of the typical First Person Shooter or Real Time Strategy game."

I replied, merely stating that using this kind of technology might lead to a dead end, might not work in time and that it would probably be difficult to implement without a more standard AI system running with it.

It might be useful to discuss what exactly forms the problems of an FPS game and why an ANN system should/shouldn''t be used to try to solve those problems. You have a far reaching background in this stuff Geta, so perhaps you could elucidate us with your opinions, even if they''re not what I (too much idealism, not enough pragmatism) or Mathematix would like to hear.

I am not pissed at you, I''ve known your background for some time, respect you and would value your opinion.

There are obvious facets of any game that have well defined solutions. A* for routing problems is an obvious one. Of course, I would argue here (and test, when I get my next job and am not so busy) that you could use GA''s (I know we''re talking about ANN''s here, but a little sidetracking won''t hurt anyone) to optimise the heuristics for various behaviours, before shipping. If you wanted heuristics to find the best path through a battlefield that won''t get you killed then a logical analysis might find you some good solutions. Evolution, on the other hand, might find you great soulutions as how different factors effect the probabilities of dying along each path and at each node, in a variety of situations.
Once you have a general path to the goal sorted out, then you still have to traverse it. As games don''t come in block worlds any more, your general path can only tell you where to head for and in a dynamic world there will be changing and moving obstacles along the path, which you will not necessarily want to recalculate again and again, per pixel, to complete the route.

So on a small scale you would want your agents to survey the local area and not get trapped behind each other or moving scenery. You could have simple rules defining whether to turn left or right under certain circumstances, to try and get passed the blockage, but if everything did the same thing in, approximately, the same circumstances, the illusion of intelligence would be lost (one reason I hate the AI in Dune 2 is things like this...harvester AI makes my skin crawl...loved the game though). By having the current state of the immediate environment passed to the agent''s evolved ANN (by line firing of the 90 degrees in front of the agent for several metres ahead, perhaps once every second or less), the reactions and decisions of which way to turn would be more individual due to no two situations being exactly the same. The agent would approach gaps between buildings or other agents to attempt to move towards its next node point and if other agents, who are stationary, had different ANN''s due to their status (still vs not moving) they could easily (and I have done this for a simple 2D world) be evolved to move out of the way, within boundries.

Of course there are other ways to achieve this reactive layer of action, but ANN''s are one that may prove promising compared to a more mechanistic approach. I''d have to use a profiler to compare speeds, but as ANN''s can be translated into linear equations I''m sure the maths co-pro would be fine.

Anyway, that''s one aspect of an FPS you could achieve with ANN''s, your thoughts?

Mike

P.S. One aspect of this kind of communication I hate is that you''re never sure how other people are phrasing their questions, in anger or with an interested smile on their face, without using a million of these buggers. Mostly I''m doing the latter .

Share this post


Link to post
Share on other sites
What have I done! I have spawned a heavily opinionated debate!

This could go on forever. I personally believe that you really cannot accuratly predict the performance of any of the AI methodologies until they have been tried and tested. Bringing in discussions of genetic algorithms and fuzzy logic systems does little to resolve the debate on which is best to use. Personal experience is valuable; analysis better. The relative performance of these methodologies is not only dependant on their architectures, but also on the specifics of the game being designed: one person''s FPS may perform better with a neural net., while another with A*. Who''s to know?

Regards,
Mathematix.


Regards,
Mathematix.

Share this post


Link to post
Share on other sites
quote:
Original post by Mathematix
What have I done! I have spawned a heavily opinionated debate!

This could go on forever. I personally believe that you really cannot accuratly predict the performance of any of the AI methodologies until they have been tried and tested. Bringing in discussions of genetic algorithms and fuzzy logic systems does little to resolve the debate on which is best to use. Personal experience is valuable; analysis better. The relative performance of these methodologies is not only dependant on their architectures, but also on the specifics of the game being designed: one person''s FPS may perform better with a neural net., while another with A*. Who''s to know?

Regards,
Mathematix.


Regards,
Mathematix.


I was actually hoping that any opinions offered, were coming from an experience of
having implemented (or at least tried to implement) ANNs to handle similar decisions.

I also agree with you, in that it takes implementation to determine the success or
failure of any technique. My posting history mentions that often.

So, with using MikeD''s suggestion, how about if we give this another go?

Eric

Share this post


Link to post
Share on other sites
quote:
Original post by MikeD

It might be useful to discuss what exactly forms the problems of an FPS game and why an ANN system should/shouldn''t be used to try to solve those problems.




Excellent idea. Unfortunately, I''m sorely pressed for time this AM so I can''t offer much this
session. However, I will be back later or tommorrow. In the meantime, you have made an
excellent start with your points about pathfinding and avoiding getting blocked. Perhaps it
would be handy to try to think in terms of specific questions that an AI must get answered
in order to make its next move on the current frame? Like what do I research next? What
should I build next? Where should I camp? Should I camp? etc.

Eric

Share this post


Link to post
Share on other sites
Okay, let''s dive into picking construction sites for an RTS (seeing as your suggestions were drifting away from just FPS games).
I think in general it seems that there''s no supervised training method feasible for this kind of application. There''s no way of saying what is the right thing to do in a situation, only relaitvely good solutions compared to relatively bad. Otherwise you''d be training an ANN based either on human defined metrics by visual means or writing some logical rules to define the quality of a choice. If you do the latter then just use that as the decision making mechanism and forget the ANN''s ;-).

Okay, so you have a pseudo-blocks world in a typical tile-based RTS. This means you have details about a discrete number of tiles and their status (rocks, buildable land, trees). These factors could be the inputs of a neural net, with several inputs per tile defining key information. The number of tiles searched around a central point would define the size of the networks inputs, with a single numeric value output describing the quality of any given site.
By evolving the networks, using repeated battles as the fitness quotient, you could end up with a good network for deciding the quality of any given site for particular buildings. A similar polling system for what to build next could take into account all the buildings already built (on yours and the enemies sides) and decide on the best building to construct next in a similar manner.

I know this is fairly vague, but we are talking general principles.

Mike

Share this post


Link to post
Share on other sites