• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
sion5

Neural Network - Discussion

103 posts in this topic

For some reason its not allowing me to run. It halts about 30 seconds from running. The app looks well made I would really like to see it working :-)
0

Share this post


Link to post
Share on other sites
Quote:
Original post by sion5
Does anyone have a small game that has AI based on the "conventional" way that would be willing to let me write my own AI controller using NN's? Obviously you will take all credit for the game, all im looking to achieve is a set of results to compare and evaluate for my project.


Robocode. It was practically made for this. Sorry, I haven't read the rest of the thread so I don't know if someone has mentioned it.
0

Share this post


Link to post
Share on other sites
Read the README file, below. Most problems are solved there.

The stall you see is due to the GA running in the background. Essentially the visualization only shows the best PacMan for the current generation, and then the GA runs. For each member of the population, it has to run a simulation of the game which takes some time even in the absence of graphical updates and with some extra optimizations.

-Kirk

Quote:

AIPac
Robert Kirk DeLisle
12 Feb 2008

--------------
Plain English:
--------------

The Big Picture
---------------

A neural net controls PacMan's movements through the maze and you can control the types of inputs going into the PacMan. The default version associated with the executable has no ghosts and uses a Window around PacMan with a radius of 4 tiles. This results in four tiles in each direction around him, plus the two tiles in each direction that he occupies, or 4+4+2 (4 to the right, 4 to the left, 2 for PacMan) left/right and up/down. This gives 100 total tiles. I also have the tiles that PacMan covers removed from this set, so you get 96 inputs.

Each tile can have 3 possible inputs - 1 for ghosts (-1 if a baddie, 0 if no ghost there, and 1 if a blue one), 1 for a dot/wall (-1 if there's a wall, 0 if nothing there, and 1 if a dot is there), and 1 for a pellet (0 for no pellet, 1 for a pellet). The default version you have has no ghosts (you can control the number of ghosts in the input file), so you have dots/walls and pellets as inputs for each tile. The grand total is now 96 * 2 or 192 inputs.

At each step that PacMan takes, the neural network is evaluated. The net has 4 outputs, one for each direction (up, down, left, right). The output with the highest value gives the direction that PacMan takes.

In the absence of ghosts, the game map is deterministic so yes, PacMan will take the same path when using the same neural network. The ghosts have a strong random component to their movements, so adding these will cause some random variation in PacMan's movement from run to run.

The Neural Nets are evolved using an Evolutionary Computation process. The fitness I'm using is the score that PacMan gets for one run through the maze. The time one run can take is limited (you can also control this in the parameters file). The goal is to maximize the score that PacMan gets.

I've found it most interesting to look at PacMan's navigation early in the process and compare that to what happens after it has run for a while. No surprise that early in the process PacMan's movements are more or less random - often he just drifts one direction or the other, hits a wall, and stops. Then after it has run for a while and his score is over 1000, his behavior is much more interesting. So far the maximum score I've seen (with no ghosts) is about 2600 out of a maximum of 2840.


How to get PacMan to run through the maze
-----------------------------------------

Yes, you can opt to have the PacMan run after each generation using the best neural net thus far. To get this to work, while one of the application's windows is activated (the PacMan game maze is probably the best), press the 'B' key. After the current evolutionary step, PacMan will become active. You can turn it off - go back to having PacMan not run - by pressing the 'B' key again.

BE PATIENT after you press the 'B' key as the evolutionary step will have to complete before PacMan runs and sometimes this will take a while depending on how many inputs you have and how large the population is. Also, if you get impatient and hit the 'B' key a second time, you will end up toggling the display off so you'll be back where you started. Just hit the 'B' key once.



----------------
Original README:
----------------
AIPac was developed in order to examine (play with) evolutionary training of a PacMan controller. I've tried to develop the simulator in as open a form as possible in order to allow modifications to the maze, the graphics, etc. I may no warranty on the quality of the code. I refer to AIPac and PMAI somewhat interchangably, so be forewarned.

The files/distributions are as follows:

AIPac_README.txt - this file


AIPac_win32exe.zip:
This contains just an exectuable with the minimum files necessary to get it to work. The files are:
PMAI.exe - the executable
AIPac.param - a parameters file within which you can control the behavior of the executable. I've tried to make it self-explanatory.
Resources/ - this directory contains the graphics and mazes I used for the simulator. It should be fairly flexible to allow changes, but it may not be intuitive.


AIPac_code_win32.zip
This contains all the code used to develop the application along with the Resources listed above. I used Code::Blocks as my IDE, so I retained the project as-is. My version of Code::Blocks is 4639 which is current as of late 2007. I also used GCC 3.4 to compile the code. I'm certain you can use other IDEs (such as MSVC++), but I've opted for open source.
NEAT/ - This directory contains the code for evolutionary control of neural networks. NEAT is Neuro-Evolution through Augmenting Topologies, developed by Dr. Kenneth Stanley. (http://www.cs.ucf.edu/~kstanley/) This version of NEAT was developed by Mat Buckland of AI-Junkie fame (www.ai-junkie.com) and he has give me permission to include it with my distribution. (Thanks, fup!) I have used his code with minimal modifications, and as a result, it is a bit of a hack, especially CController.cpp file.
Resources/ - same as above. The graphics and maze maps necessary for the executable.
Utilities/ - my collection of programming utility classes used in this project. I tend to use these a lot in my projects.


PM_NoGhosts_9600Gen_2270.wmv
This file shows the best results I've gotten thus far (late March 2007) with no ghosts in the maze, using a windowing method for inputs. In this input method, the neural network inputs consist of a window centered on PacMan and extending 6 tiles in each direction. This gives a 13x13 window of the game board as input. There are 4 outputs, one for each direction. The largest output determines the direction of PacMan's movement.


-------------------
Additional Details:
-------------------

Here are some additional details related to AIPac that might come in useful. I've tried to put the details in the order of interest and those pieces that will get you up and running the fastest.

Remember that the Resource directory needs to be present. This has all the graphics, mazes, etc. needed for the simulator. You can control most (all, I think) of the details of where the various files are found within the parameters files, AIPac.param, but I recommend leaving things as they are until you're familiar with the program.

While the simulator is running, if you press the 'B' key, this will toggle displaying the current best PacMan controller after each generation. Remember that there will be a delay in displaying the best controller due to the fact that generations take a while to process.

Currently, I have the parameters set up for a rather lengthy evolution step. If you want to see some action more quickly, try changing the following parameters in AIPac.param:

Replicates - Typically I have this set to 5 which means that each PacMan controller will be tested 5 times and a measure of performance assessed across the multiples. Set this to a smaller number and things will run faster. The purpose of this is to account for the random nature of the ghosts. If the ghosts are not present, set this to 1 since that type of simulation is deterministic.

PopSize - Obviously, reducing population size will make things faster, although potentially less interesting.

AIType - I have this set to Windowed which defines a window around PacMan, as described in the readme file. Setting this to Global will be a very different type of AI. Specifically, the inputs defined in the section following AIType setting will be used rather than a window around PacMan. This will shrink the number of inputs significantly, but I've found it to be less interesting.

I've tried to be as descriptive as possible in the AIPac.param file. It should be largely self-explanatory.


If there are other questions or comments, please leave a message in the forum.


---------------
Update Details:
---------------


v0.1.5 updates
--------------

Vector-based inputs implemented. Walls are input as a window. Pellet inputs provide a distance and angle to each power pellet, ghost inputs provide distance, angle, and state (-1 = hunting, 1 = blue) to each ghost, dot inputs show distance and angle to the centroid of all remaining dots. All vectors assume PacMan as the origin.

EnforceIntersections was added to the control parameters. If set to 1, PM will only make a directional change at an intersection. If set to 0, PM can change direction at will. There's a bit of a speed up with this as well as enforcing smooth paths.

**Verify proper scoring for dots - the possible maximum score should be 284 dots * 10. (Ghosts and Pellets seem to be OK.)**
I found that at certain intersections mulitple dots are removed simultaneously due to a perceived overlap of the bounding box and dot tiles, but only one produced a score. A modification was made to count how many dots are removed for any particular PacMan location and the score adjusted appropriately. MapController::ModifyTileByPixel

The visualization delay was linked to the parameters file. Larger numbers cause the visualization to run more slowly so that it is easier to watch. This does not affect the actual GA portion, just the visual of PacMan running through the maze. The same delay is linked to the playable mode option.

A user playable option is now available. The parameter Mode can be set to Evolve to run an evolutionary simulation, or to Play for a Keyboard playable version. Use the arrow keys to move PacMan around the maze. All the other options remain the same.

**Fix the gate on the ghost cage - it doesn't redisplay and it may not be reset.**
A forced redraw of the entire maze was implemented any time the gate is opened or closed. This does not appear to slow the process whatsoever and in fact I can force a redraw at every frame without any noticable performance losses. This is a much easier fix than to implement specific drawing and erasing of the gate, or modification of the maze graphics.



v0.1.4 Updates
--------------

A few bugs were fixed. Specifically, some issues with whether PowerPellets and Ghosts were visible or not were addressed.

The ability to ignore walls or dots was added to the Windowed AI. In the parameters file the following keywords control this as follows:

DotWallSingleInput - If set to 1, the input will be -1 for a wall, 0 if empty, and 1 for a dot. If set to 0, there will be two sets of inputs - one for dots one for walls.

DotsWallsOnly - If set to 0, both dots and walls will be used for inputs. If set to -1, only the walls will be seen. If set to 1, only the dots will be seen.



v0.1.3 UPDATES:
---------------

Windows now update during the evolution step thus preventing an freezing of the application during one epoch.

The console window now tells you whether PacMan will run or not after the current epoch and has (almost) instant feedback from pressing 'B'.

Small optimizations to speed up the simulation.

Ghosts now allowed to reevaluate their direction after PacMan eats PowerPellet. Hopefully this will discourage chance collisions forcing PacMan to be more active in pursuit.

When the console window was running a spontaneous crash would occur the seemed to stem from the Windows message queue. A DoEvents() function was implemented to allow window events to be processed while the Console was active. This seems to have solved the problem.


0

Share this post


Link to post
Share on other sites
ibebrett - That Robocode could have proven very useful. The only problem is, its Java. Im sure Java isn't difficult to learn, but as its a final year project I would rather spend the time more wisely researching- as opposed to learning a new language.
0

Share this post


Link to post
Share on other sites
Heh i know nothing of ANNs but i have to laugh at the irony of the apparent cognitive bias of the OP towards the use of ANNs, given the subject you would expect at least an open mind and bias free origin.

Reading this thread was enjoyable and that realisation made me chuckle. No disrespect intended to OP.
0

Share this post


Link to post
Share on other sites
^^ well obviously im biased, its the proposal i have given to my lecturer- and as my proposal counts towards my final grade, as im sure anyone would be - being told their project is a load of cr*p is quite upsetting!
0

Share this post


Link to post
Share on other sites
Don't worry, I didn't realize mine was a bunch of crap and dead wrong until one week after I submitted the paper version.

Just remember that you don't have to be all-positive about what you describe. A theoretical "how it works perfectly" paper is not as much a token of actual experience than a practical "why it doesn't work as we expected" paper.

0

Share this post


Link to post
Share on other sites
http://www.ted.com/index.php/talks/torsten_reil_studies_biology_to_make_animation.html

hope it helps
i think people from Rockstar have used some of this technology in gta4

ps
forgot about the website
http://www.naturalmotion.com/

peace
0

Share this post


Link to post
Share on other sites
Just an update really, having taken on board peoples opinions and experience I have changed my research slightly. The question I am now looking to answer is 'are neural networks being used to their full potential in the games industry?' this type of question will provide more room for discussion - many people said their not used because better options are available etc.

The one thing that is troubling me now is - when I come to make a use for a neural network, what shall i do? (personally i believe this is the industry's problem!)

-Vehicle avoiding objects has been done
-Ants retrieving food beenn done
-Pacman - as shown earlier in thread has been done

Any suggestions?

How about the rubix cube problem?
0

Share this post


Link to post
Share on other sites
Quote:
Original post by sion5
The one thing that is troubling me now is - when I come to make a use for a neural network, what shall i do? (personally i believe this is the industry's problem!)

No, completely the opposite. It's not their problem at all. It's you who feels the need to sell neural networks, not industry who feels a need to buy them. You're the salesman: justify your product. You don't present a craftsman with a new and unusual tool and expect him to change his way of working to find a use for it. You find a situation the craftsman could use help with, and provide a tool for it to make his life easier.

Quote:
Any suggestions?

You need to look at the actual problems industry tries to solve, or perhaps problems that you feel the industry could benefit from solving but currently avoids, and show how an neural network might apply to them. Personally I can't really think of any.
0

Share this post


Link to post
Share on other sites
I was expecting a half arsed answer like that!

Theres clearly a divide between academics and "industry" programmers - that is to say any of you actually work or have ever worked in a games studio!

I think Mike McShaffry hit the nail on the head:

"The art of developing great game code involves knowing which mistakes and pitfalls to avoid and which coding techniques really work over time. The one important thing that I've learned over the years is that the distance between exuberance and experience is paved with mistakes, which makes older programmers a little less likely to embrace new things."

Game Coding Complete
by Mike McShaffry ISBN:1932111751
Paraglyph Press © 2003

Thanks to all who contributed anything useful - thanks to all who didn't get angry at my personal opinion - no thanks to all you arrogant bastards who gave me such a hard time because I tried to learn more about a subject!

Peace out
0

Share this post


Link to post
Share on other sites
Quote:
Original post by sion5
-Pacman - as shown earlier in thread has been done


Yes, but not necessarily done well. Take my code and do it better.

Quote:

How about the rubix cube problem?



Neural networks are not suited to this type of problem at all. If you have a specific, detailed proposal of how to apply them, feel free to voice it, however.

[Edited by - kirkd on August 11, 2008 1:55:12 PM]
0

Share this post


Link to post
Share on other sites
no offense at all intended, but even suggesting the rubix cube as a problem for nueral nets to solve kind of betrays ur lack of knowledge about nueral nets. i dont meen that in bad way at all. in fact, i have an acm membership with a few books on datamining. if you want i can see about getting you access to them (they are electronic).
0

Share this post


Link to post
Share on other sites
I think this thread should just be shut down. Lets face it, not one person has answered a question I have asked constructively. Maybe I named the topic wrong by calling it a discussion because what I was actually aiming for was "factual" information to a few questions that would help me start my research. Brett your right- I dont know anything about NN's and thats what I was aiming to correct.

I have a very pictographic mind, so when someone sais it cant be done without examples I find it hard to accept. When I see examples like Colin McRae rally that was trained via player input, I just dont see why this could not work for the Rubix Cube for example. There are a set amount of blocks and sides on a cube so there must be a mathematical relationship. By training the NN your aim would be for the NN to learn this relationship and then use this to solve a problem itself.

Kirkd, ibebrett, ActiveStorage, Rockoon1 + a few others - your great assets to the forum, your answers where helpful and expressed an opinion in an informative way. I learnt a few things from you. Just wanted to show my gratitude for not just flaming me on the first opportunity like many others and actually trying to help me understand.

To many peoples delight im not going to participate in this discussion any further. Unfortunately the world has lost its charitable nature and would sooner put someone down because they know less than try and help them understand and better themselves.

Regards,
Sion5
0

Share this post


Link to post
Share on other sites
Quote:
Original post by sion5
I was expecting a half arsed answer like that!

Theres clearly a divide between academics and "industry" programmers - that is to say any of you actually work or have ever worked in a games studio!

I have a Masters degree in Computing (specialising in AI), and work professionally in the game industry. The real divide is between people like me who appreciate that each side has different aims and needs, and people like you who think you know what is Right for everybody and what 'the other side' Should be doing.

Quote:
Original post by sion5
I think this thread should just be shut down. Lets face it, not one person has answered a question I have asked constructively.

That's because you brought the wrong attitude to the thread, right up to the last question you asked and which my 'half-arsed' answer addressed.

Quote:
no thanks to all you arrogant bastards who gave me such a hard time because I tried to learn more about a subject!

... that being one more example of this.
0

Share this post


Link to post
Share on other sites
Quote:
Quote:
Original post by sion5
I think this thread should just be shut down. Lets face it, not one person has answered a question I have asked constructively.

That's because you brought the wrong attitude to the thread, right up to the last question you asked and which my 'half-arsed' answer addressed.

Quote:
no thanks to all you arrogant bastards who gave me such a hard time because I tried to learn more about a subject!

... that being one more example of this.

I disagree, as an external observer to the discussion this is what I witnessed:

He started out well with a positive attitude and an admirable goal for an academic project. He simply asked for some guidance.
Unfortunately you and others came to the thread, with an apparent vendetta against the mere concept of his project, and you unnecessarily and repeatedly tore him down. It was in fact, you folks who brought the negative attitude to this thread.
Unacceptable.

He handled it well at first, trying to make the best of the situation and carry on. But that wasn't enough, you had to really pile it on.

Yes, eventually he went over the edge ... but only because he was pushed.

[Edited by - brent_w on August 12, 2008 11:55:08 AM]
0

Share this post


Link to post
Share on other sites
Care to say where I in particular did such a thing? Mainly I just took issue with his continued and repeated assertions that finding a use for neural networks is industry's problem. And his first response to me was "Thanks for that Kylotan, you raised some interesting points that I shall look into." So I suggest you cast your eye back over the thread before making generalised comments like that.
0

Share this post


Link to post
Share on other sites
I have no desire to start a flame war, I'm just giving my impressions of the thread.

I saw him start out with a good attitude. Additionally I saw, from InnocuousFox's very first surprisingly condescending sentence, that attitude slowly worn away by unnecessarily negative responses from a number of individuals.

And I found your assertion, that it was in fact the original poster who was responsible for the negativity, so ironic I felt the need to address it.
0

Share this post


Link to post
Share on other sites
I didn't say anything about negativity, just that he brought the 'wrong attitude', ie. that of industry's supposed responsibility towards research. Dropping that rather strange viewpoint would have helped matters a lot and avoided most of the 'ivory tower' style criticism.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by brent_w
I saw him start out with a good attitude. Additionally I saw, from InnocuousFox's very first surprisingly condescending sentence, that attitude slowly worn away by unnecessarily negative responses from a number of individuals.

And I found your assertion, that it was in fact the original poster who was responsible for the negativity, so ironic I felt the need to address it.

Ya know... I'm catching a lot of heat for this thread which I find a bit disturbing. If you actually read the thread from page 1 to 4 rather than backwards, you see that I didn't take this south at all. My only mistake on the whole first page was my first line:
Quote:
And thus we see why game degrees from institutions are received with a raised eyebrow from the AI programmers.

... Which is actually a link to a post that Damian Isla (and he is a reasonable authority on the subject you would think?) made about this very subject. It was not only relevant but timely since this thread came out shortly thereafter. Notice that it wasn't even MY freaking opinion? It was pointing out (even by an example) what the friction is with the industry responding to game degree grads not having the proper skills.

Other than that, nothing in that first post was negative aside from reiterating the 2nd posters warning about potential disturbances. I even answered his questions line by line.

Note that this was reacted to thusly:
Quote:
To be honest I was expecting a reply like this.
[snip]
I find this comment a little rude.
[snip]
...can I remind people ...?
[snip]
I guess I may be expecting a little too much from a forum...

Note that the attitude is getting a little obnoxious?

My next reply was a simple (and innocuous) answer about how designers would view not having control.

In my next reply, my only real negative was when he got a little presumptuous by saying "but not 1 person has backed it up with fact or proof" to which I replied "You are the one doing the research paper, not the people replying here. Exhibit A is the past 30 years of the industry." I even pointed out that it was largely impossible to "prove" that NNs are not suitable for games. Was that rude or simply pointing out that people are likely unwilling to do his research for him?

The only other posts of mine on that page were replying to other people about the technical merits of NNs and why they don't work in games really well... which IS what the topic was, right?

And, on page 2, he stated:

Quote:
So, the conclusion is that almost everyone in the industry hates NN's but academics love them :-) at least until they enter the industry.

Which is why I referred back to my initial line:
Quote:
And now we have come full circle to my original comment regarding how the industry greets someone from academia - especially a student - with skepticism. Visit my link on that exact comment...


Admittedly, this is where I lost it... when he said:
Quote:
Truth is academia is there to encourage innovation. I'm sorry but anyone can work in a factory pushing out the same product one after the other, but it takes academics to say "Hey wait, surely this can be done better?".
[snip]
If everyone's attitude is that we have found the best solution then there will never be an advancement in this domain.

To which I replied...
Quote:
This is such a load of arrogant crap it is bordering on invalidating the usefulness of this entire thread and disqualifying you from further consideration on any relevant subject matter. 99% of the innovation in the modern world has come from outside academia. In the games industry, much the same can be said.
[snip]
Who is this "everyone" of which you speak? Every single time I sit down to work on my stuff, I'm trying to do something better. Every time I crack open the new AI Wisdom book, I see something from a front line dude that makes me say "damn... someone found a better way" - and usually it was because they were trying to solve a problem in their own projects. (You have read all the AI Wisdom books, right?)

The reason I did this is because, by this point, it was becoming obvious to me that he was completely prepared to piss on any statement that came from the non-academic industry. His whole attitude was oozing superiority and condescension on anything that came out of non-ivy-covered walls. And, it seemed, he was quite certain that he, himself, was part of the cutting edge elite while the rest of us industry schlubs could only gaze up at him on his pedestal. (Note: this is something that continued to trickle through the rest of this thread.)

Also, make note that this is the first time I lit off on this dude... after he had been slinging this arrogance around like a flail... at the END of page 2. By this time, I wasn't the only one who had tried to steer him in the right direction and actually provide answers to his questions. He just didn't want to hear them and was prepared to get whiny and belligerent about it.

So, going back through the above... what the hell did I do wrong? If I didn't then quit using me as the poster child for bad thread etiquette.
0

Share this post


Link to post
Share on other sites
Quote:
Original post by Kylotan
I didn't say anything about negativity, just that he brought the 'wrong attitude', ie. that of industry's supposed responsibility towards research. Dropping that rather strange viewpoint would have helped matters a lot and avoided most of the 'ivory tower' style criticism.

No kidding... as I said above, this was the point that I lost it.

What an odd approach of asking industry people for help and advice yet disparraging industry people as a whole. Make up your mind... do we non-academics know what we are talking about or not?
0

Share this post


Link to post
Share on other sites
In my opinion, the general usefulness of neural networks will increase drastically relative to other AI implementations when available computing power doubles several more times.

Most other types of AI are very problem-specific and neural networks are more of a general approach to learning. If you had the resources to simulate as many nodes as there are neurons in a human brain all iterating at the same frequency our neurons fire at, then you'd be a lot closer to potentially simulating a high degree of general learning capacity. (this capacity being aimed at many different applications probably with excellent results)

Image processing, face recognition, strategic games like Go (specifically using it to evaluate the nodes of the monte carlo analysis), language learning, language teaching, etc. all come to mind.

But video games? I don't know. Maybe it would make for potentially very human-like opponents. Or human-like NPC's. Need some serious computing power for these things though.

Lol. Voted down 27 points for this post. I love Gamedev's rating system.

[Edited by - AlphaCoder on August 26, 2008 3:21:56 PM]
0

Share this post


Link to post
Share on other sites
What happens when my NN opponent becomes too smart? What happens when they realize that I can only kill 4 opponents and that if all 12 of them rush me, there's no way they can loose?

The topic in general is interesting to me. But um, I'm not that intelligent. In many of my FPS games I perform the same actions. And once any learning AI registers that, I'm screwed!

Are there ways to prevent overachievement in NN AI?

-Xy
0

Share this post


Link to post
Share on other sites
Any learning algorithm could potentially become too smart - this is not specific to artificial neural networks. eg. Something trivial like a PID controller with adjustable weights could potentially become too good at a racing game. And I seem to remember someone wrote a simple Bayesian predictor for an FPS which, given your current position, very accurately estimates where you're going to go next, meaning it can almost always be waiting for you in an optimal position. It's easy to do.

If you wanted AI that learns during the course of a game, you might try and stop it learning if it notices that it wins too often, or it might deliberately start adding more random noise to the output until the success rate drops. Or you might be able to twist things somewhat so that instead of always trying to maximise its success rate, it is trying to get as close to a 50% success rate as possible. (Or some other arbitrary value.)

Or you might decide that using such an unpredictable system is not conducive to releasing a fun game, and only do your training before release, which I expect is by far more common.
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0