Artificial Intelligence Depot
Visiting guest. Why not sign in?
News, knowledge and discussion for the AI enthusiast.
FEATURES COMMUNITY KNOWLEDGE SEARCH  
The Intelligent Wireless Web
A vision of the Web's near future and overviews the technologies that will make it possible, exploring developments in speech recognition, mobile wireless devices, network integration, and software development.
More information at Amazon US UK
Obstacle avoidance -> Quake 2 bot school project
would this be a good school project ?
 
Obstacle avoidance -> Quake 2 bot school project

Hello,

First off, this is a really nice site Alex, keep up the good work.

After reading your tutorials on AI bots and bot navigation, i got very interested in doing a school project on that. It's would simply be the obstacle avoidance module using neurol networks. The game used for testing would be Quake 2.

I was wondering if the size of the project was ok (too big ? too small ?). It's a course where you're suppose to put 9 hours per week for the semester (research, conception, coding, documenting, etc). I know how to program in C/C++ but i'm a complete n00bie in AI and i'm also not familiar with programming for the quake 2 game (that's why i'm asking your opinion on this). I'd rather do a fully working module than a half-working full-blown Bot.

Also, what happened to www.botepidemic.com ? Is doesn't seem to be a bot site anymore. Has it moved ? Any backups somewhere ?

Thanks

9 posts.
Wednesday 01 May, 03:16
Reply
Fear & Obstacles

Welcome to the message boards Frilla!

Yes, I think such a project is something that is possible within such a context. It might take a bit of focused hard work, and rigorous development procedures, but you should be able to get something nice working within that time frame.

Start by getting a working Neural Network C++ class fully tested, and working. You can use some existing code for this, or create your own -- depending how ambitious you're feeling. Compare the results of simulations to other people's results (there are websites with complete simulations of XOR networks).

As for Quake 2, you're in luck. I'm working on an open-source project called Fear, which is a Flexible Embedded Agent aRchitecture. It's almost ready for a first release (i.e. almost good enough to write a full bot with), but it's definitely more than ok for doing obstacle avoidance; it's a base for my research work. You can find out more at our SF site: http://fear.sourceforge.net/

There will hopefully be a lot of noise about this next week, so consider this an advanced preview ;) We're working on the support for other engines (Q3/UT) so when you have your bot written, it'll eventually be portable.

Anyway, that should answer your questions. Keep us up to date with everything!

934 posts.
Wednesday 01 May, 04:37
Reply
post-poned

Thanks for the info Alex,

For the project, i won't be able to take the course this summer after all, but this autaumn. I will probably check out some stuff about neural networks this summer though.

I just recently checked your demo of it in quake 2, and the "50 generations" one is awesome!

Haven't checked out too much your fear project, but it looks pretty cool.

9 posts.
Friday 10 May, 22:49
Reply
Background & Theory

Delaying a bit will benefit you. You can read up on some theory, and get a good grip with Quake 2 before starting.

When you are ready to start, the Fear team will be in a good place to help, so keep us in mind!

934 posts.
Sunday 19 May, 13:03
Reply
pointers needed

Hey,

well i'm gonna do the project this autumn semester that is already in progress.

I've read some tutorials on NNs and GA and also your tutorial on Obstacle Avoidance using NNs a couple of times. Here's what i understand of it and questions that i have.

The inputs are the movement simulation of the bot in different direction. I suppose that if for example you had 3 sensors, one of them would be straight in front and the other 2 on the sides at a certain angle and symmetrical to the centre one. The output is the change in direction of the bot, considering that it's always moving at a constant speed. The weights and activation function are in a way that makes the output turn in the correct direction depending on which direction had the furthest distance. For example, the weight of the left sensor could be negative and right sensor positive. The activation function would make the output be a left turn if the input if negative. Is this correct or am i completely off-track ? That would imply that we're asking the bot to point in the direction with the furthest distance but you said in your tutorial that we would let the bot have the freedom of learning the best possible approach, that's why i think i may not have got it right.

Now about learning, i suppose here that making the bot learn is by changing the weights in the NN. By using GA to do this, we can have unsupervised learning because it will be done by the GA. Does this mean that i could manually change the weights and do some supervised learning if i'm not using GA ? I have an AI class with the first lab being with GA so i might be more familiar with it by the end of the month, but is the GA something i could not use if i see that the project is too much ? I'm asking just in case.

As you can see, things are not all that clear and that's why i'm don't know too much about the amount of work i have to do to have something working. This is my last semester in comp. eng. and i have 4 courses left (not the usual 5) so i can be pretty focused on the project. What i need right now, is just some pointers so that i don't go off to a bad direction. I think it's a do-able project because the NN class itself won't take much time (hopefully) and the interaction with quake 2 with FEAR won't be as difficult as doing it from scratch so i think i can mainly focus on using the NN and understanding it.

thanks

9 posts.
Tuesday 10 September, 12:12
Reply
answer to my own question

Ok, after some research, i think i have some answers to some of these questions.

For the weights, I will not have to worry about their values because they will be random at the start and "evolve" with the GA. I think that's what you meant by saying to not impose the bot's behaviour but to let it learn by itself the best approach, which will be largely dependant on the fitness function.

Is this is not correct, please tell me ;-)

Anyways, i'm gonna go check out FEAR and play with it now.

9 posts.
Monday 16 September, 01:53
Reply