The term AI (artificial intelligence) is sometime confusing and misleading. Artificial intelligence defined by Stan Franklin as "Deciding What to Do Next". Artificial in the sense that we try to simulate real life decision making through technology. Intelligences a property of mind that encompasses many related mental abilities, such as the capacities to reason, plan, solve problems, think abstractly, comprehension, and learning.
One half of my one of my MSc course work is AI Programming. At first I've only a vague idea of what AI is in the software world and now I've a stronger idea of what AI is a wider perspective and also its role in games. From here, my little adventure with Mr. PacMan begins.
The assignment is to write an AI controller for PacMan using any AI techniques available. Researching on AI techniques within a short period of time is almost impossible. What I did was to have an overview and conceptual understanding of most of the techniques and settle on the technique I wanted.
Numerous times you will see me shouting and screaming at PacMan for his idiotic moves or weird behaviors. Asking him to move left, up, right or down like he can hear me or heed my call. Even this assignment seem simple, well its PacMan after all is a game we played when we were 5, yet its really interesting and requires a lot of strategy analysis and behavior study. The one thing I learn is the more I intend to fix it the more I broke the controller. This is because as a human programmer it is difficult to separate behavioral characteristics from my programmer's formulated mindset. Observing PacMan is the way to solve this. Yes, staring at PacMan for hours on end.... But basically this is the skeleton of what I went through...
Development steps
Currently I've an average of 80% win rate, however more data analysis is required.
One half of my one of my MSc course work is AI Programming. At first I've only a vague idea of what AI is in the software world and now I've a stronger idea of what AI is a wider perspective and also its role in games. From here, my little adventure with Mr. PacMan begins.
The assignment is to write an AI controller for PacMan using any AI techniques available. Researching on AI techniques within a short period of time is almost impossible. What I did was to have an overview and conceptual understanding of most of the techniques and settle on the technique I wanted.
Numerous times you will see me shouting and screaming at PacMan for his idiotic moves or weird behaviors. Asking him to move left, up, right or down like he can hear me or heed my call. Even this assignment seem simple, well its PacMan after all is a game we played when we were 5, yet its really interesting and requires a lot of strategy analysis and behavior study. The one thing I learn is the more I intend to fix it the more I broke the controller. This is because as a human programmer it is difficult to separate behavioral characteristics from my programmer's formulated mindset. Observing PacMan is the way to solve this. Yes, staring at PacMan for hours on end.... But basically this is the skeleton of what I went through...
Development steps
- Understanding searches and A* algorithm.
- Implementing and independent A* search component.
- Heuristic map (cost and total cost) implementation.
- Path map implementation.
- Techniques to find the goal for PacMan. Outward circular loop algorithm from PacMan.
- Mini Max technique from worst case estimate from Ghost.
- State Machine for search phases, PacMan movement, hunting mode.
- Rules for danger zones in the game.
Currently I've an average of 80% win rate, however more data analysis is required.
3 comments:
Pretty nice post. I just stumbled upon your blog and wanted to say that I have really enjoyed browsing your blog posts. In any case I’ll be subscribing to your feed and I hope you write again soon!
Lots of good reading here, thanks! I was searching on yahoo when I found your article, I’m going to add your feed to Google Reader, I look forward to more from you.
I really liked the article, and the very cool blog
Post a Comment