🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

competition? learning experience!

Started by
1 comment, last by drreagan 20 years, 11 months ago
i know that for most of us (i might be completely off base here, though. so maybe i should say ''for at least some of us'') this will probably be more of a learning experience than a competition. in that spirit i was wondering if anyone would like to join me in discussing issues involved in the design of our bots (for now; in the near future once the bot interface is released we can start to discuss implementation issues!). If you are interested: i will post my own thoughts regarding a few bot design issues in the next post. A headache, ancillary; an hourglass auxiliary. "something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)
------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
Advertisement
A few issues I have considered thus far in the design of bots for this "competition":

The overall, rough object/relationship structure of the bot''s architecture
-a perceptual module
-where data queried from the available bot/engine
interface are recoded into a more compact
representation that the decision module
(discussed below) will be able to take as input

-a navigation module (with two modules of its own)
-low level object avoidance (reactive layer)
-higher level movement/pathing module
(i''m thinking waypoint based)

-a decission making module
-the input representations are processed by
decision logic out pops a decision


the language that i used to describe these structures might seem to imply some sort of hardcoded, rule-based system. however, i want to emphasize that the internal workings of these modules can differ wildly. for example, the perceptual module might be the perfect place to use some type of artificial neural network (ANN) (probably a self-organizing map) to flatten the dimensionality of the perceptual data into a form more easily used by the decision module.

Sor far, i am not entirely sure how i plan on implementing the contents of the modules, but i have a few ideas:

The low level navigation module (collision avoidance) could be created using genetic algorithms to evolve a neural network controller (similar to the system described on www.ai-junkie.com" or in matt buckland''s ai techniques book).

The higher level system would probably use an A* pathfinder with difference heuristics you could plug into the pathfinder for different navigation queries (such as findNearestNodeToEnemy() vs. findCover(). I believe the most difficult part of the navigation system will be intelligently generating and maintaing the graph of waypoints (this is necessary because each run, the arena will be remade with random obstacle locations).

anyone have any ideas on good ways to automatically generate waypoints?

i think i will probably just use a relatively simple finite state machine (FSM) for the decision module. for the most part just becuase i have a little experience messing around with simple FSM bots in 2D. this may change, however.


A headache, ancillary; an hourglass auxiliary.

"something witty, blah, blah, blah"
--That One Witty Guy (remember? that one dude?)


------------------------------------------------------- A headache, ancillary; an hourglass auxiliary."something witty, blah, blah, blah" --That One Witty Guy (remember? that one dude?)(author of DustBot)
quote: Original post by drreagan
The low level navigation module (collision avoidance) could be created using genetic algorithms to evolve a neural network controller (similar to the system described on www.ai-junkie.com" or in matt buckland''s ai techniques book).

Collision Avoidance would suggest to me a very simple system based on Influences - the nearer they get to the Obstacle the more ''influence'' there is to move away from it (by nudging the direction of travel away from it). It would seem pointless to put in a complex system for such a low-level ''Reaction''. The main part of the bot shouldn''t need to know anything about the fact that it''s avaoiding something.
quote: Original post by drreagan
anyone have any ideas on good ways to automatically generate waypoints?

I''ve been thinking about this, and the best Idea I''ve had so far I think is to assume a grid of evenly spaced points, and as It navigates and discovers positions of obstacles it removes and shifts nodes around. You could have a second level which looks at this ''grid'' and reduces it down to the important paths. It could then switch to the more detailed one when it needed to make complcated manuevers.

however, I''m not sure a Grid or Waypoint based approach is the best way, given that It is a very simple level. Perhaps you could use ''Waypoints'' and paths to describe the positions of obstacles and of clusters of obstacles which would be dangerous for the bot to enter (Say, three trees forming a dead end).


this is going to be an interesting project, as I have No Ai experience, I was going to be doing Computer Science with Artificial Intelligence for my degree, but I eventually decided to go with physics. It''s still something I would really like to get into though.

This topic is closed to new replies.

Advertisement