• Content count

  • Joined

  • Last visited

Community Reputation

157 Neutral

About uedauhes

  • Rank
  1. I don't think its the processing power. I think its a lack of people who are knowledgeable about integrating the state of the art in AI in games. It takes a lot of processing power to create models. This is not a problem because you can do this during the development process where is is available and doesn't have to be done real-time. Actually running models in game is not really that expensive. Some games like chess do require lots of processing power in game. That is because they are searching a known state space. The state space is not typically known in most modern games so these computationally intensive techniques are not applicable. I would compare AI in most games more to AI for robots than for puzzle games. There are a set of percepts and a set of actions. The goal is to map a percept vector to an action at each decision point. This mapping is very expensive to develop, but very cheap to implement in game. I think its more about deciding which AI algorithms are appropriate for various applications in games. A mob in a game could use many differnt AI paradigms: - Stimulus Response - Reinforcment Learning - Emergent Swarm - ANN - GA - Decision Tree - Expert System ... etc It really the knowledge about which methods are appropriate for individual application that is lacking.
  2. There doesn't seem to be a very active gaming AI community here (but still the most active I have found). Is there anyone here that has worked on, or knows of, a commercial gaming project that has utilized machine learning in its development? Just trying to get a feel for the current state of the art.
  3. Need help starting a simple AI program

    Unfortunately, AI is a very complicated, mathmatically intensive subject matter. At this time I don't know of any short cuts to implementing AI solutions where the details are hidden from you (like sorting). If you are interested in delving into the details, research the reinforcement learning solution to tic-tac-toe: Here is one article: http://www.cs.ualberta.ca/~sutton/book/1/node5.html or try here: http://www.google.com/search?num=100&hl=en&lr=&safe=off&q=tic+tac+toe+reinforcement+learning&btnG=Search
  4. Quote:Original post by fup IMO physics is going to be the next big thing. Us AI guys will have to wait a little bit longer... I agree. It takes a lot more work to make a noticeable difference in AI compared with the difference that you can see from better physics.
  5. AI Sandbox

    Is there any kind of sandbox that is designed with the experimentation and development and of game AI in mind? Something geared towards implementation of various AI models that actually allows you to experience your results through game play? If not then how do the developers here create and test their AI models?
  6. Application for genetic algorithm in games

    Quote:Original post by Diodor My uninformed opinion on GAs and NNs is they're a bit of a scam. The implicit promise is that the algorithm learns by itself, and the programmer doesn't need to fully analyze and understand the problem, and I don't think they deliver really. Just because people make uninformed assumptions does not mean that machine learning models have no place in game AI or that they are not effective. They are very effective when put to use by knowledgeable designers for a problem that they are well suited for. It is impossible to implement most learning techniques without a very strong grasp of the problem. The most basic thing that one does when implementing a learning algorithm is deciding what the set percepts and possible actions (input and outputs) will be. This step typically takes deep knowledge about the problem domain. It is very important to select percepts that are useful in deciding which action should be taken. Say there was a unit in an RTS that must decide whether to fight or flee. You could select the system clock time as a percept to use when making this decision. It would obviously be a bad choice and would only confuse the learning algorithm. A more appropriate choice would be the units health, stats, proximity of friendy units, number of enemy units ... etc. Even when you have a good set of percepts that are based on domain knowledge, you must still undertake an interative process of selection of the best of the initial group. Decisions must also be made about which actions should use learning algorithms. Say there is a complex behavior that you want to model. Maybe it is the entire behavior for the previously mentioned unit in an RTS. Decisions must be made at many levels regarding the behavior of said unit. For instance one learned model might decide which group the unit should be place with. Another might where that group should be on the map. Then yet another might do pathfinding. This is another step in designing a learning based AI system that requires a significant amount of planning and knowledge about the problem. Finally one must decide which learning techniques are best suited to each individual problem. ANNs are best suited to processing continuous (non-discrete) data. A good use for an ANN might be aiming a weapon in complex conditions (wind, projectile size, distance ... are percepts - direction x,y is output). GAs are best suited for optimization problems (given resources and conditions, how many units of x,y,z should I produce). Decision Trees are best suited to if then situations when actions must be selected (if health > 50 and weapon attack > 10 and enemies = 1 and groupsize = 3 then attack). If all of these (and other) considerations are carefully taken into account, one can produce a very effective machine learning based model.
  7. Application for genetic algorithm in games

    silverphyre673>> actually, can anyone think of a way to apply this to, say, individual unit combat, or group combat techniques, especially along the lines of spaceships or troopers? Its typically very hard to create a GA that maps a set of possible actions to if/then conditions. For example if(health < 50 && opponent health > 80 && group.size()<2){ run(); } There are so many possible actions that can be taken in any situation that it is very hard to encode the possible situations -> action mapping. It would require a HUGE set of genes. A good alternative is to mix ANNs (neural networks) with GAs. You set the inputs as the game situations (health, group.size(), weapon power ... etc) and the outputs as the set of possible actions (run, attack, reload ... etc). Then, instead of using BackProp as your training algorithm, you use a GA where each gene represents a weight of a link in the network. Example of someone who attempted something similar: http://tecfa.unige.ch/perso/yvan/tanks/TankWars.pdf
  8. Genetic Algorithms for AIs

    You may be able to create a model that competes well against a player, but uses such a strange strategy that it reduces immersion/fun. Just something to remember when using machine learning techniques for agent behavior.
  9. Application for genetic algorithm in games

    There are a few problems that inhibit the successful implementation of GAs in games. One is developing a fitness function. You would like a fitness function that does a good job of rating the success of an agent/action. The death of an agent in the game is often not precise enough. Especially when a very complex set of behaviors are encoded in the agents genes. An agent may be culled from the population, even though it had good genes due to random chance. The way this is overcome is through a very large number of generations. However, it is often hard to simulate enough generations for the population to converge on a good solution. Especially when the environment that the agents will be operating in includes human players. If you simulate gameplay without human players, you will likely create agents that work well in the simulated environment, but not in the actual environment it will operate in. If your training period includes human players, it is unlikely you will go through enough generations to get useful behaviors. I have used GAs to solve simple optimization problems (path finding may be a good use). I would be intersted to hear from anyone that has used them for more advanced agent behaviors.
  10. What do you think about Python instead of C++?

    There is also a game dev library: PyGame Should have read last post :| sorry for the dupe
  11. What do you think about Python instead of C++?

    I am just learning Python and so far I love it. I learned how to program in Pascal. Then moved to C. I now mostly use Java but have become frustrated with its lack of elegant solutions to problems that I see more and more as I become an advanced programmer. Most of the problem I have with Java are due to the restrictions it places on you as a programmer. Python has a different philosophy. It gives you the power to do alot more. This can be a bad thing if you don't do a good job of testing your code. However, if you don't test then your code won't be worth a damn anyway. It is dynamically typed (never have to cast again) and has built in support for list and hashtable data structures. Things seem to flow much more naturally when I code in Python compared to other languages I have used. Python does have performance issues with low level graphic (and other CPU intensive) routines. The great thing is it easily allows you to wrap your C, C++, JAVA ... etc routines with Python. You can write all of your high lvl organizational code in python, and then optimize with C where required. I am starting my own Python community for game developers: http://www.pyoneers.com/ (site is in the process of being redeveloped so excuse the homepage). If anyone would like to join or is in need of a Python game dev volunteer, let me know (uedauhes at yahoo dot com).