Thanks for the response Kevin. I agree with almost everything you're saying, so this post might be kind of boring to someone looking for a good debate. :) I'll try to add something towards the end to spurr some discussion, but feel free to pass if it's old covered ground for you.
DISCLAIMER TO READERS: The following is meant to reflect a difference of opinion only. If you are easily offended by a difference of opinion please stop reading this post.
Quote:
Original post by Kevin Dill
With that said, I think that even the FPS AI is probably easier and safer to do by hand (you'll get better results with less effort). So far, nobody has proven me wrong (and a lot of smart people have tried). :)
I couldn't agree more. Like you say, it's an interesting ML problem for someone doing research, but probably not worth the time (or complexity) to put in to practice commercially.
For an RTS though (or a command-and-control thing) it might make more sense.. which kind of ties in to the next point.
Quote:
Original post by Kevin Dill
The problem is, you can't just go on the internet and get data. You can't get data from a different game, or even the prequel to this game.
I hope my previous post didn't imply that I thought data collection to be easy. I was trying to make the point that data availability is something everyone has struggled with, and that it is problem #1 for any ML project.
I do have to wonder if some of the RTS games, with all of their online matches, might not be able to make use of that data to build an uber-AI. I've watched a few videos where players have totally smashed the hardest AI in StarCraft on their first attempt. Maybe I'm nostalgic for the days when 'beating the machine' was a serious accomplishment, but I can't help but think that it would be really cool to have a machine opponent that could earn someone serious 'street-cred' if they beat it.
As far as reusability goes, once you have a framework for a type of problem, not everything needs to be rebuilt from scratch. I've built a tool which works on different types of data for different classification tasks. Each time I use it I have to invest a few days in to collecting and 'normalizing' data so that its in a format the program can use. Once that part is done though, it's often business as usual-- if not the changes are usually minor.
I also keep what I call 'generic not' data. The 'generic not' gets reused for many of the projects I undertake with this program. I also keep annoted data sets. These are data sets that have been marked, by hand, to identify various things. Some of this can be reused.
Quote:
Original post by Kevin Dill
The whole argument for ML is that it saves effort. If it doesn't do that, why bother?
We disagree on the reason for ML. I use ML techniques to solve problems that I am unable to solve using my own facilities of reason. Take face detection: what lines of code are required to tell that something is a face? The answer (for me and the entire digitial camera industry) was to let a machine figure it out.
Modeling player behavior in MMORPGs so they can 'persist' even when offline, Dynamic difficulty adjustment, or just more interesting NPCs would all be great and I think an ML approach could contribute to those goals. But I'm not the one whose under a deadline, with a fixed budget, who needs to make _something_ happen in the context of a broader production.
I'm sensitive to the fact that game development is a business enterprise. From what you've seen so far, do you think it's possible that some of the 'pro-ML' arguments might not be keeping the cost/effort factor in mind?
The following is my attempt at spurring debate
If I wanted to make a strong case for ML versus the traditional (in the interest of debate), I think it would hing on ML being the inevitable future. I wouldn't say state tables will ever go away, but I can see them becoming a way of tweaking the broader ML agent for various situations.
Look at Microsofts project Natal for example. Many years of research have gone in to pose estimation, 3D reconstruction, speech recognition, face detection, etc.. None of these things happened over night and nobody would have dared bet the bank on them 10 years ago. All of these things are based on ML techniques, or are at least heavily dependant on statistics and linear algerbra.
Sooner or later someone will make an RTS AI framework based on ML. WalMarts problem of knowing when and how to move stock between stores isn't that much different than managing units in an RTS. There are too many similar areas of research going on in the real world for there not to be a crossover eventually.
I would be really interested to hear from someone who has legitimate and grounded reasons for disagreeing with you in the present sense though.